# API changelog

> What changes in the SIGNL API, the response contracts that exist, and when a deprecated operation stops working.

Updated 28 October 2026.

## What this page is

Every change to the SIGNL API that a developer could notice is listed here, newest first, with the date it lands and, for a removal, the date it stops working.

## Response contracts

The API has two response contracts, `legacy` and `2026-10-26`. A credential is pinned to one of them, and a single request can try the other by sending the `SIGNL-Version` header. A value that is not one of the two is refused with the code `unknown_version`.

Every response carries `X-Request-Id`, `SIGNL-Version` and `Cache-Control: private, no-store`.

On `2026-10-26` an error is a typed body with a stable code, a status chosen from that code, a request id and a retry flag. A list that pages by cursor hands back a cursor that stops working after 24 hours.

## Deprecations

No operation is deprecated yet.

When one is, it keeps working until its sunset date. Each of its responses carries a `Deprecation` header, a `Sunset` header and a link to this page. After the sunset date it answers 410 with the code `operation_sunset`.

## Changes

### 28 Oct 2026

Added the `2026-10-26` response contract: typed errors, a request id on every response, and discovery fields on `GET /api/v1/tools`. No key is on it unless you send `SIGNL-Version: 2026-10-26`; every existing key stays on `legacy` and its responses do not change.
