xcaDocs
Начало работы

Ошибки

Формат ошибок, коды статусов и когда стоит повторять запрос.

Ошибки используют обычные коды статусов HTTP и всегда возвращают одинаковую JSON-обёртку со стабильным машинным кодом.

Формат ошибки#

{
  "error": {
    "code": "rateLimited",
    "message": "Rate limit exceeded",
    "retryAfter": 12
  }
}

error.code стабилен, на него можно опираться в коде. error.message — подсказка для человека, она может меняться. Некоторые ошибки добавляют поля: retryAfter для лимитов, reason для квот и ограничений тарифа, issues для ошибок валидации.

Коды ошибок#

СтатусКодЗначениеПовторять?
400validationНекорректный параметр или тело запроса; смотри error.issues.Нет
401unauthorizedAPI-ключ отсутствует, некорректен или отозван.Нет
402planRequiredТариф не включает доступ к API или эту функцию.Нет
403forbiddenЗапрос запрещён.Нет
404notFoundТокен ещё не сканировали или кошелёк ещё не профилировали.Позже
409conflictЗапрос конфликтует с текущим состоянием.Нет
429rateLimitedСлишком много запросов в минуту или исчерпана месячная квота.Да
500genericСбой на нашей стороне.Да
503unavailableТехобслуживание или у поставщика данных закончилась мощность.Позже

Ошибки валидации#

Некорректные параметры возвращают 400 со списком issues, указывающих на проблемное поле.

400
{
  "error": {
    "code": "validation",
    "message": "Invalid input",
    "issues": [
      {
        "path": "pageSize",
        "message": "Invalid input"
      }
    ]
  }
}