Skip to main content
Models are retired when a provider shuts them down or a newer model replaces them. Every retirement follows the same steps, so you can detect it in code and migrate before anything breaks.

Lifecycle

A model moves through three statuses. A deprecated model keeps working until its sunset date. You get at least 30 days between deprecation and retirement, unless the provider shuts the model down sooner. In that case you get as much notice as the provider gives us. A generation you submit before the sunset date finishes normally, including a video that is still pending at that moment.

How you are notified

  • Response headers. Every response for a deprecated model carries the headers below.
  • The models endpoints. status and deprecation show the current state and dates.
  • The dashboard. The Models page marks deprecated models and shows the sunset date.
  • This page. The tables below list current and past retirements.

Response headers

Responses from POST /v2/images/generations, POST /v2/videos/generations, and GET /v2/models/{model} carry these headers when the requested model is deprecated.
The headers are also sent on error responses for a deprecated model, so a failed request still tells you the model is going away. Log a warning when you see Deprecation. That gives you a signal in your own monitoring.

Model fields

GET /v2/models and GET /v2/models/{model} return status and deprecation on every model.
To check the models your integration uses, list them and filter on status.

After retirement

A generation with a retired model returns 400. The message names the retirement date and the replacement.
The model disappears from GET /v2/models. GET /v2/models/{model} still returns it with status: retired, so you can read deprecation.replacement_model. Media you already generated with the model is not affected. Download URLs keep working until their usual deletes_at time. See Media responses.

Migrate to the replacement

  1. Read the replacement with GET /v2/models/{model}.
  2. Check the parameters you send against its supported_aspect_ratios, supported_resolutions, supported_durations, supports_sound, and supported_references. A replacement can accept different values.
  3. Compare its pricing.rates with the old model’s.
  4. Switch the model value and test a generation before the sunset date.
Keep model IDs in configuration rather than in code. Then a migration is a config change.

Current deprecations

Retired models

No models have been retired yet.