v1 is the current and only version. Every documented endpoint lives under it.
The OpenAPI schema
The machine-readable schema is at:What can change without a version bump
Treat these as expected withinv1, and write clients that tolerate them:
- New endpoints
- New optional request parameters
- New fields in responses — the reason to ignore unknown fields rather than failing on them
- New error codes — handle unrecognized codes by falling back on the HTTP status
- Reworded error messages — branch on
error.code, never onmessage - New enum values — for example, a new job status or issue type
Writing a durable client
- Ignore unknown fields. Strict deserialization that rejects unexpected keys will break the first time a field is added.
- Branch on
error.code, notmessage. Codes are stable; wording isn’t. - Handle unknown enum values. A new
job_typeor issue category shouldn’t crash your handler. - Don’t depend on field order in responses or CSV exports.
- Check
successrather than inferring from the shape of the body. A successfulDELETEreturnsdata: null.