Visnea API
Ошибки
Все ошибки приходят единым JSON-конвертом: человекочитаемый error и машинный code. Отдельные коды несут дополнительные поля — они описаны ниже.
Конверт ошибки
{ "error": string, "code": string }
{ "error": "not enough cherries", "code": "insufficient"}Основные коды
| Код | HTTP | Когда возникает | Что делать |
|---|---|---|---|
unauthorized | 401 | Нет заголовка Authorization, ключ неверен или отозван. | Проверьте ключ; создайте новый в кабинете при необходимости. |
insufficient | 402 | На балансе не хватает вишенок на операцию. | Пополните баланс в кабинете и повторите запрос. |
param_unsupported | 400 | Значение параметра не поддерживается этой моделью (например, чужой aspect_ratio). Ничего не списывается. | Возьмите допустимые значения из allowed в ответе или из form модели в /v1/models. |
prompt_too_long | 400 | Промпт длиннее лимита модели (max_prompt_chars). Ничего не списывается. | Сократите промпт до limit символов; лимит приходит в ответе. |
content_blocked | 422 | Промпт или сообщение нарушает контент-политику. | Переформулируйте запрос; ничего не списано. |
unavailable | 503 | Модель или подсистема временно недоступна. | Повторите позже; для другой модели запрос может пройти сразу. |
Оплаченные, но не выполненные генерации возвращаются автоматически: статус failed означает, что вишенки уже вернулись на баланс.
Дополнительные поля
param_unsupported добавляет field и allowed, prompt_too_long — length и limit:
{ "error": "…", "code": "param_unsupported", "field": "aspect_ratio", "allowed": ["16:9", "9:16", "1:1"]}{ "error": "…", "code": "prompt_too_long", "length": 2450, "limit": 2000}Прочие коды
| Код | HTTP | Когда возникает | Что делать |
|---|---|---|---|
bad_request | 400 | Невалидный JSON или тело запроса. | Проверьте синтаксис и Content-Type: application/json. |
no_prompt | 400 | Промпт пуст, а модель его требует. | Передайте prompt. |
no_model | 404 | model_id не найден. | Возьмите актуальный id из /v1/models. |
model_disabled | 400 | Модель выключена в каталоге. | Выберите другую модель из /v1/models. |
not_found | 404 | Генерация с таким id не найдена (или принадлежит другому аккаунту). | Проверьте id из ответа /v1/generate. |
insufficient_balance | 402 | Вариант insufficient в чат-эндпоинтах. | Пополните баланс и повторите. |
internal | 500 | Внутренняя ошибка сервиса. | Повторите запрос; если повторяется — напишите в поддержку. |