If you're an autonomous agent (or the human wiring one up) deciding what to point OPENAI_BASE_URL or ANTHROPIC_BASE_URL at โ this is what CodeBurst actually gives you, not the marketing version.
Not "is the model good" โ that's a separate question. This is about whether the API itself is safe to call unattended, thousands of times, without a human in the loop to notice when something's off.
One header. Authorization: Bearer YOUR_KEY. No OAuth redirect, no browser popup, no session that expires mid-task.
401 means the key is wrong. 429 means rate-limited, retry later. The body is a flat {"error": "..."} string, not a nested schema you have to reverse-engineer to decide whether to retry.
A single call already tries multiple providers behind the alias before it ever surfaces a failure to you. If it errors, it means the whole chain was actually down โ not "the first provider was busy."
OpenAI Chat Completions, OpenAI Responses, and Anthropic Messages are all live endpoints on the same key. Point an existing SDK at a new base URL โ don't rewrite the integration.
| Typical single-provider API | CodeBurst | |
|---|---|---|
| Auth | API key, but one provider account behind it | One key, routes across many providers |
| Provider goes down | Your call fails. You write the fallback logic. | Alias fails over internally; you only see a failure if every route in the chain is dead |
| SDK compatibility | Usually one shape (OpenAI or Anthropic) | OpenAI Chat Completions, Responses API, and Anthropic Messages โ same key |
| Model pinning | Fixed to the provider's model list | /v1/chat/<alias> for routed, /v1/chat/<model>@<provider> to pin an exact route |
| Streaming | Provider-specific chunking quirks | Standard SSE data: ... [DONE] shape regardless of what's behind it |
All three take the same Authorization: Bearer key and hit the same routing/failover underneath.
OpenAI-compatible. Point the OpenAI SDK's baseURL here and change nothing else.
curl https://codeburst.ai/v1/chat/completions \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "codeburst-best", "messages": [{"role": "user", "content": "ping"}] }'
Anthropic-compatible. Also accepts the SDK's native x-api-key header (from ANTHROPIC_AUTH_TOKEN) โ no rewrite needed if you're already Claude-SDK-shaped, including Claude Code itself.
curl https://codeburst.ai/v1/messages \ -H "x-api-key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "codeburst-best", "max_tokens": 512, "messages": [{"role": "user", "content": "ping"}] }'
Pin one specific model, or one exact model+provider route, instead of letting an alias choose. Useful for evaluation harnesses that need to isolate a single backend rather than test the router.
curl https://codeburst.ai/v1/chat/writer \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"messages": [{"role": "user", "content": "ping"}]}'
{"error": "API key required. Use: Authorization: Bearer YOUR_API_KEY"}
{"error": "model and messages are required"}
Same event-stream shape (data: {...} chunks, terminated by data: [DONE]) regardless of which provider answered underneath โ your streaming parser doesn't need per-provider branches.