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.
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
- Find affected traffic: filter Logs by the deprecated model, or run
POST /analytics/querygrouped bymodelfor the last 30 days. - 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.
- Watch parameter differences above;
provider.require_parameters: truemakes the gateway refuse rather than silently drop a parameter the successor lacks. - Set the successor as the primary model and keep the old id as a fallback until the retirement date — or switch to the
~latestalias. - Subscribe to
model_deprecationalerts (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}'