Skip to main content
This page describes the lifecycle of the Primer API: the named stages every version moves through, what Primer commits to at each stage, and the rules that govern transitions.

Lifecycle stages

Every supported version of the API is in one of six stages at any given time.

How versions move between stages

The lifecycle is time-driven, with explicit minimum notice periods at each transition. Notice periods are floors, not targets — Primer can stay in any stage for longer than the minimum, but cannot shorten it.
  • A version in RC reaches GA no sooner than 30 days after entering RC.
  • A version in GA is given at least 12 months of notice before being deprecated.
  • A version in Deprecated remains there for at least 12 months before reaching EOL.

Current status

This table is updated as versions transition between stages. For per-version changes, see the API changelog.

Machine-readable signals

Three HTTP signals communicate the lifecycle state of each request and response:
  • X-Api-Version request header. Pin every request to a specific API version. If the header is omitted, requests default to the earliest supported version — which means an unpinned client may silently start hitting an older version as new versions ship. Pinning is strongly recommended.
  • Deprecation response header. Emitted from Deprecated versions. Carries the date the version was deprecated. Standardised in RFC 9745.
  • Sunset response header. Companion to Deprecation. Carries the planned end-of-life date. Standardised in the same RFC. Standardised in RFC 8594
Example response from a deprecated version:
The Deprecation and Sunset headers are scheduled for rollout alongside this policy.

End of life behaviour

When a version reaches EOL, calls to that version return 410 Gone:
To avoid silent breakage, always pin requests to a specific version using the X-Api-Version header rather than relying on the default.

Vocabulary

Supported is a specific lifecycle stage on this page, not a general adjective. A version in GA is actively supported but is not in the Supported stage. When referring to a version’s state, prefer the badges — GA, Supported, Deprecated, EOL — over prose. Deprecated and EOL are distinct stages. A Deprecated version still serves traffic, with deprecation signals attached to every response. An EOL version no longer serves traffic and returns 410 Gone.