API
Both endpoints take the internal key as either an x-api-key header or an Authorization bearer token. Streaming works across dialects — upstream events are re-emitted in the dialect you called, with one unfinished pair listed on the limitations page.
curl http://localhost:20130/v1/messages \ -H "x-api-key: sq-YOUR_KEY" \ -H "content-type: application/json" \ -d '{ "model": "claude/claude-sonnet-5", "max_tokens": 256, "messages": [{"role": "user", "content": "Hello"}] }'GET /v1/models lists every available model as provider/model identifiers in OpenAI list format.
sdk
import Anthropic from "@anthropic-ai/sdk"// One base URL, one key. Every provider sits behind it.const client = new Anthropic({ baseURL: "http://localhost:20130", apiKey: "sq-your-internal-key",})const reply = await client.messages.create({ model: "claude/claude-sonnet-5", max_tokens: 1024, messages: [{ role: "user", content: "Summarise this repo." }],})