API приёма аккаунтов
Через этот API вы отправляете аккаунты — куки или auth_token —
с привязкой к Telegram-ID продавца. Мы автоматически проверяем их и оформляем заявку,
как при ручной загрузке боту.
Обзор
Один запрос — один или несколько аккаунтов одного продавца. Мы извлекаем
auth_token из присланных данных, проверяем живость и подписчиков,
отсекаем дубли и создаём заявку на указанный tg_id. Проверка идёт в фоне —
запрос возвращается сразу.
Базовый адрес
Авторизация
Каждый запрос должен содержать API-ключ в заголовке. Ключ выдаётся отдельно.
X-Api-Key: ВАШ_КЛЮЧ
Альтернатива: Authorization: Bearer ВАШ_КЛЮЧ или параметр
?key=ВАШ_КЛЮЧ в URL. Без ключа или с неверным —
401 unauthorized.
Проверка доступности
Проверка, что сервис жив. Ключ не требуется.
# ответ
{ "ok": true, "service": "buyer-intake" }
Приём аккаунтов
Тело — JSON. Заголовки: Content-Type: application/json и
X-Api-Key.
Поля запроса
| Поле | Тип | Описание | |
|---|---|---|---|
tg_id | число | обязательно | Telegram-ID продавца, которому засчитать аккаунты |
cookies | строка / список | одно из | Куки аккаунта(ов). auth_token (40 hex-символов) вытаскивается из строки любого формата |
tokens | строка / список | одно из | Альтернатива cookies: сразу auth_token — один или списком |
name | строка | опционально | Метка продавца (например @nickname), если его ещё нет в базе |
Нужно передать хотя бы одно поле с токенами. Также принимаются
cookie, token, text, data —
auth_token находится автоматически, лишние куки (ct0 и прочие) игнорируются.
Пример: один аккаунт
curl -X POST https://twitswag.sbs/api/intake \
-H "X-Api-Key: ВАШ_КЛЮЧ" \
-H "Content-Type: application/json" \
-d '{
"tg_id": 123456789,
"name": "@seller",
"cookies": "auth_token=abcdef0123456789abcdef0123456789abcdef01; ct0=..."
}'
Пример: несколько аккаунтов одного продавца
curl -X POST https://twitswag.sbs/api/intake \
-H "X-Api-Key: ВАШ_КЛЮЧ" \
-H "Content-Type: application/json" \
-d '{
"tg_id": 123456789,
"tokens": [
"abcdef0123456789abcdef0123456789abcdef01",
"1234567890abcdef1234567890abcdef12345678"
]
}'
Пример на Python
import requests
requests.post(
"https://twitswag.sbs/api/intake",
headers={"X-Api-Key": "ВАШ_КЛЮЧ"},
json={
"tg_id": 123456789,
"name": "@seller",
"cookies": "auth_token=abcdef0123456789abcdef0123456789abcdef01; ct0=...",
},
timeout=15,
)
Ответы
Успех — 202 Accepted.
{ "ok": true, "accepted": 2, "tg_id": 123456789, "submission_id": 19 }
accepted— сколько уникальныхauth_tokenизвлечено из запроса.submission_id— номер заявки. Все куки одногоtg_idза один день копятся в одну заявку, поэтому при отправке по одной куке номер весь день один и тот же. По нему смотри статус.
Статус заявок и баланс
Возвращает заявки поставщика и его баланс. Требует X-Api-Key.
{
"ok": true, "tg_id": "123456789", "currency": "$",
"balance": 12.5, "wallet": "0x…",
"submissions": [
{ "id": 19, "day": "2026-09-20", "status": "pending",
"total": 240, "alive": 0, "dead": 0, "estimate": 0, "quote": null }
]
}
Статусы: pending (принята, ждёт проверки) → checked (проверена) → credited (зачислено на баланс) → paid (выплачено).
Экспорт по дате
Отдаёт auth_token принятых аккаунтов (статус checked/credited/paid) с фильтром по дате.
tg_id необязателен. Можно диапазон:
GET /api/export?from=2026-09-18&to=2026-09-20
{ "ok": true, "count": 2,
"submissions": [{ "id": 19, "day": "2026-09-20", "status": "paid", "count": 2 }],
"tokens": ["<40hex>", "<40hex>"] }
Даты в формате YYYY-MM-DD (UTC), диапазон включительно.
Коды ошибок
| Код | error | Причина |
|---|---|---|
| 400 | missing_tg_id | нет или некорректный tg_id |
| 400 | no_tokens | в запросе не найдено ни одного auth_token |
| 400 | bad_json | тело не разобралось как JSON |
| 401 | unauthorized | нет или неверный API-ключ |
| 413 | bad_length | тело больше 8 МБ |
Как это работает
- Один продавец — один
tg_id. Аккаунты засчитываются на баланс именно этого Telegram-ID. - Пачки склеиваются. Много запросов подряд по одному
tg_idобъединяются в одну заявку и проверяются разом — можно слать по одному аккаунту. - Антидубль. Ранее присланный
auth_tokenили тот же аккаунт по @handle повторно не оплачивается — дубли просто отсекаются. - 202 не значит «оплачено». Это «принято в проверку». Живость и подписчиков проверяем мы, цену выставляет админ. Итог продавец видит в боте.
auth_token — это 40 hex-символов.
Присылайте в любом виде: строкой куков, чистым токеном или списком — парсер найдёт сам.