HTTP API Zad Top
Подключите магазин, сайт или бота к тому же движку, что крутит @ZadTopBot. Один ключ, асинхронные активации и проверки, подробный результат по каждому коду.
Базовый адрес
https://api.zadtop.com
Получить ключ
- @ZadTopBot → Подписки → HTTP API.
- Держите активный тариф вместе с дополнением API — фиксированно 15 USDT за 30 дней при любом тарифе.
- Нажмите Новый ключ 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. Продлите в боте. | |
| 403 | GAME_NOT_IN_PLAN | Ваш тариф не включает эту игру. Добавьте игру в тариф в боте. |
| 400 | INVALID_CODE | Недействительный код для этой игры. Ничего не отправлено и не списано. |
| 400 | INVALID_PLAYER_ID | Недействительный ID игрока для этой игры. Ничего не отправлено и не списано. |
| 400 | INSUFFICIENT_BALANCE | Баланса не хватает. Пополните его в боте. |
| 429 | QUOTA_EXHAUSTED | На сегодня запросов не хватает. Они пополняются в полночь UTC или при покупке тарифа. |
| 429 | RATE_LIMIT | Слишком много вызовов. Подождите Retry-After секунд и повторите. |
| 503 | SERVICE_DRAINING | Короткое обслуживание. Ничего не поставлено в очередь; повторите через несколько секунд. |
Результат по карте (err_code)
CODE_ALREADY_USED | Карта уже активирована. Не повторяйте. |
|---|---|
INVALID_CODE | Магазин не распознаёт карту. Проверьте, как она введена. |
REGION_MISMATCH | Карта для другого региона, чем у игрока. |
PLAYER_NOT_FOUND | Аккаунта с таким ID нет. Карты не потрачены. |
NETWORK | Временный сбой до получения результата. Запрос возвращён; повторите тот же код. |
Регионы
Поддерживаются игроки почти всех стран. Там, где Garena вовсе не продаёт ваучеры — США, Аргентина, Чили и Россия — поиск игрока отвечает 422 UNSUPPORTED_REGION, до того как хоть один код окажется под угрозой.