Skip to content

Versioning

The version is a path segment: /v1/orders. Versions coexist - v2 ships alongside v1, and v1 is retired only once no partner is still using it. Documentation is versioned with the API, so /docs/v1/ keeps working for as long as /v1/ does.

Additive changes ship inside a version. A new field on an existing response, a new optional query parameter, a new endpoint, or a new error code can all appear in v1 without notice. Your client must therefore ignore fields it does not recognize, and must not fail on an unfamiliar code - treat unknown codes as “unhandled error for this status”.

These changes ship as a new version, never in place:

  • Removing or renaming a published field.
  • Changing a field’s type, or its meaning.
  • Renaming or repurposing an error code.
  • Changing which rows are visible - for example, a change to which orders are considered live. No field changes, but rows appear or disappear, and that is just as breaking.

When a version is deprecated you are told directly and given a notice period. A version is never removed without one.