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 |
The chat endpoints take the same Authorization: Bearer key and hit the same routing/failover underneath. Image generation uses the same key and returns base64 image data.
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"}]}'
Generate one image through the sandboxed Codex subscription worker. Use model: "image" for polished Sunburst images or model: "image-fast" for faster Flare drafts. This route currently requires the account owner's API key.
curl https://codeburst.ai/v1/images/generations \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "image", "prompt": "a cyberpunk cat in Jakarta", "size": "1024x1536" }'
curl https://codeburst.ai/v1/images/generations \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"model":"image-fast","prompt":"quick concept sketch of a Jakarta night market"}'
The response is OpenAI-shaped: read the generated PNG from data[0].b64_json. Common sizes are 1024x1024, 1024x1536, 1024x1792 (9:16), and 1792x1024 (16:9). Failures include a request_id for support tracing. HTTP 429 means the image rate limit was reached; wait about a minute before retrying.
Use model: "image-fast" for GPT Image 2.5 Flare drafts, then model: "image" for GPT Image 2.5 Sunburst finals. Both use the same Codex subscription. The aliases work for generation and edits. Read actual_model in each response to identify the image backend.
For storyboard continuity, add reference_images with 1โ7 PNG, JPEG, or WebP data URLs or HTTPS URLs. Each item has a role: character, location, outfit, prop, style, composition, or edit_source. An edit_source selects image-edit mode; other roles guide the new generation, and pose/background/framing are not copied unless the role is composition.
"reference_images": [ { "role": "character", "name": "ryan", "image_url": "data:image/jpeg;base64,..." }, { "role": "location", "name": "coast", "image_url": "https://example.com/coast.webp" } ]
OpenMinis image-to-image mode uses POST /v1/images/edits with multipart fields model, prompt, n, size, and one or more files named image/image[]. It returns the same data[0].b64_json shape and includes request_id.
The worker maps image-fast to GPT Image 2.5 Flare (gpt-image-2.5-flare) and image to GPT Image 2.5 Sunburst (gpt-image-2.5-sunburst). Both use gpt-6-luna to drive the Codex Responses tool call. Generation and edit responses include actual_model, driver_model, and actual_model_source. The source is provider when the image result reports a model, or worker_configuration for the exact model requested by the worker. If an older worker does not report its model, the value is null with source unreported. Identity consistency is guided by references and the prompt; it cannot guarantee pixel-identical faces.
{"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.