Аутентификация
Партнёрский API-ключ, заголовки, лимиты и безопасность.
Аутентификация
Один ключ на всё
Аутентификация — партнёрский API-ключ формата fl_live_<64 hex>. Один и тот же ключ работает на всех эндпоинтах: генерация, биллинг, управление ключами.
Передавайте ключ одним из двух способов:
# Заголовок X-API-Key (рекомендуется)
curl -H "X-API-Key: $FRANKLAB_KEY" https://apergrex.ru/franklab/api/v1/billing/balance
# Или Authorization: Bearer
curl -H "Authorization: Bearer $FRANKLAB_KEY" https://apergrex.ru/franklab/api/v1/billing/balance
Статусы ответов
| Код | Причина | Что делать |
|---|---|---|
| 401 | Ключ отсутствует, неизвестен или деактивирован | Проверьте ключ; выпустите новый в кабинете или через POST /v1/billing/api-keys |
| 403 | Передан legacy service-ключ | Нужен именно партнёрский fl_live_-ключ |
| 429 | Превышен лимит запросов | Повторите позже; по умолчанию 60 запросов/мин на партнёра |
Лимиты
Поверх лимита партнёра действует общий лимит шлюза (100 запросов/мин на IP). Ответ 429 безопасно повторять с задержкой.
Безопасность ключа
- Ключ хранится на сервере только как хэш — «показать снова» невозможно; потерянный ключ отзывают и выпускают новый.
- Передавайте ключ только по HTTPS, никогда — в URL, логах или клиентском коде.
- Ключ можно отозвать мгновенно:
DELETE /v1/billing/api-keys/{id}(работает и для ключа, которым выполняется сам запрос). - Заведите отдельный ключ на каждую интеграцию — метка помогает отличать их в списке.
Управление ключами по API
# создать
curl -X POST -H "X-API-Key: $FRANKLAB_KEY" -H "Content-Type: application/json" \
-d '{"label":"n8n automation"}' \
https://apergrex.ru/franklab/api/v1/billing/api-keys
# список (только префиксы, сырое значение не возвращается)
curl -H "X-API-Key: $FRANKLAB_KEY" https://apergrex.ru/franklab/api/v1/billing/api-keys
# отозвать
curl -X DELETE -H "X-API-Key: $FRANKLAB_KEY" \
https://apergrex.ru/franklab/api/v1/billing/api-keys/<id>
Для AI-агентов/docs/authentication.md