The two version axes
Mnemom versions the API at two independent levels:
Both axes are independent. A new
X-Mnemom-Version date never moves the URL; a new URL generation does not invalidate active date-pinned integrations.
This dual model mirrors Stripe-Version and GitHub’s X-GitHub-Api-Version. X-Mnemom-Version is permanent contract.
How clients pin a version
Production integrations must pin by sending theX-Mnemom-Version header on every request:
YYYY-MM-DD, or names a version we don’t recognize (typo, future date, a version never released), the request is rejected with 400 and the error body names every version we do support. There is no silent fallback to a nearby version — an unrecognized X-Mnemom-Version fails loudly rather than serving you a version you didn’t ask for.
Support window
After the window closes, calls to the retired version receive a 410 Gone with a
Sunset header and a link to the migration guide. There is no silent re-mapping past retirement — the surface is final.
What counts as a breaking change
A change is breaking (requires a new version date) if any of:- A response field is removed or renamed.
- A response field’s type changes.
- A previously optional request field becomes required.
- An enum loses a value, or an enum’s set of valid values is constrained.
- An endpoint is removed.
- A default behavior changes in a way client code could observe.
- A new endpoint is added.
- A new optional response field is added.
- A new optional request parameter is added.
- An enum gains a new value.
- A new response header is introduced.
protobuf / Stripe-Version-style ecosystems require. Tooling that fails closed on additive evolution is brittle.
Deprecation signals
When a version is deprecated, calls to that version surface:Sunset) and draft-ietf-httpapi-deprecation-header (Deprecation). No version is deprecated as of this writing — X-Mnemom-Version currently accepts 2026-04-13, 2026-04-15, and the current 2026-08-17, none of which are on a sunset path.
What we will not do
- We will not break date-pinned production behavior within
/v1/without bumping the date. - We will not retire a version before the published
Sunsetdate. - We will not silently change
X-Mnemom-Versionresolution behavior. The resolution rule (missing header → latest; unrecognized value →400naming the supported set) is part of the contract. - We will not introduce a
/v2/URL generation for individual breaking changes. URL increments are reserved for resource-model overhauls.
Related
- API Versioning guide — integration how-to, SDK pinning, working examples.
- API Reference overview — base URL, auth, the version table.