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.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.
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:
The feed as a whole also carries
feedVersion (a release identifier) and checkedAt (when a human last verified the entries against their sourceUrls) — 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 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 or email 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 — how the catalogue turns into findings, and the re-raise ladder
- Models — the Lifecycle column driven by this catalogue

