Аутентификация
Ключи API: где взять, live- и test-ключи, лимиты ключа, список разрешённых IP и лимиты трат.
Все методы, кроме getQueueStats и getTaskTypes, принимают ключ API в поле clientKey JSON-тела. Никаких заголовков и обновляемых токенов.
{
"clientKey": "0123456789abcdef0123456789abcdef"
}Где взять ключ#
- Зарегистрируйтесь и подтвердите email — без этого live-ключ не создать.
- Откройте Кабинет → API-ключи и создайте ключ: режим (live или test), имя и при желании лимиты и список разрешённых IP.
- Сразу скопируйте ключ: целиком он показывается только при создании. Мы храним лишь его хеш; ключ можно в любой момент перевыпустить или отозвать.
Ключ — 32 шестнадцатеричных символа в нижнем регистре, как у Anti-Captcha и 2Captcha, поэтому SDK, проверяющие формат ключа, его принимают. На аккаунте может быть до 20 активных ключей.
Live- и test-ключи#
| live | test | |
|---|---|---|
| Кто решает | конвейер решения | тестовый воркер за 1–2 секунды |
| Токен | настоящий токен reCAPTCHA | фиктивный токен с префиксом TEST_; изредка (примерно 3 из 100) задача завершается ошибкой ERROR_CAPTCHA_UNSOLVABLE — чтобы проверить и обработку ошибок |
| Цена | по прайсу, только за решённые задачи | бесплатно, баланс не нужен |
| Лимиты, ошибки, вебхуки | как описано в документации | такие же, как у live-ключей |
| Статистика | getSpendingStats, getQueueStats | в getSpendingStats с нулевой суммой; в getQueueStats не учитываются |
Настройки ключа#
- Параллельные задачи — сколько задач ключа может быть в работе одновременно (по умолчанию 200). Сверх лимита
createTaskотвечаетERROR_NO_SLOT_AVAILABLE. - Лимиты трат — на сутки и на месяц, в долларах. Сверх них
createTaskотвечаетERROR_SPENDING_LIMIT. - Разрешённые IP — до 50 адресов IPv4/IPv6 или сетей CIDR. Запросы с других адресов получают
ERROR_IP_NOT_ALLOWED. - Изменения и отзыв ключа доходят до API примерно за 15 секунд.
Храните ключ в секрете#
- Обращайтесь к API со своего сервера. JSON API не отдаёт CORS-заголовков, поэтому чужие сайты не могут вызвать его из браузера, — а ключ во фронтенд-коде увидит любой.
- Держите ключи в переменных окружения или менеджере секретов, а не в репозитории.
- Заведите отдельный ключ на каждый проект или сервер: траты видны по отдельности, и один ключ можно отозвать, не трогая остальные.
- Если ключ утёк, перевыпустите его в кабинете: старый перестанет работать сразу.
| errorId | errorCode | Когда |
|---|---|---|
| 1 | ERROR_KEY_DOES_NOT_EXIST | ключа нет, он повреждён, отозван или неизвестен |
| 11 | ERROR_IP_NOT_ALLOWED | IP запроса не входит в список разрешённых для ключа |
| 55 | ERROR_ACCOUNT_SUSPENDED | аккаунт заблокирован |