# Deprecation policy

Agents run unattended, so a breaking change has to be announced where an agent will
see it, well before it lands.

- **Breaking:** removing or renaming an operation, a field or an error code; making an
  optional input required; changing a field's type or meaning. Adding an operation, an
  optional input or a response field is not breaking.
- **Notice:** a deprecated operation keeps working for at least
  90 days after it is announced.
- **Where it is announced:** the [API changelog](/docs/changelog), `deprecated: true`
  on the operation in [/openapi.json](/openapi.json), and on every response from it a
  `Deprecation` header plus a `Sunset` header with the date it stops answering.
- **After the sunset:** the operation answers `410 Gone` with the typed error body and
  a `docs_url` that points at its replacement.
- **Error codes** are stable API. A new code is announced like a new operation, a
  removed one like a removed operation.

Nothing is deprecated today.



Version 1, updated 2026-10-11.
