Base URL + Bearer authentication
Все эндпоинты принимают JSON и требуют API-ключ в заголовке Authorization. Создайте ключ на странице API ключи.
Base URL: https://<your-host>/api
Format: JSON request / JSON response
Auth: Authorization: Bearer ck_xxxxxxxxxxxx
Authentication
Пользовательский API-ключ выдаётся на /api-keys.html. Ключ показывается один раз при создании — сохраните его. Скомпрометированный ключ отзовите на той же странице и создайте новый.
# bash curl -H "Authorization: Bearer ck_abc123..." \ https://your-host/api/lists
Rate limits
Глобально 300 запросов в минуту на IP. Отдельные эндпоинты имеют per-user лимиты (указаны ниже).
В ответ на каждый запрос сервер возвращает заголовки:
X-RateLimit-Limit— потолок для этого окнаX-RateLimit-Remaining— сколько осталосьX-RateLimit-Reset— UNIX-время сброса счётчика
При превышении — 429 Too Many Requests.
Error format
Ошибки возвращают не-2xx статус и JSON-тело { "error": "message" }. 402 может содержать { "buy_tokens": true } — клиенту следует перенаправить на биллинг.
{
"error": "Insufficient tokens",
"buy_tokens": true
}
400— невалидный запрос (обязательные поля, формат)401— нет или истёк токен/ключ402— недостаточно токенов на балансе404— ресурс не найден или не принадлежит вам429— rate limit5xx— серверная ошибка
Lists
Управление email-базами. Всё ограничено вашим аккаунтом — чужие списки возвращают 404.
GET /api/lists
curl -H "Authorization: Bearer $CK" https://your-host/api/lists
GET /api/lists/:id
POST /api/lists/upload
- Content-Type
- multipart/form-data
- Поля
file(файл),name(опционально — имя базы)- Лимит
- 20 загрузок в час на пользователя, до 50 МБ
curl -X POST \ -H "Authorization: Bearer $CK" \ -F "[email protected]" \ -F "name=Campaign Q2" \ https://your-host/api/lists/upload
GET /api/lists/:id/contacts
- Query
page,limit(до 200),status(valid/risky/invalid/pending),search
GET /api/lists/:id/export
- Query
status(фильтр, по умолчанию all),columns(csv-список полей)- Лимит
- 10 экспортов в минуту
DELETE /api/lists/:id
POST /api/lists/validate-single
curl -X POST \ -H "Authorization: Bearer $CK" \ -H "Content-Type: application/json" \ -d '{"email":"[email protected]"}' \ https://your-host/api/lists/validate-single
Parser / Collect
Асинхронный сбор баз по дорк-запросам / ключевым словам. Результат оседает как обычная база (source = 'dork' | 'collect').
POST /api/parser
- Body
query,source,limit,name- Лимит
- 5 задач в час на пользователя
GET /api/parser
pending / running / done / error).GET /api/parser/:id
Suppress list
Глобальное исключение: email в suppress-листе автоматически помечается как invalid при любой валидации и пропускается при сборе и парсинге. Идеально для отписавшихся, жалоб на спам и известных bounces.
GET /api/suppress/list
- Query
page(default 1)- Response
{ total, page, limit, emails: [{ email, added_at }] }
POST /api/suppress/add
- Body
{ "emails": ["[email protected]", "[email protected]"] }, до 10 000 за вызов- Response
{ added, total_sent }- Лимит
- 30 операций в час на пользователя
curl -X POST \ -H "Authorization: Bearer $CK" \ -H "Content-Type: application/json" \ -d '{"emails":["[email protected]","[email protected]"]}' \ https://your-host/api/suppress/add
DELETE /api/suppress/remove
- Body
{ "email": "[email protected]" }
DELETE /api/suppress/clear
- Response
{ deleted: N }