# Versioning and changes

## The REST API

Every operation lives under `/v1`. Inside `/v1`, changes are limited to:

- new operations
- new optional query parameters
- new fields in a response
- new error codes on a status an operation already documents

Ignore response fields you do not recognise.

## What counts as a breaking change

- removing or renaming an operation, a parameter or a response field
- changing a field's type, or what its value means
- making an optional parameter required, or accepting fewer values for one
- adding a value to an enum the API returns, such as a new `status`

A breaking change is announced in advance, as the
[terms of service](https://fentlig.se/villkor) state, and listed below.

## The MCP server

From October 2026, tool names and arguments are stable. They change by
addition only: new tools, and new optional arguments on existing tools.

Your MCP client negotiates the protocol version.

## Changes

### 2026-10

- MCP tool arguments are in snake_case, for example `deadline_after` and
  `document_search`, the same names the REST API uses.
- New MCP tools: `get_requirements`, `read_document`, `lookup_codes`,
  `list_watches` and `get_watch_matches`. See
  [MCP server](/utvecklare/mcp#tools).
- Every MCP tool is offered to every connection. A tool whose data the plan does
  not include answers that it is not included in the plan.
- The OpenAPI document is served at
  [https://api.fentlig.se/openapi.json](https://api.fentlig.se/openapi.json).
- Responses to an API key carry `X-RateLimit-Limit`, `X-RateLimit-Remaining`
  and `X-RateLimit-Reset`, and a 429 carries `Retry-After`. See
  [Rate limits](/utvecklare/rate-limits).
- Reading a single notice needs no key on any plan, and a key does not change
  the answer.
