Перейти к содержимому

Ошибки

API использует стандартные HTTP-статусы. Тело ошибки — JSON одного из трёх видов.

Общая ошибка — статус и сообщение:

{
"statusCode": 404,
"message": "…",
"error": "Not Found"
}

Бизнес-ошибка с кодом — ветвитесь по code, а не по сообщению:

{ "code": "connection_missing", "platform": "instagram" }

Ошибка валидации — что не так с телом запроса:

{
"formErrors": [],
"fieldErrors": { "mediaId": ["media_required"] }
}

Сообщения рассчитаны на людей, могут быть локализованы и меняться. Ветвитесь по статусу и code — они стабильны.

Статус Когда
200, 201 Успех.
202 Принято в асинхронную обработку (публикации).
204 Успех без тела (удаления).
400 Неверные параметры или тело.
401 Нет токена или он недействителен.
403 Действие недоступно для этого токена.
404 Не найдено. Чужой ресурс тоже отвечает 404.
409 Конфликт с текущим состоянием: исчерпан лимит тарифа, соцсеть не подключена.
429 Превышен лимит частоты публикаций — повторите после паузы.
503 Внешняя зависимость (например, Meta) временно недоступна.
Код Статус Что значит
project_limit_reached 409 Исчерпан лимит проектов по тарифу.
connection_missing 409 Соцсеть не подключена к проекту.
connection_not_ready 409 Подключению нужна повторная авторизация.
media_not_found 400 Картинка по mediaId не найдена.
media_aspect_ratio 400 Картинка не подходит для ленты Instagram (от 4:5 до 1.91:1).
text_required, media_required, media_not_allowed 400 Тело публикации не соответствует её kind.
<platform>_<kind>_unsupported 400 Соцсеть не поддерживает этот тип, например instagram_text_unsupported.
<platform>_text_too_long 400 Текст длиннее лимита соцсети.
scheduled_at_past 400 scheduledAt уже в прошлом.
invalid_timezone 400 timezone — не известный IANA-пояс.
publication_dispatched 409 Публикация уже отправлена, её нельзя править.
meta_unavailable 503 Meta временно недоступна.

Ошибки каждого эндпоинта перечислены в справочнике API.