Versioning & Deprecation
How the API is versioned under /v1, how new functionality is added, and how breaking changes are announced and retired.
The public API ships under /v1/*. v1 is the only contract currently published. New functionality is added additively; breaking changes will only ever appear in a future major version such as /v2/*.
Additive vs breaking
Treat your client as tolerant of additions. The following are not breaking and can ship at any time on v1:
- A new optional request parameter.
- A new field in a response body.
- A new enum case in an existing enum (a project status, a webhook event, an alert class).
- A new endpoint.
- A new error code (
error.code). - A reworded
error.message. The stable contract iserror.code, not the free-form message.
The following are breaking and will not happen on v1:
- Removing a field from a response.
- Renaming a field.
- Changing a field's type.
- Adding a new required request parameter.
- Changing the semantics of an existing parameter or enum case.
- Renaming an endpoint path.
- Changing an HTTP status code for an existing scenario.
Webhook payload versioning
Outbound webhook envelopes carry an api_version field. Consumers that care about payload stability should read it and branch on value changes; additive changes leave the version stamp unchanged.
{
"id": "evt_01J...",
"type": "project.created",
"api_version": "2026-10-26",
"created_at": "2026-10-26T10:05:00Z",
"project_id": "7d1f...",
"data": {}
}Subscribing to a new event type is never breaking; the envelope shape does not change, only the type value.
When a breaking change is eventually needed
If Zuse Bifrost ever needs to break a contract on the REST API, the process will be:
- A new major version (
/v2/*) is published alongside/v1/*. v1continues to operate for a long transition window so existing integrations do not break.- Affected responses carry
SunsetandDeprecationheaders per RFC 8594 as the window narrows. - After the window closes,
v1is removed and callers receive410 Gone.
This page will be updated when a v2 contract ships. Today, v1 is the only version.
Related
- Error envelope: stable
error.codestrings.
How is this guide?
Last updated on