Compatibility
AtmoRouter is a metered gateway with two inference protocols. Match your client to an implemented protocol before changing its base URL. Examples use illustrative model IDs; check the live catalog before deploying.
Protocol support
| Capability | Contract |
|---|---|
| OpenAI Chat Completions | POST /v1/chat/completions: JSON, SSE, and model-dependent tools/structured output. |
| Anthropic Messages | POST /v1/messages: JSON and native SSE. max_tokens is required. |
| Model discovery | GET /v1/models: public retail catalog; a valid owner API key also includes that account’s callable combo/ IDs. The public response alone does not validate a key. |
| OpenAI Responses API | No public /v1/responses endpoint. The helper offers an explicit localhost Codex bridge for a limited stateless text and function-tool subset. |
| Embeddings, image/video/audio generation | No dedicated generation or embeddings endpoints. Catalog metadata is not a promise of callable modality support. |
| MCP and publisher management | No public AtmoRouter MCP server or publisher API. |
| Combos | Private combo/<slug> IDs work in Chat Completions and Anthropic Messages with an owner API key. Choose round-robin, failover, or cheapest; member eligibility and normal billing still apply. |
| Provider-specific extensions | Unknown inference fields may be forwarded; support and behavior depend on the upstream model. |
Client compatibility is more than a base URL
Select a Chat Completions-compatible provider in your agent. For OpenCode use @ai-sdk/openai-compatible. The helper configures Claude Code, OpenCode, Oh My Pi, and Continue, guides supported IDE settings, and can explicitly launch a local Codex bridge. Token-counting endpoints, built-in Responses tools, stateful sessions, and other provider extensions can remain incompatible. Agent features depend on the client and model.
Migration checklist
- Create an AtmoRouter key; provider keys are not portable.
- Choose an enabled model with the features your application needs.
- Set the protocol-specific base URL and send a short bounded request.
- Check text/tool behavior, streaming completion, recorded usage, and cost.
- Move traffic gradually; keep the previous configuration available for rollback.