Документация Партнёрского API

Проверяйте регистрацию пользователей и выполнение игровых заданий в Pixel Wars для ваших Telegram-ботов, CPA-сетей и рекламных интеграций в реальном времени.

Базовый хост Partner API
https://api.pxlw.online/api

Готовые типы заданий для партнёров

Ниже перечислены основные типы партнёрских заданий и точные условия их проверки в ответе API.

🎮

Зайти в игру / Запустить бота

Пользователь запустил бота или открыл Mini App и зарегистрирован в игре.

joined == true
🎓

Пройти обучение

Игрок полностью прошёл вступительный туториал и готов к полноценному геймплею.

tutorial_completed == true
⚔️

Сыграть в бой

Игрок провёл хотя бы один PvP-бой на арене против другого игрока или бота.

has_played_fight == true
🏆

Апнуть 2-ю лигу (Bronze)

Игрок набрал опыт и перешёл из Iron (1-я лига) в Bronze (2-я лига) или выше.

reached_league_2 == true
🥇

Победа в PvP

Игрок одержал хотя бы одну чистую победу на PvP-арене.

pvp_wins >= 1
📅

Заходить N дней

Количество уникальных дней захода игрока в Pixel Wars.

active_days_count >= N

Проверка пользователя

Эндпоинт возвращает статус регистрации игрока, завершение обучения, статистику PvP боёв, текущую лигу и объект готовности заданий.

GET /api/users/check/{user_id}

Публичный метод, не требующий авторизации. Возвращает информацию по игроку по его Telegram User ID.

Форматы вызова:

  • GET https://api.pxlw.online/api/users/check/{user_id} (рекомендуемый путь)
  • GET https://api.pxlw.online/api/users/check?telegram_id={id} (query-параметр)
  • GET https://api.pxlw.online/api/users/check?user_id={id}&task=reach_league_2 (с проверкой конкретного таска)
  • POST https://api.pxlw.online/api/users/check с телом {"telegram_id": 123456789}

Параметры запроса

Параметр Расположение Тип Описание
user_id Path / Query integer Telegram ID игрока (положительное 64-битное число). Обязательный.
task опционально Query string Код задания для мгновенной проверки. Значения: login, tutorial, play_fight, reach_league_2, win_fight. В ответе вернётся поле task_completed: true/false.

Поля ответа (200 OK)

Поле Тип Описание
ok boolean Успешность выполнения запроса к API (всегда true при 200 OK).
joined / exists boolean true, если пользователь зарегистрирован в Pixel Wars; false, если ещё не запускал игру.
telegram_id integer Telegram ID запрошенного пользователя.
username string | null Юзернейм в Telegram (без символа @).
first_name string | null Имя пользователя в Telegram.
tutorial_completed boolean true, если игрок завершил стартовое обучение (туториал).
has_played_fight boolean true, если игрок провёл хотя бы 1 бой на PvP арене.
fights_count integer Общее число сыгранных боёв на арене (победы + поражения).
pvp_wins integer Количество побед игрока на арене.
league_name string | null Название текущей лиги игрока ("Iron", "Bronze", "Silver", "Gold", ...).
league_level integer Порядковый номер лиги от 1 (1 = Iron, 2 = Bronze, 3 = Silver, ...).
reached_league_2 boolean true, если игрок достиг 2-й лиги (Bronze) или выше.
active_days_count integer Количество дней активности пользователя в игре.
tasks object Сводный объект статусов: login, tutorial, play_fight, win_fight, reach_league_2.
task_completed boolean | null Булев результат, если в запросе был передан параметр ?task=....
is_blocked boolean Заблокирован ли аккаунт модерацией.
created_at string | null Дата и время первой регистрации аккаунта в формате ISO 8601 UTC.

Примеры ответов

200 OK — Пользователь существует и активен
{
  "ok": true,
  "joined": true,
  "exists": true,
  "telegram_id": 123456789,
  "username": "nickname",
  "first_name": "Alexander",
  "tutorial_completed": true,
  "is_blocked": false,
  "created_at": "2026-08-15T10:30:00+00:00",
  "fights_count": 5,
  "has_played_fight": true,
  "pvp_wins": 3,
  "league_name": "Bronze",
  "league_level": 2,
  "reached_league_2": true,
  "active_days_count": 4,
  "tasks": {
    "login": true,
    "tutorial": true,
    "play_fight": true,
    "win_fight": true,
    "reach_league_2": true
  },
  "task_completed": null
}
200 OK — Пользователь не зарегистрирован
{
  "ok": true,
  "joined": false,
  "exists": false,
  "telegram_id": 123456789,
  "username": null,
  "first_name": null,
  "tutorial_completed": false,
  "is_blocked": false,
  "created_at": null,
  "fights_count": 0,
  "has_played_fight": false,
  "pvp_wins": 0,
  "league_name": null,
  "league_level": 0,
  "reached_league_2": false,
  "active_days_count": 0,
  "tasks": {
    "login": false,
    "tutorial": false,
    "play_fight": false,
    "win_fight": false,
    "reach_league_2": false
  },
  "task_completed": null
}
400 Bad Request — Некорректный ID
{
  "detail": "Invalid telegram_id. Must be a positive integer."
}

Интерактивный тестер API

Проверьте живой ответ сервера прямо в браузере. Введите любой Telegram ID.

Быстрый выбор:
● 200 OK (38 ms)

Примеры кода

Готовые сниппеты для популярных языков программирования.

curl -s "https://api.pxlw.online/api/users/check/123456789"
Скопировано в буфер обмена