Get a change
One change by its ID, with every field of the change object.
GET /api/v1/changes/{id}
Parameters
idstringRequired / Path- The change ID,
chg_and 26 characters. includestringOptionalbodyaddsbody_md, the upstream text. The only accepted value.
The change object
The same object appears in the data of list changes.
idstring- Stable change ID:
chg_and 26 characters. kindstring- What the source published, such as
release,post,model.listingorincident. topicsstring[]- Topic labels. Includes
deprecationwhen the deprecation rule matches. labstring- The lab ID.
productstring or null- The catalog product ID.
surfacestring- Where the change applies, such as
api. sourcestring- The ID of the source that recorded it.
modelsstring[]- Model IDs the change names.
titlestring- The upstream title, verbatim.
source_urlstring- The official upstream link.
versionstring or null- The version the source gives, as published.
source_published_atstring or null- The upstream publication time, when the source gives one.
published_datestring or null- The upstream publication date,
YYYY-MM-DD. precisionstring- How precise the upstream date is:
instant,dayorunknown. observed_atstring- When ClaudeMon first stored the change.
revised_atstring- When the current revision was recorded.
revisioninteger- The current revision number. A change is revised in place when its source edits it.
statestringactive, orwithdrawnwhen the source no longer lists it.confidencestringobservedorcorroborated.storystring or null- The story that groups related changes, when there is one.
evidenceobject or null- The stored upstream snapshot behind the current revision:
snapshot,sha256andfetched_at. body_mdstring or null- Only with
include=body. Upstream text: untrusted, so show it as text. metaobject (optional)- Additive convenience projection for supported Meta updates only. Omitted for other labs and for monitoring or inventory kinds such as
componentandsource.repository. Existing change fields and IDs remain canonical. meta.timestampstring- UTC ISO 8601 instant. Uses
source_published_atonly whenprecision=instant; otherwise usesobserved_at. A date-only source never invents a publication time. meta.timestamp_basisstringpublishedfor an upstream publication instant, otherwiseobservedfor the first observation.meta.providerstring- Always
Meta. meta.productstring- The current catalog display name for
product, orMetawhen no catalog product matches. The canonical product ID remains unchanged. meta.update_titlestring- The same upstream title as
title. Treat it as untrusted text. meta.source_urlstring- The same source URL as
source_urlon the change. meta.update_typestringModel Listingformodel.listing,Incidentforincident, orChangelogforrelease,changelog,source.tagorsource.commit.
Headers
ETag- A strong validator. See caching.
Cache-Controlpublic, max-age=30, s-maxage=60, stale-while-revalidate=300. A change is revised in place, so it caches like a list.Cache-Tagchange:<id>,lab:<lab>.
Errors
not_found- No change has this ID.
invalid_parameter- An unknown parameter or
includeother thanbody.
Related
Example response
Example response
{
"id": "chg_01M5E4T4209BH52NZAN9GTQFJF",
"kind": "incident",
"topics": [],
"lab": "openai",
"product": "openai.status",
"surface": "api",
"source": "openai-status-rss-atom",
"models": [],
"title": "Degraded performance in ChatGPT, Codex, and APIs",
"source_url": "https://status.openai.com/incidents/01M5E4G39TD1BW1QWHZG6RFA5H",
"version": null,
"source_published_at": "2026-10-21T03:28:00.000Z",
"published_date": "2026-10-21",
"precision": "instant",
"observed_at": "2026-10-21T02:31:56.736Z",
"revised_at": "2026-10-21T03:30:55.976Z",
"revision": 3,
"state": "active",
"confidence": "observed",
"story": null,
"evidence": {
"snapshot": "snapshots/openai-status-rss-atom/5e62be1c3baab551666f05f0a52a4f143db0674c9648b28b67a7145bd04dbe81",
"sha256": "5e62be1c3baab551666f05f0a52a4f143db0674c9648b28b67a7145bd04dbe81",
"fetched_at": "2026-10-21T03:30:55.976Z"
}
}