01 / Как работать с API
Быстрый старт
Выбери продукт
Сначала проверь сток и формат запроса для нужного продукта.
Отправь запрос
Передай JSON и код активации. У разных продуктов — разные идентификаторы аккаунта.
Проверь результат
Для асинхронных заказов опрашивай status_url: очередь ещё не означает успешную активацию.
Какой метод вызывать
| Продукт | Запрос | Данные аккаунта |
|---|---|---|
| Claude | POST /api/activate | org_id · Claude UUID |
| ChatGPT | POST /api/gpt/activate | session / account_id |
| Fortnite | POST /api/fortnite/prepare | authorization_code · Epic |
| Grok | POST /api/activate | org_id · legacy / grok_cookie · ACA |
| Telegram | POST /api/telegram/activate | QR / SMS |
| Perplexity | POST /api/perplexity/activate | user_id · Perplexity UUID |
Код активации и токены сессии — секреты. Не передавай их в URL, публичных логах и скриншотах.
Ничего не найдено.
Claude Pro / Max
Программная активация кодов: отправляешь code + org_id, получаешь order_id и опрашиваешь статус. Авторизация не нужна — сам код является ключом (как на форме активации).
Активировать код. org_id — UUID из claude.ai/settings/account.
{
"code": "MAX5-GU75-V37P-1SN4",
"org_id": "a1b2c3d4-1234-1234-1234-123456789abc"
}
curl -X POST https://bypriceactivate.pro/api/activate \
-H "Content-Type: application/json" \
-d '{"code":"MAX5-GU75-V37P-1SN4","org_id":"a1b2c3d4-1234-1234-1234-123456789abc"}'
{
"order_id": 6231,
"status": "queued",
"product": "claude_max_5x",
"org_id": "a1b2c3d4-1234-1234-1234-123456789abc",
"status_url": "/api/activate/6231"
}
400 {"detail": "org_id must be a valid UUID (8-4-4-4-12 lowercase hex)"}
400 {"detail": "code is required"}
400 {"detail": "JSON body required: ..."}
404 {"detail": "code not found"}
409 {"detail": "code already claimed"} // уже использован
409 {"detail": "out of stock for claude_max_5x — try later, your code stays valid"}
Статус активации. Следует за цепочкой ретраев — пока идут повторы, статус running; failed только когда попытки исчерпаны.
curl https://bypriceactivate.pro/api/activate/6231
{
"order_id": 6231,
"status": "done", // queued | running | done | failed
"product": "claude_max_5x",
"org_id": "a1b2c3d4-1234-1234-1234-123456789abc",
"error": null // текст ошибки, если status=failed
}
| queued | В очереди — ждёт обработки. |
| running | Покупка идёт (вкл. авто-ретраи). |
| done | Подписка активирована на org_id. ✅ |
| failed | Активация не удалась. Проверь error и состояние кода перед повторной отправкой. |
Проверка наличия по всем продуктам. available — сколько активаций можно принять прямо сейчас (та же формула, что и в гейте активации, так что сток не «соврёт»). Удобно вызывать перед POST /api/activate. Авторизация не нужна.
curl https://bypriceactivate.pro/api/stock
{
"products": {
"claude_pro": { "label": "Claude Pro", "available": 12, "in_stock": true },
"claude_max_5x": { "label": "Claude Max 5×", "available": 0, "in_stock": false },
"claude_max_5x_us": { "label": "Claude Max 5× (US)", "available": 4, "in_stock": true },
"claude_max_20x": { "label": "Claude Max 20×", "available": 3, "in_stock": true },
"claude_max_20x_us": { "label": "Claude Max 20× (US)", "available": 2, "in_stock": true }
},
"as_of": "2026-05-25T00:00:00Z"
}
available — сколько активаций можно принять прямо сейчас; in_stock = available ≥ 1.
Сток по одному продукту: claude_pro · claude_max_5x · claude_max_5x_us · claude_max_20x · claude_max_20x_us.
curl https://bypriceactivate.pro/api/stock/claude_max_5x
{
"product": "claude_max_5x",
"label": "Claude Max 5×",
"available": 0,
"in_stock": false,
"as_of": "2026-05-25T00:00:00Z"
}
404 {"detail": "unknown product 'xxx' (known: ['claude_pro', 'claude_max_5x', 'claude_max_5x_us', 'claude_max_20x', 'claude_max_20x_us'])"}
Рекомендуемый поллинг
r = POST /api/activate {code, org_id} # -> order_id
while True:
s = GET /api/activate/{order_id}
if s.status in ("done", "failed"): break
sleep(5)
Продукт определяется самим кодом (Pro / Max 5× / Max 20×). org_id берётся на claude.ai/settings/account.
Telegram Premium
Отдельный JSON API для Telegram Premium на 1 месяц. Bearer-токен не нужен: ключом является сам код активации. После запуска опрашивай статус по возвращённому order_id.
Возвращает остаток чеков Telegram Premium. ready — готовые чеки, in_stock — можно ли принять новую активацию.
curl https://bypriceactivate.pro/api/telegram/stock
{
"product": "telegram_premium_1m",
"enabled": true,
"target": 10,
"ready": 10,
"in_stock": true
}
Запусти активацию через QR или SMS. login_mode принимает qr или sms; для SMS добавь phone.
{
"code": "TG-XXXX-XXXX",
"login_mode": "qr"
}
curl -X POST https://bypriceactivate.pro/api/telegram/activate \
-H "Content-Type: application/json" \
-d '{"code":"TG-XXXX-XXXX","login_mode":"qr"}'
{
"ok": true,
"product": "telegram_premium_1m",
"order_id": "tg_example",
"status": "qr_pending",
"status_url": "/api/telegram/orders/tg_example",
"qr_url": "/api/telegram/orders/tg_example/qr.png"
}
400 {"ok":false,"error_code":"INVALID_JSON","detail":"..."}
404 {"ok":false,"error_code":"CODE_NOT_FOUND","detail":"..."}
409 {"ok":false,"error_code":"OUT_OF_STOCK","detail":"..."}
order_id для завершения входа: Опрос статуса; в ответе есть needs_code, needs_password и completed.
Возвращает текущий QR PNG; не кэшируй его.
{"phone_code":"12345"}
{"password":"..."}
Повторно отправляет SMS-код; тело запроса можно оставить пустым.
{
"ok": true,
"order_id": "tg_example",
"status": "completed",
"completed": true
}
Повторная отправка чека Claude
Покупка в App Store завершилась и чек сохранён, но Claude не подтвердил подписку. Этот метод повторно отправляет сохранённый чек на исходный аккаунт — без новой покупки.
Где взять session_key: на claude.ai в DevTools (F12) → Application → Cookies → значение cookie sessionKey. Начинается с sk-ant-sid02-.
Для provider-кодов используется идемпотентный маршрут повторной доставки. Тот же запрос можно отправить на /api/reclaim; повторного redeem кода не будет.
{
"code": "CLAUDEPRO-XXXX",
"session_key": "sk-ant-sid02-...",
"language": "ru"
}
curl -X POST https://bypriceactivate.pro/api/provider-reclaim \
-H "Content-Type: application/json" \
-d '{"code":"CLAUDEPRO-XXXX","session_key":"sk-ant-sid02-...","language":"ru"}'
Статус без повторной отправки: POST /api/provider-reclaim/status с телом {"code":"CLAUDEPRO-XXXX"}.
Переотправить ранее сохранённый Apple-чек на claude.ai/api/apple-iap/receipt. Авторизация не нужна — код + sessionKey являются ключом.
{
"code": "TR-XXXX-XXXX-XXXX",
"session_key": "sk-ant-sid02-r6ZfW1pYQYi..."
}
curl -X POST https://bypriceactivate.pro/api/reclaim \
-H "Content-Type: application/json" \
-d '{
"code":"TR-XXXX-XXXX-XXXX",
"session_key":"sk-ant-sid02-r6ZfW1pYQYi..."
}'
{
"ok": true,
"kind": "success",
"transaction_id": "220003401686407",
"product_id": "com.anthropic.claude.pro.monthly.ios"
}
{
"ok": false,
"kind": "idv",
"idv_url": "https://withpersona.com/verify?inquiry-id=...",
"message": "Claude requires identity verification; open idv_url in browser"
}
400 {"detail": "code is required"}
400 {"detail": "session_key must start with sk-ant-sid02-"}
401 {"detail": "sessionKey is invalid or expired — grab a fresh one..."}
404 {"detail": "code not found"}
409 {"detail": "no receipt — subscription not yet purchased (...)"}
502 {"detail": "transport error talking to claude.ai: ..."}
502 {"detail": "Claude returned unexpected 200 body: ..."}
- Используй только после завершённой покупки, если подписка ещё не появилась в Claude.
sessionKeyдолжен быть от личного аккаунта, не от workspace/team.- Похожие кириллические символы, попавшие в ключ при копировании, удаляются автоматически; невалидный ключ вернёт 400.
ChatGPT · iOS / Direct
Один асинхронный метод для ChatGPT iOS и Direct. Для Direct (Plus / Pro 20×) нужен полный session; для iOS достаточно account_id либо полного session. Продукт определяется кодом.
Данные аккаунта берутся на https://chatgpt.com/api/auth/session.
Исходный session не возвращается в ответах или логах.
{
"code": "GPT20-ABCD-EFGH-IJKL",
"session": {
"user": {"id": "user-xxxxxxxx", "email": "user@example.com"},
"expires": "2026-12-22T10:00:00.000Z",
"accessToken": "eyJ..."
}
}
curl -X POST https://bypriceactivate.pro/api/gpt/activate \
-H "Content-Type: application/json" \
-d '{"code":"GPT20-ABCD-EFGH-IJKL","session":{"user":{"id":"user-xxxxxxxx","email":"user@example.com"},"expires":"2026-12-22T10:00:00.000Z","accessToken":"eyJ..."}}'
{
"ok": true,
"product": "gpt_pro_20x_direct",
"order_id": "gpt_0123456789abcdef",
"status": "queued",
"status_url": "/api/gpt/orders/gpt_0123456789abcdef",
"existing": false
}
Для iOS-кода вместо полного session можно передать account_id.
{
"code": "GPTI-ABCD-EFGH-IJKL",
"account_id": "12345678-1234-4234-9234-123456789abc"
}
curl -X POST https://bypriceactivate.pro/api/gpt/activate \
-H "Content-Type: application/json" \
-d '{"code":"GPTI-ABCD-EFGH-IJKL","account_id":"12345678-1234-4234-9234-123456789abc"}'
400 {"ok":false,"error_code":"SESSION_INVALID","detail":"..."}
404 {"ok":false,"error_code":"CODE_NOT_FOUND","detail":"..."}
409 {"ok":false,"error_code":"CODE_ALREADY_USED","detail":"..."}
429 {"detail":"Too many requests"}
503 {"ok":false,"error_code":"SERVICE_NOT_READY","detail":"..."}
Статусы заказа: queued → running/pending/review → completed либо failed. После финального статуса поллинг прекращается.
curl https://bypriceactivate.pro/api/gpt/orders/gpt_0123456789abcdef
{
"public_id": "gpt_0123456789abcdef",
"code": "GPT20-ABCD-EFGH-IJKL",
"status": "completed",
"provider_status": "completed",
"stage": "completed",
"message": "ChatGPT Pro 20× успешно активирован.",
"account_email": "us***@example.com",
"quoted_amount_minor": 98000,
"quoted_currency": "PHP",
"created_at": 1787482000,
"updated_at": 1787482050,
"completed_at": 1787482050
}
Только для завершённых iOS-заказов. Повторно отправляет тот же receipt на исходный аккаунт и не расходует сток. Между запросами действует пауза 30 секунд.
curl -X POST https://bypriceactivate.pro/api/gpt/orders/gpti_0123456789abcdef/resend
{
"ok": true,
"order_id": "gpti_0123456789abcdef",
"status": "completed",
"resent": true,
"provider_http_status": 200
}
Возвращает готовность GPT Direct, доступное количество Plus и Pro 20×, рассчитанное по доступному балансу провайдера, и число заказов в работе. Оба значения используют один общий баланс и являются альтернативными максимумами — складывать их нельзя. Вызывай перед активацией.
curl https://bypriceactivate.pro/api/gpt/stock
{
"ready": true,
"enabled": true,
"error": null,
"stock_source": "provider_spendable_balance",
"shared_provider_balance": true,
"provider_balance_fresh": true,
"available_by_product": {
"gpt_plus_direct": 55,
"gpt_pro_20x_direct": 6
},
"products": {
"gpt_plus_direct": {
"label": "ChatGPT Plus",
"available": 55
},
"gpt_pro_20x_direct": {
"label": "ChatGPT Pro 20×",
"available": 6
}
},
"orders_in_progress": 0
}
Fortnite · V-Bucks / Crew
Используй два шага: сначала проверь ник игрока Epic, затем подтверди покупку. Старый одноступенчатый метод остаётся доступен.
Чтобы получить Epic-код, открой адрес ниже, войди в аккаунт и скопируй authorizationCode из JSON-ответа. Код одноразовый — отправляй его сразу.
https://www.epicgames.com/id/api/redirect?flow=login&responseType=code&clientId=af43dc71dd91452396fcdffbd7a8e8a9
Проверяет одноразовый Epic-код и возвращает ник для подтверждения. Код активации не списывается, покупка Apple не запускается. Вызови confirm_url до истечения срока.
{
"code": "VB800-ABCD-EFGH-IJKL",
"authorization_code": "abcdef0123456789abcdef0123456789"
}
Для партии на один Epic-аккаунт передай массив строк codes вместо code.
curl -X POST https://bypriceactivate.pro/api/fortnite/prepare \
-H "Content-Type: application/json" \
-d '{"code":"VB800-ABCD-EFGH-IJKL","authorization_code":"abcdef0123456789abcdef0123456789"}'
{
"ok": true,
"status": "prepared",
"order_id": "fn_0123456789abcdefghijklmnopqrstuv",
"order_token": "0123456789abcdefghijklmnopqrstuvwxyzABCDEFG",
"epic_display_name": "Player",
"expires_at": 1791045000,
"items": [{"product": "fortnite_vbucks_800_tr"}],
"confirm_url": "/api/fortnite/orders/fn_0123456789abcdefghijklmnopqrstuv/confirm"
}
Покажи epic_display_name клиенту и получи подтверждение. Сохрани order_token без логирования. Epic authorization_code уже использован; при подтверждении его повторно не отправляй.
После подтверждения ника поставь покупку в очередь с токеном из prepare. Повторный вызов для уже подтверждённой заявки вернёт текущий статус без второй покупки.
curl -X POST https://bypriceactivate.pro/api/fortnite/orders/fn_0123456789abcdefghijklmnopqrstuv/confirm \
-H "Content-Type: application/json" \
-d '{"order_token":"0123456789abcdefghijklmnopqrstuvwxyzABCDEFG"}'
Возвращает 202 и тот же статус заявки, что одноступенчатая активация; затем опрашивай status_url.
Старый одноступенчатый метод: проверяет Epic и сразу запускает покупку, без подтверждения ника. Передай code или массив codes до 500 штук.
{
"code": "VB800-ABCD-EFGH-IJKL",
"authorization_code": "abcdef0123456789abcdef0123456789"
}
curl -X POST https://bypriceactivate.pro/api/fortnite/activate \
-H "Content-Type: application/json" \
-d '{"code":"VB800-ABCD-EFGH-IJKL","authorization_code":"abcdef0123456789abcdef0123456789"}'
{
"ok": true,
"order_id": "fn_0123456789abcdefghijklmnopqrstuv",
"order_token": "0123456789abcdefghijklmnopqrstuvwxyzABCDEFG",
"status": "queued_purchase",
"status_url": "/api/fortnite/orders/fn_0123456789abcdefghijklmnopqrstuv",
"product": "fortnite_vbucks_800_tr",
"vbucks_amount": 800,
"epic_display_name": "Player"
}
Сохрани order_token: он возвращается один раз и нужен для повторного входа или retry. Не записывай authorization_code в логи.
400 {"ok":false,"error_code":"AUTH_CODE_REQUIRED","detail":"..."}
404 {"ok":false,"error_code":"CODE_NOT_FOUND","detail":"..."}
409 {"ok":false,"error_code":"CODE_USED","detail":"..."}
503 {"ok":false,"error_code":"OUT_OF_STOCK","detail":"..."}
Опрашивай раз в 5 секунд, пока polling=false. Успешный финальный статус — done.
curl https://bypriceactivate.pro/api/fortnite/orders/fn_0123456789abcdefghijklmnopqrstuv
{
"ok": true,
"order_id": "fn_0123456789abcdefghijklmnopqrstuv",
"status": "done",
"completed": true,
"polling": false,
"credited_vbucks": 800,
"epic_display_name": "Player",
"items": [{
"order_id": "fn_0123456789abcdefghijklmnopqrstuv",
"status": "done",
"completed": true,
"vbucks_amount": 800
}]
}
Статусы: queued_purchase → purchasing → queued_restore → restoring → done. Статусы, требующие действия: needs_login, restore_review, restore_failed, purchase_failed.
Если purchase_failed содержит error_code=OUT_OF_STOCK, покупка не началась, а неиспользованные коды действительны. После пополнения создай новую заявку со свежим входом Epic; can_retry=false относится только к старой заявке.
Если статус стал needs_login, передай новый одноразовый код от того же Epic-аккаунта.
{
"order_token": "0123456789abcdefghijklmnopqrstuvwxyzABCDEFG",
"authorization_code": "fedcba9876543210fedcba9876543210"
}
Повторяет начисление, когда в статусе can_retry=true. Новую покупку этот вызов не создаёт.
{"order_token":"0123456789abcdefghijklmnopqrstuvwxyzABCDEFG"}
Возвращает доступное количество активаций для каждого Fortnite-продукта.
curl https://bypriceactivate.pro/api/fortnite/stock
{
"ready": true,
"error": null,
"products": {
"fortnite_vbucks_800_tr": {
"label": "Fortnite 800 V-Bucks",
"vbucks": 800,
"available": 10,
"in_stock": true
}
}
}
Grok · Pro / Lite · The X Subscription
Grok использует асинхронный поток: POST /api/activate возвращает order_id, затем опрашивай GET /api/activate/{order_id}. Старые коды по-прежнему принимают org_id (Grok User ID); четыре новых типа ниже — grok_cookie. Продукт определяется кодом.
Где взять Grok User ID: открой https://grok.com/api/auth/session в браузере где залогинен в Grok — поле userId (UUID).
⚠️ org_id здесь — это Grok User ID, а не Claude Organization ID (оба — UUID).
{
"code": "GRK-SZI1-J5AN-88SV",
"org_id": "aaab84aa-7514-4ef6-809b-be62ff1e4efe"
}
curl -X POST https://bypriceactivate.pro/api/activate \
-H "Content-Type: application/json" \
-d '{"code":"GRK-SZI1-J5AN-88SV","org_id":"aaab84aa-7514-4ef6-809b-be62ff1e4efe"}'
{
"order_id": 6247,
"status": "queued",
"product": "grok_pro_1m",
"org_id": "aaab84aa-7514-4ef6-809b-be62ff1e4efe"
}
Поллинг такой же, как у Claude — см. секцию GET /api/activate/{order_id} выше (status: queued → running → done / failed).
Без параметра показывает доступность по клиентским товарам Grok. Добавь ключ продукта, например ?product=grok_7d, чтобы проверить конкретный SKU.
curl 'https://bypriceactivate.pro/api/grok/stock?product=grok_7d'
{
"product": "grok_7d",
"label": "Grok 7 дней (US)",
"in_stock": true,
"available": 12
}
Perplexity Pro
Perplexity Pro активируется синхронно: передай код и UUID пользователя. Метод сразу возвращает итоговый результат, опрос статуса не нужен.
Где взять user_id: открой https://www.perplexity.ai/api/auth/session в браузере где залогинен в Perplexity — поле "id".
Активировать Perplexity Pro на указанный UUID. Авторизация не нужна — сам код является ключом.
{
"code": "PXY-EW8D-87WK-F8N0",
"user_id": "aaab84aa-7514-4ef6-809b-be62ff1e4efe"
}
curl -X POST https://bypriceactivate.pro/api/perplexity/activate \
-H "Content-Type: application/json" \
-d '{"code":"PXY-EW8D-87WK-F8N0","user_id":"aaab84aa-7514-4ef6-809b-be62ff1e4efe"}'
{
"ok": true,
"user_id": "aaab84aa-7514-4ef6-809b-be62ff1e4efe",
"transaction_id": "140003698963470",
"stock_id": 38,
"expires_date": "2026-08-07T17:16:34Z",
"service_expires_date": "2026-08-07T17:16:34Z",
"current_period_expires_date": "2026-07-17T17:16:34Z",
"service_days": 28,
"delivery": "automatic_weekly_extensions",
"product": "perplexity_pro"
}
400 {"detail": "user_id must be a valid UUID (8-4-4-4-12 lowercase hex)"}
400 {"detail": "code is required"}
404 {"detail": "code not found"}
409 {"detail": "код уже fulfilled"} // уже активирован
409 {"detail": "нет свободных receipt в стоке — ..."} // out of stock, код валиден
После 200 OK юзер может нажать Restore Purchases или перезайти. Срок услуги — 28 дней, продление каждые 7 дней выполняется автоматически. expires_date и service_expires_date — конец 28-дневного срока; current_period_expires_date — граница текущего недельного этапа.
Сколько Perplexity Pro receipt'ов готово к активации прямо сейчас. Удобно вызывать перед POST /api/perplexity/activate, чтобы избежать 409 при пустом стоке.
curl https://bypriceactivate.pro/api/perplexity/stock
{
"product": "perplexity_pro",
"label": "Perplexity Pro",
"in_stock": true,
"available": 87
}