# API документация

Сервис предоставляет REST API для управления подписками, получения ленты новостей, авторизации и платежей. Все запросы, кроме публичных, требуют аутентификации через заголовок `X-Auth-Token` или через данные инициализации мини-приложений (Telegram, MAX, VK).

## Основные эндпоинты

### Авторизация и привязка
- `POST /api/webapp/link_telegram` – привязывает Telegram ID к текущему аккаунту после авторизации через российский ID-сервис.
- `POST /api/auth/max-token` – генерирует одноразовый токен для входа через MAX.
- `POST /api/auth/vk/callback` – обрабатывает callback от VK OAuth.
- `GET /api/auth/yandex/login` – инициирует вход через Яндекс ID.

### Управление источниками
- `GET /api/webapp/sources` – получить список всех источников пользователя.
- `POST /api/webapp/add` – добавить новый источник (RSS, Telegram, VK).
- `POST /api/webapp/delete` – удалить источник по ID.

### Лента новостей
- `GET /api/webapp/digest` – получить последнюю сохранённую ленту в HTML-формате.
- `POST /api/webapp/my_run` – запустить ручной сбор новостей (только для премиум-пользователей).

### Платежи
- `POST /api/payment/create-invoice` – создать счёт для оплаты тарифа.
- `GET /api/payment/result` – callback от платёжного агрегатора.

### Согласие и удаление
- `POST /api/webapp/consent` – сохранить согласие на обработку персональных данных.
- `POST /api/delete-account` – запрос на удаление аккаунта (требует подтверждения по email).

### Состояние и настройки
- `GET /api/webapp/queue/status` – статус текущей задачи сбора.
- `POST /api/webapp/set_time` – изменить время ежедневной отправки ленты.

## Ответы
Все ответы возвращаются в формате JSON. При успехе поле `status: "ok"` или соответствующие данные. Ошибки сопровождаются кодом HTTP и описанием в поле `detail`.

## Аутентификация
Для запросов из браузера или мобильного приложения используется токен, полученный после входа через российский ID-сервис. Для ботов – данные инициализации (initData) соответствующей платформы.
