Unified AI API for Claude, GPT, and Gemini
One AI in IDE account connects Claude, GPT, and Gemini through four channels, each with its own base URL, model list, and quota factor.
An API key belongs to exactly one channel at a time, and that channel fixes the model list, the endpoint family, and the quota factor.
One account, four channels
Every key is bound to a channel when you create it in API Keys. The channel decides which models the key can call, which endpoint family accepts it, and how fast it burns the quota you bought.
| Channel | Models | Endpoint family | Quota factor |
|---|---|---|---|
| AWSQ | Claude: claude-opus-5-5, claude-sonnet-5-5, claude-haiku-4-5-20251001. Fable is not available. | Anthropic Messages, OpenAI Chat Completions / Responses | 0.8× |
| CCMAX | Claude, including Fable, claude-opus-5-5, and claude-sonnet-5-5 | Anthropic Messages, OpenAI Chat Completions / Responses | 2× |
| Codex | Example model gpt-6.1-sol | Responses, Chat Completions | 0.8× |
| Gemini | Gemini Flash: gemini-3.5-flash, gemini-3.7-flash, gemini-3.8-flash | Gemini generateContent | 0.5× |
The quota factor is a multiplier on each request's cost at the configured model rates. It does not change the amount of quota you purchased — a 0.8× channel simply makes the same balance last longer than a 2× channel, which is the practical difference between AWSQ and CCMAX for a given model.
Moving the same request from AWSQ (0.8×) to CCMAX (2×) uses 2.5 times as much quota. You can change the channel of an existing key in API Keys.
Base URLs
| Client | Configure this value | What the client appends |
|---|---|---|
| Claude Code, Anthropic SDKs | https://api.aiinide.com | /v1/messages |
| OpenAI-compatible clients | https://api.aiinide.com/v1 | /chat/completions or /responses |
| Codex CLI and Responses clients | https://api.aiinide.com | /responses |
gemini CLI and Gemini clients | https://api.aiinide.com | /v1beta/models/... |
Two rules prevent most failed setups:
- The Anthropic base URL is the bare host. Adding
/v1produces a request to/v1/v1/messages, which returns a 404. - Keys are not interchangeable across endpoint families. A Codex key sent to
/v1/messages, or a Gemini key sent to/api/codex, is rejected with a 400 instead of being quietly rerouted.
Claude Code appends /v1/messages to the base URL. The older /api/anthropic prefix is supported for existing integrations.
First request in each protocol
Anthropic Messages
1 curl --globoff 'https://api.aiinide.com/v1/messages' \2 -H "x-api-key: YOUR_DASHBOARD_API_KEY" \3 -H "anthropic-version: 2023-06-01" \4 -H "Content-Type: application/json" \5 -d '{"model":"claude-haiku-4-5-20251001","messages":[{"role":"user","content":"ping"}],"max_tokens":16}'
Add "stream":true for server-sent events.
OpenAI-compatible Chat Completions
1 curl --globoff 'https://api.aiinide.com/v1/chat/completions' \2 -H "Authorization: Bearer YOUR_DASHBOARD_API_KEY" \3 -H "Content-Type: application/json" \4 -d '{"model":"claude-haiku-4-5-20251001","messages":[{"role":"user","content":"ping"}],"max_tokens":16}'
The same key also accepts POST /v1/responses, which uses input and max_output_tokens instead of messages.
Codex Responses
1 curl --globoff 'https://api.aiinide.com/responses' \2 -H "Authorization: Bearer YOUR_DASHBOARD_API_KEY" \3 -H "Content-Type: application/json" \4 -d '{"model":"gpt-6.1-sol","input":"Explain this repository in three bullet points."}'
Gemini generateContent
1 curl --globoff 'https://api.aiinide.com/v1beta/models/gemini-3.8-flash:generateContent' \2 -H "x-goog-api-key: YOUR_DASHBOARD_API_KEY" \3 -H "Content-Type: application/json" \4 -d '{"contents":[{"role":"user","parts":[{"text":"ping"}]}]}'
All four channels can list their configured models with GET /v1/models in OpenAI format. Only AWSQ and CCMAX can add anthropic-version for the Anthropic format. Omit that header with Codex and Gemini keys, or the request returns 400.
Editors and CLIs
| Tool | What to read |
|---|---|
| VS Code | Claude Code in VS Code |
| Cursor | Claude Code in Cursor |
| JetBrains IDEs | Claude Code in JetBrains |
| Claude Code CLI | Configuration |
| Codex CLI | Codex configuration |
| Gemini CLI | Gemini configuration |
None of these are single-click installs. Each one installs a client, points it at a base URL, and stores the key — a few minutes of copying, not an installer that configures everything for you.
What carries over, and what does not
Requests keep the shape the upstream vendor documents: the same JSON bodies, streaming event names, tool-call blocks, and prompt-cache controls. What differs is the account layer — billing is drawn from your dashboard dollar quota, the channel multiplier applies, and per-key quota and expiry limits apply before the request leaves this service.
On the OpenAI-compatible path, a few Anthropic features are deliberately unavailable: background generation, server-stored context (store=false always), hosted tools, Fast mode, and one-hour cache extensions. Send the full conversation on every turn, and use Anthropic Messages when you need those Claude-specific features.
FAQ
Can one key call all three vendors? No. Each key belongs to one channel, and a channel covers one vendor family. One account can hold keys for AWSQ, CCMAX, Codex, and Gemini at the same time, each with its own quota and expiry.
Do I need an Anthropic, OpenAI, or Google account? No. The dashboard key replaces vendor sign-in and vendor billing for the clients listed above.
Why does my request return 400 instead of an upstream error? Check that the endpoint accepts the key’s channel and that the channel supports the model family. Use an exact ID from GET /v1/models to select a model.
Is the OpenAI path a different model? No. AWSQ and CCMAX serve the same Claude models over both protocols; only the request and response envelope changes.
Where do prices come from? Provider reference rates are the vendor’s published prices per million tokens. For standard usage, AI in IDE charges quota at its own configured model rate multiplied by the channel factor. See Claude Code API pricing.