API документация

Программный доступ к магазину: баланс, каталог, покупка кодов за баланс и активация купленного кода на аккаунт покупателя. REST, JSON, HTTPS.

Базовый URL
https://gpt.buyforgame.com
Формат
JSON · UTF-8
Валюта
USDT
Содержание

Аутентификация

API-ключ создаётся в личном кабинете → раздел «API-ключ». Передавайте его в каждом защищённом запросе одним из способов:

X-Api-Key: sk_ваш_ключ # или Authorization: Bearer sk_ваш_ключ
  • Ключ привязан к аккаунту — покупки списываются с баланса этого аккаунта.
  • Держите ключ в секрете. Скомпрометирован — сбросьте в кабинете (старый отзывается сразу).
  • Эндпоинты /balance и /purchase требуют ключ; /products — опционально (с ключом отдаёт персональные цены); /check — публичный.

Пополнение баланса

Баланс пополняется в кабинете переводом USDT (TRC20 / BEP20) — зачисляется 1:1 после подтверждения сети. Программного пополнения нет (крипто-платёж требует ручного перевода). API тратит уже имеющийся баланс.

GET/api/v1/balance

Баланс аккаунта

Требует ключ. Возвращает текущий баланс аккаунта.

Запрос
curl https://gpt.buyforgame.com/api/v1/balance \ -H "X-Api-Key: sk_ваш_ключ"
Ответ 200
{ "ok": true, "email": "you@mail.com", "balance": "42.50", "currency": "USDT" }
GET/api/v1/products

Каталог товаров

Список активных товаров и их slug для покупки. Без ключа — базовые цены; с ключом — персональные (если для вашего аккаунта заданы). У ChatGPT Plus оптовые ступени: quantity ≥ 500 → 16.70 USDT; quantity ≥ 1000 → 16.55 USDT (поля volume / volumes).

Запрос
curl https://gpt.buyforgame.com/api/v1/products \ -H "X-Api-Key: sk_ваш_ключ"
Ответ 200
{ "ok": true, "products": [ { "slug": "claude-pro-1m", "title": "Claude PRO", "price": "19.50", "currency": "USDT", "platform": "claude" }, { "slug": "chatgpt-plus", "title": "ChatGPT Plus", "price": "18.00", "currency": "USDT", "platform": "chatgpt", "volume": { "fromQty": 500, "price": "16.70" }, "volumes": [{ "fromQty": 500, "price": "16.70" }, { "fromQty": 1000, "price": "16.55" }] } ] }
Актуальные товары
slugТоварПлатформаЦена
chatgpt-plus-1mChatGPT Plus · 1 месяцchatgpt17.80 · от 500: 16.70, от 1000: 16.55
chatgpt-go-1mChatGPT Go · 1 месяцchatgpt5.80
chatgpt-pro-x5-1mChatGPT Pro X5 · 1 месяцchatgpt95.00
chatgpt-pro-x20-1mChatGPT Pro X20 · 1 месяцchatgpt210.00
claude-pro-1mClaude PROclaude21.00
claude-max-x5Claude MAX X5claude130.00
claude-max-x20Claude MAX X20claude250.00
POST/api/v1/purchase

Покупка за баланс

Требует ключ. Списывает стоимость с баланса и сразу возвращает коды. Атомарно: при нехватке средств или отсутствии товара заказ не создаётся и баланс не трогается.

Тело запроса
ПолеТипОписание
slugstringТовар по slug (см. /products). Обязателен, если нет productId.
productIdstringАльтернатива slug — товар по ID.
quantityintКол-во кодов, 1…1000. По умолчанию 1. ChatGPT Plus: от 500 — 16.70; от 1000 — 16.55 USDT за код.
Запрос
curl -X POST https://gpt.buyforgame.com/api/v1/purchase \ -H "X-Api-Key: sk_ваш_ключ" \ -H "Content-Type: application/json" \ -d '{"slug":"claude-pro-1m","quantity":1}'
Ответ 200
{ "ok": true, "orderToken": "bEDORwnRZ84l...", "orderUrl": "https://gpt.buyforgame.com/order/bEDORwnRZ84l...", "quantity": 1, "codes": ["CPRO-XXXX-XXXX-XXXX"], "activateUrl": "https://kaiser.buyforgame.com", "spent": "19.50", "balance": "23.00" }
Поля ответа
codesМассив выданных кодов.
activateUrlБаза для активации (обычно https://kaiser.buyforgame.com). Как отправить код — см. Активация кода.
spentСписано с баланса, USDT.
balanceОстаток баланса после покупки.
orderUrlСтраница заказа с кодами.
Пример на Python
import requests, uuid r = requests.post("https://gpt.buyforgame.com/api/v1/purchase", headers={"X-Api-Key": "sk_ваш_ключ", "Idempotency-Key": str(uuid.uuid4())}, json={"slug": "claude-pro-1m", "quantity": 1}) data = r.json() print(data["codes"], data["balance"])
Идемпотентность (защита от двойного списания)

Передайте заголовок Idempotency-Key (любая уникальная строка на запрос, до 200 символов — например UUID). Если ответ потерялся и вы повторите запрос с тем же ключом:

  • тот же ключ + те же параметры → вернётся тот же заказ и коды, повторного списания не будет (в ответе "idempotent": true);
  • тот же ключ + другие параметры → 422 idempotency_key_reused;
  • запрос ещё обрабатывается (параллельный дубль) → 409 request_in_progress, повторите чуть позже;
  • без ключа каждый запрос — отдельная покупка (ретрай по таймауту может списать дважды).

Активация кода

После POST /purchase вы получаете код (например CPRO-… / PLUS-…) и activateUrl = https://kaiser.buyforgame.com. Код сам по себе подписку не включает — его нужно отправить на активацию вместе с данными аккаунта покупателя. API-ключ магазина для активации не нужен: авторизация — сам код.

Схема
  1. Купить код через POST /api/v1/purchase.
  2. Получить у покупателя данные аккаунта (Session JSON / Organization ID / sessionKey — зависит от тарифа).
  3. Отправить код на активацию (сайт или API ниже).
  4. Опрашивать статус, пока не станет completed / failed.

1. Сайт (без своего бэкенда)

Откройте ссылку с кодом — покупатель сам вставит данные аккаунта на форме:

https://kaiser.buyforgame.com/?uniquecode=CPRO-XXXX-XXXX-XXXX https://kaiser.buyforgame.com/?uniquecode=PLUS-XXXX-XXXX-XXXX

2. Универсальный API (рекомендуется для интеграций)

Работает для всех тарифов (ChatGPT и Claude). База: https://kaiser.buyforgame.com. Три шага.

POST/api/redeem/verify

Шаг A — проверить код

Возвращает orderId и какое поле нужно передать дальше (credentialField).

curl -X POST https://kaiser.buyforgame.com/api/redeem/verify \ -H "Content-Type: application/json" \ -d '{"code":"CPRO-XXXX-XXXX-XXXX"}'
{ "orderId": "e2eaa7c4-…", "status": "pending", "platform": "claude", "plan": "pro", "credentialField": { "field": "orgId", "label": "Organization ID", "hint": "UUID …", "instructions": ["Откройте https://claude.ai/settings/account", "…"] } }
POST/api/redeem/activate

Шаг B — отправить данные аккаунта

В теле обязательно orderId и поле из credentialField.field (одно из: sessionJson, orgId, sessionKey, accountId, email).

ТарифОбычно нужноОткуда взять
ChatGPT Plus / Go / Pro X5 / Pro X20sessionJsonПолный JSON со страницы https://chatgpt.com/api/auth/session (в той же вкладке, где залогинен ChatGPT)
Claude PRO / MAXorgIdUUID со страницы https://claude.ai/settings/account. Иногда API попросит sessionKey (sk-ant-sid…) — смотрите credentialField из verify
# Claude PRO — Organization ID curl -X POST https://kaiser.buyforgame.com/api/redeem/activate \ -H "Content-Type: application/json" \ -d '{"orderId":"e2eaa7c4-…","orgId":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"}' # ChatGPT Plus — Session JSON curl -X POST https://kaiser.buyforgame.com/api/redeem/activate \ -H "Content-Type: application/json" \ -d '{"orderId":"…","sessionJson":'"$(cat session.json)"'}'
{ "orderId": "e2eaa7c4-…", "status": "activating" }
GET/api/redeem/status/{orderId}

Шаг C — статус

Опрашивайте раз в 3–5 секунд, пока статус не станет терминальным.

curl https://kaiser.buyforgame.com/api/redeem/status/e2eaa7c4-…
pendingкод ещё не использован
activatingидёт активация
completedподписка на аккаунте
failedотказ — смотрите message
cancelledотменён

3. Короткий путь для ChatGPT

Один запрос вместо verify+activate. Только ChatGPT-тарифы. Claude через этот shortcut не отправляйте — используйте универсальный API выше.

plan в URLПрефикс кода
plusPLUS-…
goGO-…
pro5xPRO5-…
pro20xPRO20-…
curl -X POST https://kaiser.buyforgame.com/api/v1/chatgpt/plus \ -H "Content-Type: application/json" \ -d '{"code":"PLUS-XXXX-XXXX-XXXX","sessionJson":'"$(cat session.json)"'}' # статус curl https://kaiser.buyforgame.com/api/v1/chatgpt/plus/PLUS-XXXX-XXXX-XXXX

Пример на Python (универсальный API)

import json, time, urllib.request KAISER = "https://kaiser.buyforgame.com" def call(method, path, body=None): req = urllib.request.Request( KAISER + path, data=None if body is None else json.dumps(body).encode(), method=method, headers={"Content-Type": "application/json"}, ) with urllib.request.urlopen(req, timeout=30) as r: return json.loads(r.read().decode()) code = "CPRO-XXXX-XXXX-XXXX" # код из POST /api/v1/purchase info = call("POST", "/api/redeem/verify", {"code": code}) field = info["credentialField"]["field"] # orgId / sessionJson / sessionKey … payload = {"orderId": info["orderId"], field: "…значение от покупателя…"} call("POST", "/api/redeem/activate", payload) while True: st = call("GET", f"/api/redeem/status/{info['orderId']}") print(st.get("status"), st.get("message")) if st.get("status") in ("completed", "failed", "cancelled"): break time.sleep(4)
Session JSON / sessionKey — это доступ к аккаунту покупателя. Не логируйте и не храните дольше, чем нужно для активации.
POST/api/check

Проверка статуса кодов

Публичный (без ключа). Проверяет, использован код или нет. Read-only — код не тратится. Принимает пачку: codes строкой (по коду на строку) или один code.

Запрос
curl -X POST https://gpt.buyforgame.com/api/check \ -H "Content-Type: application/json" \ -d '{"codes":"CPRO-AAAA-BBBB-CCCC\nGO-XXXX-YYYY-ZZZZ"}'
Ответ 200
{ "results": [ { "code": "CPRO-AAAA-BBBB-CCCC", "found": true, "used": false, "unused": true, "status": "unused" } ] }
Значения status
unused🟢 не использован
used🔴 использован
activating🟡 в процессе активации
failed⚠️ ошибка активации
cancelled / bad / disabled⚫ отменён / битый / отключён
not_found❔ код не найден

Коды ошибок

Ошибка приходит в формате { "error": { "code", "message" } } с соответствующим HTTP-статусом.

HTTPcodeПричина
400bad_requestНекорректный JSON или тело запроса.
401missing_keyНе передан заголовок с API-ключом.
401invalid_keyКлюч не найден / отозван.
402insufficient_balanceНедостаточно средств на балансе.
404no_productТовар не найден или выключен.
409out_of_stockНет в наличии (для товаров без автогенерации).
409request_in_progressЗапрос с этим Idempotency-Key ещё обрабатывается.
422idempotency_key_reusedТот же Idempotency-Key с другими параметрами запроса.
429rate_limitedПревышен лимит запросов — повторите позже.
502unavailable / upstreamВременная ошибка выдачи — повторите.
500server_errorВнутренняя ошибка.

Лимиты

ЭндпоинтЛимит запросов
POST /api/v1/purchase30/мин на аккаунт · 60/мин на IP
GET /api/v1/balance60/мин на аккаунт · 120/мин на IP
GET /api/v1/products60/мин на IP

Максимум 1000 кодов за один запрос покупки. ChatGPT Plus (plus): от 500 шт — 16.70 USDT; от 1000 шт — 16.55 USDT. При 429 повторите после паузы.