The whole public API lives under the /public/v1 prefix, explicit in every route.
What we promise within /public/v1
Section titled “What we promise within /public/v1”For as long as an integration exists under /public/v1, we will never:
- remove a field from a response,
- change an existing field’s type,
- tighten a validation so that a previously valid body stops being valid.
Adding a new field to a response, a new endpoint, or a new optional filter parameter is compatible — your integration should ignore fields it doesn’t recognize, never fail because of them.
What happens on a breaking change
Section titled “What happens on a breaking change”A change that would break any of the above is born in a new router, /public/v2, never by modifying
/public/v1 in place. /public/v1 keeps working for a minimum of 6 months after /public/v2 is
published — during that window, every response from an endpoint marked for retirement carries the standard
headers (RFC 8594):
Deprecation: trueSunset: Wed, 01 Jul 2026 00:00:00 GMTNo endpoint is deprecated today — if one were, this page would list it explicitly, with its retirement date
and its replacement under /public/v2.
