REST API V1 · HTTPS

API без тёмных углов.

Здесь собраны авторизация, scopes, лимиты, endpoint'ы, модели ответов, ошибки, безопасность и примеры для curl, Python и Node.js.

1 · QUICKSTART

Первый запрос

API работает через https://UserBot.SpectreBot.top/api/v1. Для защищённых endpoint'ов нужен API-ключ.

Authorization: Bearer sk_spectre_live_…
curl https://UserBot.SpectreBot.top/api/v1/me \ -H 'Authorization: Bearer sk_spectre_live_…'

Альтернатива: X-API-Key: sk_spectre_live_….

2 · ENDPOINTS

Методы

Каждый ответ содержит request_id, когда запрос проходит API-слой.

GET /api/v1/health

Проверка доступности API. Аутентификация не требуется.

GET /api/v1/me

Профиль пользователя, состояние текущего ключа и квота.

GET /api/v1/balance

Баланс Spectre и текущая квота.

GET /api/v1/usage

Использование API за день или диапазон дней.

GET /api/v1/history

История API-запросов с limit/offset.

GET /api/v1/search/{request_id}

Повторное чтение сохранённого результата по request ID.

POST /api/v1/search

Основной поиск. Body: query, type, report.

GET /api/v1/keys

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

POST /api/v1/keys

Создание дополнительного ключа с name, expires_days и scopes.

POST /api/v1/keys/{key_id}/rotate

Выпускает новый секрет и отзывает старый ключ.

DELETE /api/v1/keys/{key_id}

Немедленный отзыв своего ключа.

GET /api/v1/limits

Показывает эффективные лимиты API.

4 · CODE

Python

import requests r = requests.post( "https://UserBot.SpectreBot.top/api/v1/search", headers={"Authorization": "Bearer sk_spectre_live_…"}, json={"query": "example.com", "type": "domain"}, timeout=30, ) r.raise_for_status() data = r.json()

Node.js

const r = await fetch("https://UserBot.SpectreBot.top/api/v1/search", { method: "POST", headers: { "Authorization": "Bearer sk_spectre_live_…", "Content-Type": "application/json" }, body: JSON.stringify({query:"example.com", type:"domain"}) }); const data = await r.json();
5 · SECURITY

Ключи, scopes и лимиты

Секрет ключа выдаётся только при создании/ротации. Используйте HTTPS и серверное хранилище секретов. Не помещайте ключи в браузерный код, git или логи.

Для обычных пользователей действует ограничение до 1 API-запроса в секунду и до 100 API-запросов в сутки; итоговый лимит также учитывается на уровне конкретного ключа. Администраторы не ограничиваются этими значениями.

Scope по умолчанию: search, me, balance, history. Для запроса с недоступным scope возвращается HTTP 403.

6 · ERRORS

Стабильный формат

{ "ok": false, "request_id": "req_…", "error": {"code": "rate_limited", "message": "…", "retry_after": 1} }

Типичные коды: unauthorized, forbidden, key_expired, rate_limited, daily_limit, invalid_json, invalid_query, search_failed, not_found.