messages-apilisted
Install: claude install-skill air-gapped/skills
# Messages API Compatibility Reference
Sibling protocols in the `inference-apis` plugin: **`chat-completions-api`** is
the baseline surface every server implements and the target this one is most
often translated to or from; **`responses-api`** is the third, with the
thinnest backend coverage of the three.
The Anthropic Messages API (`POST /v1/messages`) is now the second open
compatibility surface after Chat Completions: **every major local inference
server serves it natively** (verified by source examination 2026-07-19 —
vLLM, SGLang, llama.cpp, Ollama, mistral.rs, Llama Stack/OGX, Lemonade), and
gateways (LiteLLM, Bifrost, Superagent Gateway) adapt it to everything else.
Claude Code is the driving client; Ollama, Lemonade, and Superagent all ship
Claude Code-specific affordances.
**Fleet property: stateless by protocol.** No `previous_response_id`
equivalent exists — full history is resent every turn, so load-balanced
same-model fleets cannot hit wrong-replica session errors (contrast the
Responses API's server-side state; see the responses-api skill).
**Last refreshed**: 2026-07-19 (source-examined at commits of 2026-07-16..18;
provenance in `references/sources.md`).
## Critical Gotchas
- **The thinking-signature seam**: third-party backends fabricate or omit
thinking-block signatures. Replaying such thinking to the REAL Anthropic
API fails signature validation — keep conversations on one side of the
boundary or strip thinking when crossing. Per-implementation