Guides
Versioning and deprecation
How the partner API is versioned, what counts as a breaking change, and the six-month deprecation policy.
Applies to the partner API under /public/v1. The
machine-readable contract is openapi.json (OpenAPI 3.1),
also served live at GET /public/v1/openapi.json.
Versions
- The major version is in the URL:
/public/v1/.... There are no version headers or query parameters. - A major version is a stable contract. Within it we only make additive
changes:
- new operations, resources or optional query parameters;
- new optional request fields;
- new response fields (clients must ignore fields they don't know);
- new values in an enum that is documented as open (e.g.
source), new errorcodes, new webhook event types; - relaxing a validation rule.
- Breaking changes ship only in a new major version (
/public/v2). A breaking change is anything that can make a correct v1 client fail: removing or renaming an operation, field or parameter; making an optional input required; changing a field's type, format or meaning; tightening validation; changing an error status orcode; changing authentication or the scopes an operation needs. - When v2 ships, v1 keeps running unchanged for at least six months (see below) and both are documented side by side.
info.versionin the OpenAPI document is the semver of the v1 contract: minor for additive changes, patch for documentation fixes.
Deprecation
Deprecating an operation (or all of v1) gives at least six months' notice between the announcement and the sunset date. During that window the operation keeps working and every response carries:
| Header | Standard | Example |
|---|---|---|
Deprecation |
RFC 9745 | Deprecation: @1798761600 (when it was deprecated) |
Sunset |
RFC 8594 | Sunset: Thu, 01 Jul 2027 00:00:00 GMT (when it stops working) |
Link |
RFC 8288 | Link: <https://…/changelog#…>; rel="deprecation"; type="text/html" |
The OpenAPI document marks the operation deprecated: true and states the
sunset date. Partners are also told directly by the partnerships team when a
deprecation is announced. After the sunset date the operation answers
410 Gone with the error envelope (code: "GONE") and the same headers.