Справочник

Ошибки

Все ошибки приходят в одном формате. Ветвитесь по code: он постоянный, а текст message может меняться.

{
  "error": {
    "type": "invalid_request_error",
    "code": "missing_input",
    "message": "person needs at least 1 file(s).",
    "param": "inputs.person",
    "request_id": "req_5tGh2KjL9QwZx3Vb7Nm0Pc1R"
  }
}

request_id есть и в заголовке X-Request-Id каждого ответа. По нему запрос находится в журнале, его же присылайте в поддержку.

Коды

HTTPcodeЧто случилосьЧто делать
400invalid_parameterНеверное значение поля, см. paramИсправить запрос
400invalid_jsonТело запроса — не JSONИсправить запрос
400prompt_or_templateНужно что-то одно: prompt или templateИсправить запрос
400missing_inputШаблону не хватает обязательного поляДобавить поле из inputs шаблона
400file_not_foundФайла нет или он другого режимаЗагрузить файл этим же ключом
401missing_api_keyНет заголовка AuthorizationДобавить ключ
401invalid_api_keyКлюч неверен или отозванПроверить ключ
402insufficient_balanceНе хватает токеновПополнить баланс
402monthly_limit_exceededДостигнут месячный лимитПоднять лимит или ждать нового месяца
403insufficient_scopeКлюч только для чтенияВзять ключ с полным доступом
403account_blockedАккаунт заблокированНаписать в поддержку
404not_foundНет такого объекта в этом режимеПроверить id и режим ключа
404template_not_foundНет такого шаблонаСвериться с GET /v1/templates
409video_finishedВидео уже завершилось, отменять нечегоНичего
409video_runningИдущее видео нельзя удалитьСначала отменить
413file_too_largeФайл больше лимитаУменьшить файл
415unsupported_file_typeФормат не поддерживаетсяВзять другой формат
429rate_limit_exceededМного запросов в минутуЖдать Retry-After
429concurrency_limitМного видео одновременноЖдать завершения
500server_errorОшибка на нашей сторонеПовторить с паузой

Ошибка самого видео

Если запрос принят, а рендер не удался, запрос вернёт 200, у видео будет status: failed, а причина — в error: render_failed или content_rejected. Токены возвращаются сами.