API versioning
Every endpoint is served under /v1, and /v1 is a promise: a request that works today keeps working, and a change that would break one is announced before it happens.
What is stable#
- The paths.
/v1/chat/completions,/v1/messages,/v1/responses,/v1/embeddings,/v1/models,/v1/usage,/v1/tools/searchand/v1/tools/browsekeep their names and methods. - The wire shape. A field that exists today keeps its name and type. A new field may appear at any time; a client that ignores unknown fields keeps working, and the official SDKs do.
- The error envelope.
{"error": {"message", "type", "param", "code"}}, withtypefrom a fixed set. A client that switches ontypeandcodedoes not have to parse a sentence.
What counts as a breaking change#
- Removing or renaming a field, a path, a method or an error code.
- Changing a field's type, or making an optional parameter required.
- Changing a default in a way that alters the answer a client gets for the same request.
- Removing a model id that still appears in
GET /v1/models.
How a breaking change is announced#
By email to the account owner at least 30 days before it takes effect, and on this page. A model that is withdrawn is the one exception, because the withdrawal is not ours to schedule: it leaves GET /v1/models as soon as it can no longer be served, and the changelog below says when.
What this page does not cover#
- Model availability. A model may be withdrawn, and the list
GET /v1/modelsanswers is always the current one. - Speed. The terms state that the service carries no guaranteed level, and this page does not add one.
- The website's own API.
/api/*is what the dashboard calls. It changes with the dashboard, and nothing outside this site should depend on it.
Changelog#
Dated entries, newest first. This list names the changes a client could notice.
| Date | Release | Change |
|---|---|---|
| 2026-11-14 | v4.0 | Zero retention only, with no regions: one plain id per model, the :zdr and :eu suffixes and the X-Token-Route header removed, and a suffixed id refused with 404 not_found_model. Plans, subscriptions and the plan allowance removed: /v1/usage answers plan: null, the balance is the only thing a request draws on, and the plan headers and billing modes no longer appear. Traces are no longer collected. Prices are fixed per model and published in the catalog. |
| 2026-10-01 | v0.1 | The first release: /v1/chat/completions, /v1/messages, /v1/models, /v1/usage and the dashboard. |
An entry is added when a change lands, so this table is the place to look before upgrading a client.