Аутентификация¶
Каждый запрос несёт ключ в заголовке X-API-Key:
Единственное исключение — /health, он отвечает без ключа.
Что бывает не так¶
| статус | код | когда |
|---|---|---|
401 |
unauthorized |
заголовка нет, ключ неизвестен или отозван |
429 |
rate_limited |
превышен предел в секунду или дневная квота |
Пределы ключа¶
У ключа два независимых предела: в секунду и в сутки. Ноль на любой оси означает «без предела».
| тариф | запросов в секунду | запросов в сутки |
|---|---|---|
free |
60 | 10 000 |
pro |
600 | 1 000 000 |
unlimited |
без предела | без предела |
Свои значения смотрите в заголовках ответа. Они приходят, когда у ключа задан предел в секунду; у ключа без пределов заголовков нет — считать нечего:
| заголовок | значение |
|---|---|
X-RateLimit-Limit |
предел на текущем окне |
X-RateLimit-Remaining |
сколько осталось |
X-RateLimit-Reset |
Unix-время сброса окна |
Retry-After |
секунд до следующей попытки; приходит только при 429 |
Сообщение при 429 говорит, какой именно предел сработал:
rate limit exceeded — предел в секунду, quota limit exceeded — дневная квота.
Служебные заголовки¶
С каждым ответом приходят два заголовка, полезных при разборе проблем:
| заголовок | значение |
|---|---|
X-Api-Version |
версия, ответившая на запрос |
X-Request-Id |
идентификатор запроса — его стоит приложить к обращению |
Хранение ключа¶
Ключ даёт доступ к данным целиком. Держите его на сервере, не в клиентском коде и не в репозитории: в браузере он виден каждому, кто откроет инструменты разработчика.