Versioning
What counts as a breaking change, and how changes to /v1 are announced.
The API is versioned by its path. Everything documented here is /v1.
What we change without a new version
These are not breaking, and can ship to /v1 at any time:
- a new endpoint;
- a new optional request field;
- a new field in a response;
- a new value in an enum you read (write your client to tolerate unknown values);
- a new event type on webhooks.
Write your client to ignore fields it does not know.
What counts as breaking
A change is breaking when a request that worked before can fail after it — a removed or renamed field, a field that becomes required, a narrower accepted format. Every breaking change is listed in the changelog with its date and exactly what to change. A breaking change is announced, never discovered.
The OpenAPI document
/docs/openapi.json is generated from the same schemas the API validates requests and serializes responses with, so it cannot drift from what the API does. It is safe to generate a client from it.
