HTTP API Zad Top

Подключите магазин, сайт или бота к тому же движку, что крутит @ZadTopBot. Один ключ, асинхронные активации и проверки, подробный результат по каждому коду.

Базовый адрес

https://api.zadtop.com

Получить ключ

  1. @ZadTopBot → Подписки → HTTP API.
  2. Держите активный тариф вместе с дополнением API — фиксированно 15 USDT за 30 дней при любом тарифе.
  3. Нажмите Новый ключ API. Новый ключ сразу отзывает предыдущий.

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

Передавайте ключ в заголовке X-API-Key с каждым запросом. Доступ встаёт, когда кончается тариф или дополнение API, и возобновляется при продлении с тем же ключом.

X-API-Key: pk_YOUR_KEY_HERE

Как устроены задачи

Активации и массовые проверки асинхронны. POST проверяет запрос и сразу возвращает job_id; результат читается через GET /v1/jobs/{id} — или добавьте ?wait=25, чтобы ответ пришёл по завершении, без опроса.

done у задачи не значит, что каждая карта прошла. Это значит, что работа выполнена. Исход каждой карты в results[].success, а при неудаче в err_code.

curl -sS -X POST https://api.zadtop.com/v1/jobs/instant-redeem \
  -H "X-API-Key: pk_YOUR_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{"player_id":"2186053213","codes":["4233939008625064"],"game":"freefire"}'

Проверка кодов без активации

Каждая карта возвращается со статусом — valid, used, invalid и ещё несколько — а с with_value и пакетом. Ничего не активируется, целая карта остаётся целой.

curl -sS -X POST https://api.zadtop.com/v1/codes/check \
  -H "X-API-Key: pk_YOUR_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{"codes":["7397062240255931","5539151276341494"],"with_value":true}'

Основные маршруты

POST/v1/jobs/instant-redeemАктивировать коды Free Fire, PUBG, Yalla Ludo или Jawaker на ID игрока.
POST/v1/jobs/stock-redeemАктивация из сохранённого запаса выбором пакетов.
POST/v1/codes/checkПрочитать до 20 карт без активации.
POST/v1/jobs/code-checkТа же проверка до 200 карт, как задача.
GET/v1/player/lookupИмя в игре и регион по ID игрока.
GET/v1/jobs/{id}Состояние и результат одной задачи.
GET/v1/stock/summaryЧто у вас есть, по игре и по пакету.
POST/v1/order/screenshotПодтверждение заказа магазина в PNG.
GET/v1/me · /v1/quota · /v1/history · /v1/playersАккаунт, остаток лимита, прошлые заказы, сохранённые игроки.
POST/v1/subscription/purchase · purchase-api-addonКупить или продлить тариф с баланса USDT.

Игры

Одни и те же маршруты для всех игр — меняйте только game. Пакеты и примеры — в справке и на страницах игр.

freefireактивация · проверка кодов · поиск игрока
pubgактивация · проверка кодов · поиск игрока
ludo / ludogoldактивация с tier · поиск игрока · без проверки кодов
jawakerактивация · поиск игрока · без проверки кодов

Дневной лимит

У каждого тарифа есть дневной лимит, который сбрасывается в полночь UTC и делится между играми тарифа. Активация — 1 запрос за код, проверка — 1 за карту, поиск игрока — 0,25. Отказ магазина засчитывается; сбой на нашей стороне возвращается в лимит автоматически. Бот и API используют один лимит.

Ошибки

Проверка отвечает 400 с кодом внутри detail.error; аутентификация — 401 или 403; слишком много вызовов — 429. При безопасном перезапуске новые задачи отвечают 503 SERVICE_DRAINING — повторите чуть позже. Полный список в справке.

Ошибки запроса

401Ключ API отсутствует, введён с ошибкой или заменён новым. Скопируйте его заново в боте.
403Нет активного тарифа с дополнением API. Продлите в боте.
403GAME_NOT_IN_PLANВаш тариф не включает эту игру. Добавьте игру в тариф в боте.
400INVALID_CODEНедействительный код для этой игры. Ничего не отправлено и не списано.
400INVALID_PLAYER_IDНедействительный ID игрока для этой игры. Ничего не отправлено и не списано.
400INSUFFICIENT_BALANCEБаланса не хватает. Пополните его в боте.
429QUOTA_EXHAUSTEDНа сегодня запросов не хватает. Они пополняются в полночь UTC или при покупке тарифа.
429RATE_LIMITСлишком много вызовов. Подождите Retry-After секунд и повторите.
503SERVICE_DRAININGКороткое обслуживание. Ничего не поставлено в очередь; повторите через несколько секунд.

Результат по карте (err_code)

CODE_ALREADY_USEDКарта уже активирована. Не повторяйте.
INVALID_CODEМагазин не распознаёт карту. Проверьте, как она введена.
REGION_MISMATCHКарта для другого региона, чем у игрока.
PLAYER_NOT_FOUNDАккаунта с таким ID нет. Карты не потрачены.
NETWORKВременный сбой до получения результата. Запрос возвращён; повторите тот же код.

Регионы

Поддерживаются игроки почти всех стран. Там, где Garena вовсе не продаёт ваучеры — США, Аргентина, Чили и Россия — поиск игрока отвечает 422 UNSUPPORTED_REGION, до того как хоть один код окажется под угрозой.