Axionna API v1.2
RAW / AI @axionnabot
Официальный API · Axionna Network

Документация разработчика

API платформы Axionna позволяет владельцам Telegram-ботов и каналов монетизировать аудиторию через подписки на задания спонсоров и выдачу рекламных показов с автоматической защитой от фрода.

🔑

Авторизация запросов

Все запросы к API выполняются через HTTPS с API-ключом Axionna в заголовке:
Authorization: Bearer <AXIONNA_API_KEY>.
Ключ формата AX-... выдаётся в меню подключённого бота: Интеграция (API) → API Ключ.

Вызов спонсоров (заданий)

Возвращает список доступных для выполнения заданий (подписки на каналы, боты, переходы) с учётом антифрод-фильтрации и таргетинга.

POST /api/sponsors
AXIONNA_API_KEY
Параметры запроса (JSON body)
ПолеТипСтатусОписание
user_id integer обязательное Telegram ID пользователя, для которого запрашиваются задания.
chat_id integer опционально ID чата-источника. Для личного бота можно не передавать: по умолчанию используется user_id. Для групп и кампаний передавайте явно.
max_sponsors integer опционально Максимальное количество заданий в ответе (от 1 до 20). По умолчанию: 5.
curl -X POST https://axionna.org/api/sponsors \
  -H "Authorization: Bearer AX-example-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "user_id": 987654321,
    "max_sponsors": 3
  }'
Проверка заданий спонсоров

Проверяет факт выполнения выданных заданий конкретным пользователем и возвращает индивидуальный статус подписки и вознаграждения.

POST /api/check
AXIONNA_API_KEY
Параметры запроса (JSON body)
ПолеТипСтатусОписание
user_id integer обязательное Telegram ID пользователя.
task_ids string[] обязательное Массив ID заданий из /api/sponsors для проверки.
curl -X POST https://axionna.org/api/check \
  -H "Authorization: Bearer AX-example-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "user_id": 987654321,
    "task_ids": ["task_101", "task_102"]
  }'
Варианты поля status в результатах проверки (results[].status)
ok Успех
Единый статус успешного выполнения для всех типов действий: подписка на канал/чат подтверждена, целевой бот запущен, ссылка посещена или показ рекламы засчитан. Вознаграждение начисляется.
not_ok Не выполнено
Задание не выполнено пользователем (не вступил в канал/чат, не запустил бота или не перешел по выданной ссылке). Вознаграждение не начисляется.
not_allowed Не подходит
Пользователь отсеян защитой от фрода, не подошел под таргетинг либо TGrass вернул is_fake=true или offer_expired. Axionna снимает задание с выдачи без выплаты. В /api/check вернётся not_allowed с subscribed=false; интеграции не должны выдавать за него награду.
Рекламные показы и приветствия

Сервер Axionna самостоятельно отправляет рекламный пост напрямую в диалог с пользователем от имени вашего подключенного бота через Telegram Bot API. Разработчик передаёт только API-ключ своего бота и chat_id — показ физически отправляется именно из подключенного бота, его невозможно перехватить или перенаправить на сторонние площадки.

POST /api/views
AXIONNA_API_KEY
Параметры запроса (JSON body)
ПолеТипСтатусОписание
chat_id integer обязательное Telegram ID чата или пользователя, которому показывается реклама.
greeting boolean опционально true для показа приветственного рекламного сообщения при старте бота.
impression_id string опционально Уникальный ключ идемпотентности показа для защиты от дублирования.
curl -X POST https://axionna.org/api/views \
  -H "Authorization: Bearer AX-example-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "chat_id": 987654321,
    "greeting": false
  }'
Варианты поля result в показах рекламы (result)
Success Успех
Реклама успешно отправлена получателю, показ засчитан и оплачен.
RevokedTokenError Ошибка
Токен бота отозван или недействителен в Telegram Bot API.
UserForbiddenError Ошибка
Пользователь заблокировал бота или остановил диалог.
ToManyRequestsError Лимит
Слишком много запросов (Telegram rate limit). Необходимо подождать.
OtherBotApiError Ошибка
Другая ошибка Telegram API при отправке рекламного сообщения.
OtherError Ошибка
Внутренняя системная ошибка при формировании показа.
AdLimited Лимит
Достигнут лимит показов рекламы (для пользователя или бота).
NoAds Нет рекламы
Нет доступных объявлений в системе под текущие категории и таргетинг.
BotIsNotEnabled Отключен
Бот или режим монетизации показов выключен в настройках кабинета.
Banned Бан
Бот или владелец площадки заблокирован за нарушение правил.
InReview Модерация
Бот находится на обязательной проверке модерацией перед запуском показов.
Баланс профиля и статистика

Возвращает текущий баланс владельца, заработанные и потраченные средства, а также список подключенных ботов.

POST /api/balance
AXIONNA_API_KEY
Параметры

Запрос не требует параметров в теле (передаётся пустой JSON {}). Авторизация выполняется по токену владельца или привязанного бота.

curl -X POST https://axionna.org/api/balance \
  -H "Authorization: Bearer AX-example-api-key" \
  -H "Content-Type: application/json" \
  -d '{}'
Вебхук отписок

Axionna отправляет автоматический POST-запрос на ваш HTTPS endpoint, когда пользователь отписывается от канала спонсора раньше гарантированного срока. Проверьте секрет из заголовка X-Axionna-Webhook-Secret и обработайте одинаковый Idempotency-Key только один раз.

POST Ваш HTTPS Webhook URL
Входящее событие
Параметры входящего события
ПолеТипОписание
event string Всегда subscriber.unsubscribed.
tg_user_id integer Telegram ID отписавшегося пользователя.
chat_id integer ID канала, от которого произошла отписка.
from fastapi import FastAPI, Request

app = FastAPI()

@app.post("/webhook/axionna")
WEBHOOK_SECRET = "сохранённый_секрет"

@app.post("/webhook/axionna")
async def handle_unsub(req: Request):
    if req.headers.get("X-Axionna-Webhook-Secret") != WEBHOOK_SECRET:
        return {"ok": False}
    data = await req.json()
    if data.get("event") == "subscriber.unsubscribed":
        user_id = data["tg_user_id"]
        # Списание внутренней награды за досрочную отписку
        deduct_user_balance(user_id)
    return {"ok": True}