Устаревшие модели
Провайдеры периодически снимают модели с обслуживания. У каждой такой модели есть дата снятия, после которой оригинальная модель больше не отвечает.
Чтобы это не ломало работающие интеграции, для части моделей мы заранее назначаем модель-аналог. После даты снятия запросы автоматически выполняются на ней — менять код не нужно.
Как узнать о снятии заранее
Все списки моделей — /v1/models для LLM, /v1/media/models и
/api/v2/media/models для медиа — отдают состояние
депрекации на каждой модели:
Поля депрекации
| Параметр | Тип | Описание |
|---|---|---|
deprecated | boolean | Дата снятия уже наступила — запросы выполняются на аналоге либо возвращают 410. Пока false, модель работает как обычно. |
deprecated_at | string | null | Дата и время снятия в формате ISO 8601. Может быть в будущем — это анонс, у вас есть время перейти на другую модель. null — модель не помечена как устаревшая. |
deprecation_redirect_to | string | null | id модели-аналога, на которой будут выполняться запросы после даты снятия. null — аналога нет, после даты запросы вернут 410. |
Пример модели с запланированным снятием:
{ "id": "claude-4.5-haiku", "object": "model", "title": "Claude Haiku-4.5", "deprecated": false, "deprecated_at": "2026-08-27T08:22:18.305Z", "deprecation_redirect_to": "claude-4.6-sonnet"}Что происходит после даты снятия
Если у модели назначен аналог, запрос выполняется на нём и возвращает
обычный 200. О подмене сообщают заголовки ответа:
Заголовки ответа
| Параметр | Тип | Описание |
|---|---|---|
Deprecation | string | Всегда true. Признак того, что запрошенная модель снята с обслуживания. |
Sunset | string | Дата снятия запрошенной модели в формате HTTP-date. |
Warning | string | Код 299 и текст с пояснением: какая модель была запрошена, какая выполнила запрос и по какой считаются деньги. |
x-model-requested | string | id модели, которую вы запросили. |
x-model-served | string | id модели, на которой запрос выполнен фактически. |
HTTP/1.1 200 OKDeprecation: trueSunset: Mon, 27 Jul 2026 08:04:44 GMTWarning: 299 - "Model 'claude-3.7-sonnet' was deprecated by the provider and the request was served by 'claude-3.5-haiku'. Billing follows the requested model 'claude-3.7-sonnet'. Update your integration to call 'claude-3.5-haiku' directly."x-model-requested: claude-3.7-sonnetx-model-served: claude-3.5-haikuПоле model в теле ответа содержит модель, которая фактически выполнила запрос
(x-model-served), — в том числе при потоковой передаче.
Если у модели аналога нет, запрос завершается статусом 410 Gone. Формат
ответа зависит от API.
Для /v1/chat/completions, /v1/embeddings и OpenAI-совместимого режима
транскрибации:
{ "error": { "message": "Model 'gpt-4' is deprecated. See compatible alternatives.", "type": "model_deprecated", "code": "model_deprecated", "param": "model" }}Для /v1/messages:
{ "type": "error", "error": { "type": "invalid_request_error", "message": "Model 'claude-3.7-sonnet' is deprecated. See compatible alternatives." }}Для /v1/media/create и асинхронного режима /v1/audio/transcriptions — код
15:
{ "code": 15, "message": "Model is deprecated by the provider and is no longer available.", "original_id": "flux-old"}Какую модель взять взамен, смотрите в списке моделей.
Когда переадресации не будет
Аналог назначается вручную и подходит не всегда. Запрос вернёт 410, даже если
поле deprecation_redirect_to заполнено, в двух случаях:
- аналог сам успели снять с обслуживания;
- аналог не поддерживается этим методом. Например, для снятой Claude-модели
назначен аналог из другого семейства: на
/v1/chat/completionsон отработает, а/v1/messagesвыполняет запросы только на Claude-моделях. В Creative Lab API v2 то же правило означает: аналог обязан быть в выдачеGET /api/v2/media/models— на модель, которой в каталоге нет, задача не уйдёт.
Где это работает
| Метод | Переадресация на аналог | Ошибка 410 без аналога |
|---|---|---|
POST /v1/chat/completions | да | да |
POST /v1/embeddings | да | да |
POST /v1/messages | да | да |
POST /v1/media/create | да | да |
POST /v1/audio/transcriptions | да | да |
POST /v1/media/generate | нет | нет |
POST /api/v2/media/tasks | да | да |
POST /api/v2/media/price | да | да |