Base URL
https://orbisignal.pw/api/v1Используйте HTTPS в production. Версия входит в путь.
Практическая документация к API, которое фактически работает на этом сервисе. Интерактивные схемы и точные модели доступны в Swagger UI.
https://orbisignal.pw/api/v1Используйте HTTPS в production. Версия входит в путь.
Authorization: Bearer orb_…Все v1 endpoints, кроме управления ключами, принимают Bearer API-ключ.
curl -sS 'https://orbisignal.pw/api/v1/me' \
-H 'Authorization: Bearer YOUR_ORB_TOKEN'Создание поиска ничего не списывает и возвращает одноразовый confirm_token. Подтверждение списывает текущую цену поиска и запускает провайдера. Проверяйте актуальные цену и баланс через /tariffs и /balance; значение настройки сейчас: $0.30.
# 1. Create
curl -sS -X POST 'https://orbisignal.pw/api/v1/searches' \
-H 'Authorization: Bearer YOUR_ORB_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"type":"email","query":"ada@example.com"}'
# 2. Confirm: подставьте id и confirm_token из create
curl -sS -X POST 'https://orbisignal.pw/api/v1/searches/SEARCH_ID/confirm' \
-H 'Authorization: Bearer YOUR_ORB_TOKEN' \
-H 'Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000' \
-H 'Content-Type: application/json' \
-d '{"confirm_token":"CONFIRM_TOKEN"}'
# 3. Получите report_id из confirm или GET поиска
curl -sS 'https://orbisignal.pw/api/v1/reports/REPORT_ID' \
-H 'Authorization: Bearer YOUR_ORB_TOKEN'
Idempotency-Key: обязателен для confirm, 1–120 символов. Генерируйте новый уникальный ключ для логической операции и повторяйте тот же ключ при сетевом retry. Он уникален в пределах пользователя; повтор возвращает текущее состояние исходного поиска без второго списания.
import uuid
import httpx
base = "https://orbisignal.pw/api/v1"
headers = {"Authorization": "Bearer YOUR_ORB_TOKEN"}
with httpx.Client(base_url=base, headers=headers, timeout=30) as client:
created = client.post("/searches", json={"type": "email", "query": "ada@example.com"})
created.raise_for_status()
search = created.json()
confirmed = client.post(
f"/searches/{search['id']}/confirm",
headers={"Idempotency-Key": str(uuid.uuid4())},
json={"confirm_token": search["confirm_token"]},
)
confirmed.raise_for_status()
report = client.get(f"/reports/{confirmed.json()['report_id']}")
report.raise_for_status()Все пользовательские ресурсы изолированы владельцем. Чужой или отсутствующий ID возвращает 404.
/meID, email, locale и баланс./balanceБаланс в USD./tariffsАктивные тарифы и цена поиска./searchesТипы: name, phone, email, id, full. Возвращает confirm_token./searches?limit=20&offset=0Список поисков./searches/{search_id}Статус и report_id после завершения./searches/{search_id}/confirmПодтверждение и выполнение; нужен Idempotency-Key./reports?limit=20&offset=0Неистёкшие отчёты./reports/{report_id}Данные отчёта./reports/{report_id}Удаляет отчёт, ответ 204.limit: 1–100, по умолчанию 20. offset: 0–100000. Ответ содержит items, limit, offset и next_offset; null означает конец списка.
Cookie-authenticated endpoints GET/POST /api/v1/tokens и DELETE /api/v1/tokens/{id} предназначены для кабинета и требуют session cookie плюс CSRF header для изменений. Для внешних интеграций используйте выданный Bearer-ключ, а ключами управляйте в профиле.
Ошибки FastAPI возвращаются как {"detail":"…"}; validation detail для 422 может быть структурированным списком.
401Bearer отсутствует, неверен, отозван, истёк или email не подтверждён.402Недостаточный баланс при confirm.403Неверный CSRF для cookie-auth операций. Bearer v1 не использует CSRF.404Ресурс не найден, не принадлежит пользователю или отчёт истёк.409Конфликт операции; зарезервирован в контракте confirm/OpenAPI.422Ошибка JSON, параметров, заголовков или поискового запроса.429Превышен per-user лимит; заголовок Retry-After указывает секунды до повтора.502Сбой поискового провайдера; списание возвращается.Register, verify your email, sign in, and create an API key in Profile → API keys. The plaintext token is shown once. Authenticate with Authorization: Bearer …. Create a search, confirm it with a unique Idempotency-Key, then fetch the returned report. Reports are retained for 168 hours. See Swagger UI for request and response schemas.