Model migrations

Vendors retire model generations on their own schedule. ElevenRouter announces every deprecation in advance, keeps a successor for each retired model and can forward traffic automatically, so an upgrade is a one-line change you make on your own timetable.

View as Markdown

How the lifecycle works

Every model carries deprecated_at, retired_at and successor in the catalog. While a model is deprecated it keeps serving; responses carry Deprecation, Sunset and Link: <…>; rel="successor-version" headers and a model.deprecated alert is sent to your organization. After retired_at, requests are forwarded to the successor (the route receipt records pipeline.forwarded_from) unless you turn forwarding off under Settings → Privacy & controls, in which case they fail with 404 model_retired.

Stay current with ~latest aliases

The least-effort migration is to not pin a version at all: ~vendor/family-latest always resolves to the newest active member of a family, and the catalog tells you which model it currently points to. Pin exact ids for reproducibility; use aliases for evaluation environments and internal tools.

Announced deprecations and retirements

The catalog could not be loaded (fetch failed).

Migration checklist

  1. Find affected traffic: filter Logs by the deprecated model, or run POST /analytics/query grouped by model for the last 30 days.
  2. Compare behaviour in staging with a preset: create a new version pointing at the successor, run your evaluation set, roll back with one click if needed.
  3. Watch parameter differences above; provider.require_parameters: true makes the gateway refuse rather than silently drop a parameter the successor lacks.
  4. Set the successor as the primary model and keep the old id as a fallback until the retirement date — or switch to the ~latest alias.
  5. Subscribe to model_deprecation alerts (Settings → Notifications) so the next announcement reaches the right channel.
# Which deprecated models did we call in the last 30 days?
curl -X POST https://elevenrouter.com/api/v1/analytics/query \
  -H "Authorization: Bearer $ELEVENROUTER_MANAGEMENT_KEY" -H "content-type: application/json" \
  -d '{ "range": { "from": "2026-08-15T00:00:00Z", "to": "2026-09-15T00:00:00Z" }, "metrics": ["requests", "cost"], "dimensions": ["model"] }'

# Lifecycle fields for one model
curl https://elevenrouter.com/api/v1/models/anthropic/claude-haiku-4.5 | jq '.data | {deprecated_at, retired_at, successor, latest_alias}'