> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zespan.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Model lifecycle feed

> The curated, bundled catalogue of provider-announced model deprecation and retirement dates backing Model Lifecycle — its field reference, how it's maintained, and how to report a wrong or missing entry.

[Model Lifecycle](/dashboard/model-lifecycle) matches the models you call against a catalogue of provider-announced deprecation and retirement dates. This page documents that catalogue: where it comes from, what each entry contains, and how it behaves in an offline or self-hosted install.

## Curated and bundled, not scraped

The feed is a JSON file shipped with each Zespan release, hand-maintained and verified against each provider's own deprecation page — not scraped live at request time.

<Note>
  A runtime scrape of a provider's marketing page would break silently the moment that page's structure changed, putting Model Lifecycle's accuracy at the mercy of a page Zespan doesn't control. Bundling the feed also means a **self-hosted install with no outbound internet access evaluates lifecycle findings exactly the same as one with internet access** — there is no network call anywhere in the matching path.
</Note>

The bundled catalogue is synced into your organization's `ModelLifecycle` table on every detection scan (daily, 04:00 UTC), so a corrected date shipped in a new release takes effect on the next scan rather than requiring a restart.

## Field reference

Every entry in the feed has this shape:

| Field             | Type                                        | Description                                                                                                                                                                                                              |
| ----------------- | ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `provider`        | string                                      | The provider that publishes this model, e.g. `openai`, `anthropic`. Matched case-insensitively.                                                                                                                          |
| `model`           | string                                      | The exact model id as the provider names it, e.g. `gpt-4-32k`.                                                                                                                                                           |
| `deprecatedAt`    | string (`YYYY-MM-DD`) or `null`             | When the provider announced the model would be phased out. `null` when only a retirement date, not a deprecation announcement date, is known.                                                                            |
| `retiresAt`       | string (`YYYY-MM-DD`) or `null`             | When the model stops working (or already stopped). A finding is only produced for entries with a non-null `retiresAt`. A date in the past is a real, common state — it means the model is already retired, not an error. |
| `successorModel`  | string or `null`                            | The provider's own named replacement, when one was announced. `null` when the provider named none.                                                                                                                       |
| `lifecycleSource` | `"announced"` \| `"inferred"` \| `"manual"` | Provenance of the dates: a direct provider announcement, a date inferred from provider behavior, or a manually recorded fact.                                                                                            |
| `lifecycleNote`   | string or `null`                            | A short human-readable note, e.g. "Retired. Calls to this model id fail."                                                                                                                                                |
| `sourceUrl`       | string or `null`                            | The provider page this entry was verified against. Every shipped entry carries one — it's what lets a reviewer re-check any row.                                                                                         |

The feed as a whole also carries `feedVersion` (a release identifier) and `checkedAt` (when a human last verified the entries against their `sourceUrl`s) — both rendered on findings so a stale catalogue looks stale rather than looking authoritative.

## Reading the catalogue directly

`GET /v1/model-catalogue` returns the full bundled feed — every entry, not scoped to a project — for any project member. This is the same data the Lifecycle column and findings page are built from, useful for scripting a check against the raw catalogue without going through a specific project's findings. See the [API reference](/api-reference/introduction) for the full response shape.

## Reporting a missing or wrong entry

If a model you use is missing from the catalogue, or a date looks wrong, open an issue on [GitHub](https://github.com/zespan) or email [support@zespan.com](mailto:support@zespan.com), naming the model, provider, and the provider's own deprecation page. Feed corrections ship with the next release and take effect on the following daily scan.

## Next steps

* [Model Lifecycle](/dashboard/model-lifecycle) — how the catalogue turns into findings, and the re-raise ladder
* [Models](/dashboard/models#lifecycle-column) — the Lifecycle column driven by this catalogue
