Understand wire types first
Internally Kition normalizes APIs into two wires: `anthropic_messages` (Claude) and `responses` (OpenAI, AiApiy, most OpenAI-compatible endpoints). Picking the right wire is the key config step.
OpenAI setup
- Name: `openai`
- Base URL: defaults to `https://api.openai.com`
- API Key: sk-...
- Wire: `responses`
- Default model: gpt-5 / gpt-5.1 by availability
Anthropic setup
- Name: `anthropic`
- Base URL: `https://api.anthropic.com`
- API Key: sk-ant-...
- Wire: `anthropic_messages`
- Default model: `claude-opus-4-7` / `claude-sonnet-4-6`
AiApiy setup
- Name: `aiapiy`
- Base URL: the reverse-proxy URL from your AiApiy dashboard
- API Key: generated in dashboard
- Wire: `responses`
- Note: pick the right route alias (e.g. `gpt-5` / `claude-sonnet-4-6` both work)
Auth-failure checklist
- 401 → key is wrong or model not enabled
- 403 → you set wire=responses but the endpoint is really old chat/completions
- Timeout → corporate VPN or proxy is blocking
- Empty response → model name typo / does not exist