API — аутентификация и основные эндпоинты
REST API BePromio /api/v1
Базовый URL
{BASE_URL}/api/v1Аутентификация
JWT Bearer-токены. Пара accessToken (короткоживущий) + refreshToken (долгоживущий, с ротацией).
# Вход через Telegram initData
POST /api/v1/auth/telegram
{ "initData": "<Telegram.WebApp.initData>" }
# Вход по email
POST /api/v1/auth/login
{ "email": "user@example.com", "password": "..." }
# Регистрация по email
POST /api/v1/auth/register
{ "email": "user@example.com", "password": "...", "role": "advertiser" }
# Обновление токенов
POST /api/v1/auth/refresh
{ "refreshToken": "..." }Заголовок авторизованных запросов: Authorization: Bearer <accessToken>.
Публичные эндпоинты
| Метод | Путь | Описание |
|---|---|---|
| GET | /marketplace/channels | Каталог каналов (фильтры: category_id, min_members, max_members, language, q, limit, offset) |
| GET | /categories | Таксономия тематик |
| GET | /health/live, /health/ready | Health checks |
| GET | /metrics | Метрики Prometheus |
Основные ресурсы
/channels— каналы пользователя;/channels/:id/posts,/channels/:id/moderation,/channels/:id/profile,/channels/:id/slots,/channels/:id/analytics;/placements— рекламные размещения и их статусы;/advertiser/projects,/advertiser/campaigns,/advertiser/ads;/wallets,/withdrawals— финансы;/crosspromo— взаимное продвижение.
Идемпотентность
Мутации с деньгами и публикациями принимают заголовок idempotency-key — повторный запрос с тем же ключом не создаёт дубль.
Ошибки
Ошибки возвращаются в едином формате: { "code": "...", "message": "...", "details": {...} }. Подробнее — Errors и Rate Limits.