Skip to content
Documentation
Esc
navigateopen⌘Jpreview
On this page

API versioning

The /v1/ convention — what the prefix means, what stability it promises, and how future versions will work.

The /v1/ convention

Every canonical path lives under /v1/:

/v1/sessions
/v1/sessions/{session_id}
/v1/sessions/{session_id}/end
/v1/sessions/{session_id}/client-token
/v1/api-keys
/v1/api-keys/{key_id}

The prefix is the stability promise: within v1, paths, request/response schemas, and error codes only change additively — new optional fields, new error codes, new endpoints. Breaking changes require a new version prefix, not a change to v1.

What stability means here

Change Within /v1/
New optional request field Allowed (additive)
New response field Allowed (additive)
New error code Allowed (additive)
Removing/renaming a field Not allowed — new version
Changing a path or method Not allowed — new version
Changing a field’s type/semantics Not allowed — new version

When a future version arrives

Future major versions will mount side by side (/v2/, …) rather than replacing /v1/:

  • /v1/ keeps working through a documented deprecation window.
  • Version-specific docs will live under explicit URL prefixes (/v1/, /v2/) with a version selector on this site.
  • The generated API reference is versioned with the spec — each version’s reference is generated from that version’s OpenAPI document.

Non-canonical legacy routes are not a version

Bridge/internal routes inherited from pre-V0 development (alternate start, status, token-refresh aliases) are not part of any version contract. They are transitional, marked as non-canonical where you may encounter them in these docs, and are scheduled for removal — never build against them.

Was this page helpful?