Documentation
One API for many models
xKiro speaks both the OpenAI Chat Completions and Anthropic Messages formats. Point the SDK you already use at xKiro, change the model ID, and keep the code you have written.
Base URL
https://api.xkiro.com/v1
Auth header
Authorization / x-api-key
Formats
OpenAI · Anthropic
Modalities
Text · Speech · Image
Model ID
vendor/model
Streaming
Server-sent events
Your first request#
curl https://api.xkiro.com/v1/chat/completions \
-H "Authorization: Bearer $XKIRO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-5.6-sol",
"messages": [{ "role": "user", "content": "Hello" }]
}'Start here#
Quick start
Create a key and send your first request in under a minute.
Authentication
API keys, the two accepted headers, and what is public.
API reference
Every endpoint, parameter and response shape.
Capabilities#
Streaming
Server-sent events for both dialects, with cancellation that stops the bill.
Tool calling
Describe your functions and let the model decide when to call them.
Reasoning
Control how deeply a model thinks before it answers.
Vision
Send screenshots, charts and documents alongside your text.
Text to speech
Natural speech, streamed so playback starts early.
Image generation
Create and edit images through an asynchronous job API.
Two dialects, one gateway#
Every model is reachable through both formats. Pick whichever your SDK already speaks — the model does not change, only the shape of the request and response.
OpenAI Chat Completions
POST /v1/chat/completionsWorks with the official openai packages and everything built on them.
Anthropic Messages
POST /v1/messagesWorks with @anthropic-ai/sdk, anthropic for Python, and Claude Code.
How routing works#
A request names a model, not a provider. xKiro resolves it to a route and, if that route is unavailable, tries the next before returning an error. Two behaviours show up in your logs:
Failover reaches the same model a different way — you get exactly what you asked for. Degradation serves a comparable model when every route for yours is exhausted; you are billed at the price of the model you requested, and the response reports the model you requested. Degradation only ever moves to a model of equal or lower price that supports everything your request needs.
New here? Start with Quick start. Migrating? See Migrate to xKiro.
