Versioning
Version is in the URL: /v1/…. We introduce /v2/ rather than break v1.
What's compatible (we may do without notice)
- Add a new endpoint.
- Add a new optional field to a request body.
- Add a new field to a response body.
- Add a new event type or new field inside
dataon an existing event. - Add a new error code (existing codes don't change meaning).
- Tighten validation around values already documented as invalid.
What's incompatible (next major only)
- Remove or rename a field.
- Change a field's type.
- Change response shape from object to array or vice versa.
- Change the meaning of an existing error code.
- Remove an event type.
Deprecation
- Annotated in OpenAPI.
- Responses carry a
Deprecationheader (RFC 9745) with a sunset date. - Minimum 6 months between announcement and removal.
Build with the contract. Treat unknown JSON fields as forward-compatible (ignore them) so we can grow responses without your redeploys.