Every write under /api/v1/ (POST/PATCH/PUT/DELETE) — a replay cache at the HTTP layer; POST /api/v1/tasks and POST /api/v1/tickets also store the key on the created record
Format
Any UUID, one per logical request
Window
24 hours: a retry with the same key returns the original response instead of creating a second object
Same key, different body
422 with code: "idempotency_conflict" and detail: "Idempotency-Key conflict: same key used with different request body" — the key is bound to the first body
What is replayed
2xx and 4xx answers; a 5xx is never cached, so a failed call can be retried with the same key. The replayed answer carries idempotent-replayed: true
In the contract
Declared as an optional header parameter on every write operation in openapi.json
Every tool declares idempotentHint and readOnlyHint (tools reference).
readOnlyHint: true tools can be repeated freely. A write tool with
idempotentHint: true may be repeated with the same arguments; one with
idempotentHint: false must not be repeated without reading the object first.
The hints are derived from the same code that runs the tools, so they cannot
be out of date relative to the server you are connected to.