Аутентификация
Каждый вызов API передаёт единый общий секрет — ваш API-ключ — в теле запроса. Ключ идентифицирует вызывающую учётную запись, применяет её тариф ограничения частоты запросов и ограничивает все действия данными только этой учётной записи.
Куда помещать ключ
Передавайте ключ в поле key в теле запроса с form-encoded кодировкой. Аутентификация через заголовки не поддерживается — спецификация v2 использует параметры тела для совместимости с существующими реселлерскими SDK.
Content-Type: application/x-www-form-urlencoded
key=YOUR_API_KEY&action=services
Создание и замена ключей
Ключи создаются и отзываются в /dashboard/api. Исходный ключ показывается ровно один раз. Сервер хранит односторонний верификатор и короткий несекретный идентификатор, поэтому исходное значение позднее восстановить нельзя.
- Максимум 5 активных ключей на учётную запись. Старые ключи можно отзывать по отдельности.
- Замена без простоя. Создайте новый ключ, обновите интеграцию, затем отзовите старый. Новые запросы с отозванным ключом отклоняются.
- Нужна активная сессия панели. Для создания требуется аутентифицированная сессия панели без режима имперсонации. Дополнительный код из письма или пароль не запрашивается.
Что может делать API-ключ
Ключ API v3 ограничен документированными действиями и не дает доступа к сеансу панели управления или данным других учетных записей.
- Выводить или переводить баланс.
- Изменять email, пароль или настройки 2FA учётной записи.
- Создавать или отзывать другие ключи API через API.
- Обращаться к административным или модераторским эндпоинтам.
Рекомендации по безопасности
- Только на стороне сервера. Никогда не встраивайте API-ключ в браузерный бандл, мобильное приложение или любой клиент, который другая сторона может декомпилировать.
- Используйте переменные окружения. Не коммитьте ключи в git. Файлы
.env должны быть в .gitignore. - Отзывайте при подозрении. Если ключ попал в журнал, снимок экрана или общий чат, создайте замену и отзовите раскрытый ключ.
- Используйте webhook, чтобы сократить опросы, когда это полезно. Доставка выполняется по возможности с повторными попытками; обработчики должны быть идемпотентными, а важное состояние следует сверять через
action=status.