# Check a hosted model ID before you ship calls to it

Published by KarmaDue (karmadue.expo.app) on 12 Nov 2026. Lifecycle status comes only from each provider's official deprecation or model-versions page. It is not a safety or quality assessment.

## The call

    curl -s -X POST https://ogogoizwsfaduzehkshb.supabase.co/functions/v1/mcp/safety \
      -H 'content-type: application/json' -H 'accept: application/json, text/event-stream' \
      -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"check","arguments":{"target":"model:openai/gpt-4-0613","action":"call"}}}'

`check_install` takes `{"target":"anthropic/claude-3-sonnet-20240229","ecosystem":"model"}`. The REST preflight takes `{"target":"model:openai/gpt-4-0613","action":"call"}`. The provider part is optional (`model:gpt-4o` searches every page).

## Sources (official pages only)

| Provider | Page |
|---|---|
| Anthropic | https://platform.claude.com/docs/en/about-claude/model-deprecations.md |
| OpenAI | https://developers.openai.com/api/docs/deprecations.md |
| Google (Gemini API) | https://ai.google.dev/gemini-api/docs/deprecations.md.txt |
| Google Cloud (Vertex AI) | https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/model-versions |
| Mistral | https://docs.mistral.ai/models.md |

A daily refresh reads each page and parses its tables. Nothing is inferred: a model that is not on a page is not stored. If a page parses to fewer than half the rows held, the held rows are kept and the error is recorded. `data.model.fetched_at` and `data.data_freshness.model_lifecycle` say when the page was read; data older than 7 days is named in `gaps`.

## Reading the answer

`data.model`: `status`, `provider_status` (the provider's own word), `deprecated_on`, `shutdown_on`, `shutdown_date_as_written`, `shutdown_date_kind`, `replacement`, `source_url`, `fetched_at`.

| status | Meaning | Effect |
|---|---|---|
| shut_down | Retired or shut down, or an exact shutdown date has passed | raised to `warn`; `do_not` set |
| retirement_date_passed | Marked deprecated and its retirement date has passed | raised to `warn`; `do_not` set |
| shutdown_due | Google's earliest shutdown date has passed | raised to `warn`; `do_not` set |
| deprecated | Deprecated, or a shutdown date is on the page | raised to `warn` |
| legacy, preview, active | The provider's word | unchanged |
| listed_no_status, listed_no_shutdown_announced | Listed without a status word | unchanged |
| unknown | Not on any page KarmaDue reads | unchanged; close IDs are listed as `candidates` |

`shutdown_date_kind` says how firm the date is: `exact`, `announced_earliest` (Google's earliest possible date), `not_before`, `multiple_dates` (several dates written, none asserted), `tba`, `none_announced`. A model is never called active because it is missing from a page. A provider's recommended replacement appears in `alternatives` as `declared_successor`.

## Live examples

Captured live on 12 Nov 2026 (about 5:27 AM ET), with the header `x-kd-via: kd-founder-test`.

### `model:openai/gpt-4-0613`

- `warn` / `proceed_with_care`: Caution before you use openai/gpt-4-0613: OpenAI's retirement date for gpt-4-0613 (October 23, 2026) has passed; expect requests to fail. Replacement: gpt-5.6-sol. Go ahead with normal care; nothing here is a safety guarantee.
- status `retirement_date_passed`, shutdown 2026-10-23, replacement `gpt-5.6-sol`, source https://developers.openai.com/api/docs/deprecations.md

### `model:anthropic/claude-3-sonnet-20240229`

- `warn` / `proceed_with_care`: Caution before you use anthropic/claude-3-sonnet-20240229: Anthropic's retirement date for claude-3-sonnet-20240229 (July 21, 2025) has passed; expect requests to fail. Replacement: claude-sonnet-5-5. Go ahead with normal care; nothing here is a safety guarantee.
- status `retirement_date_passed`, shutdown 2025-07-21, replacement `claude-sonnet-5-5`, source https://platform.claude.com/docs/en/about-claude/model-deprecations.md

### `model:gpt-4o`

- `unknown` / `proceed_with_care`: gpt-4o is not on the official model lifecycle pages KarmaDue reads; listed IDs that look close: gpt-4, gpt-4o-2024-05-13, gpt-4o-2024-08-06. Go ahead with normal care; nothing here is a safety guarantee.
- status `unknown`

Related: [Check a remote MCP server by URL](https://karmadue.expo.app/docs/check-remote-mcp.md), [Forum](https://karmadue.expo.app/forum), [Trees](https://karmadue.expo.app/trees).
