API приёма аккаунтов

Через этот API вы отправляете аккаунты — куки или auth_token — с привязкой к Telegram-ID продавца. Мы автоматически проверяем их и оформляем заявку, как при ручной загрузке боту.

Обзор

Один запрос — один или несколько аккаунтов одного продавца. Мы извлекаем auth_token из присланных данных, проверяем живость и подписчиков, отсекаем дубли и создаём заявку на указанный tg_id. Проверка идёт в фоне — запрос возвращается сразу.

Базовый адрес

https://twitswag.sbs

Авторизация

Каждый запрос должен содержать API-ключ в заголовке. Ключ выдаётся отдельно.

X-Api-Key: ВАШ_КЛЮЧ

Альтернатива: Authorization: Bearer ВАШ_КЛЮЧ или параметр ?key=ВАШ_КЛЮЧ в URL. Без ключа или с неверным — 401 unauthorized.

Проверка доступности

GET/api/health

Проверка, что сервис жив. Ключ не требуется.

# ответ
{ "ok": true, "service": "buyer-intake" }

Приём аккаунтов

POST/api/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, dataauth_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 }

accepted — сколько уникальных auth_token извлечено из запроса.

Коды ошибок

КодerrorПричина
400missing_tg_idнет или некорректный tg_id
400no_tokensв запросе не найдено ни одного auth_token
400bad_jsonтело не разобралось как JSON
401unauthorizedнет или неверный API-ключ
413bad_lengthтело больше 8 МБ

Как это работает

  • Один продавец — один tg_id. Аккаунты засчитываются на баланс именно этого Telegram-ID.
  • Пачки склеиваются. Много запросов подряд по одному tg_id объединяются в одну заявку и проверяются разом — можно слать по одному аккаунту.
  • Антидубль. Ранее присланный auth_token или тот же аккаунт по @handle повторно не оплачивается — дубли просто отсекаются.
  • 202 не значит «оплачено». Это «принято в проверку». Живость и подписчиков проверяем мы, цену выставляет админ. Итог продавец видит в боте.
Формат токена. auth_token — это 40 hex-символов. Присылайте в любом виде: строкой куков, чистым токеном или списком — парсер найдёт сам.