https://llm.bytespike.ai — every protocol, every model.
Pick the protocol that matches your client, set two env vars, and you’re
done.
1. Get an API key
Sign in to console.bytespike.ai/keys and Create key. Pick the routing group (claude-default for Claude
models, gemini-default for Gemini, or default to route everything —
see Models for what’s in each group). The plaintext is shown
once at creation — store it. Format: sk-byts-….
2. Pick a protocol
Three protocols hit the same gateway. Pick whichever your client speaks natively — billing, throttling, and credit accounting are identical across all three. The URL you use depends on whether you’re driving an SDK (which auto-appends the endpoint path) or hand-rolling curl / REST (where you write the full path yourself).SDK base URL
Set this asANTHROPIC_BASE_URL / OPENAI_BASE_URL / Gemini client
endpoint. The SDK appends /v1/messages, /chat/completions, or
/models/{model}:generateContent for you.
| Protocol | SDK base URL | Typical clients |
|---|---|---|
| Anthropic Messages | https://llm.bytespike.ai | Claude Code, Claude Desktop, Anthropic SDK |
| OpenAI Chat Completions | https://llm.bytespike.ai/v1 | OpenAI SDK, Cherry Studio, NextChat, LobeChat |
| Gemini Native | https://llm.bytespike.ai/v1beta | Google AI Studio examples, vertex-compat clients |
Full endpoint (curl / REST) [#full-endpoint]
If you’re calling the gateway withcurl or any client that needs the
literal request URL, use the full endpoint instead. This is what the
console’s Keys → EndpointBanner copies.
| Protocol | Full endpoint |
|---|---|
| Anthropic | https://llm.bytespike.ai/v1/messages |
| OpenAI | https://llm.bytespike.ai/v1/chat/completions |
| Gemini | https://llm.bytespike.ai/v1beta/models/{model}:generateContent |
gemini-3.1-pro:generateContent); the other two take the model in the
JSON body.
3. Set the env vars
- Anthropic Messages
- OpenAI Chat Completions
- Gemini Native
For Claude Code and the Anthropic SDK, two env vars are all you need:Any client that reads these standard vars (Claude Code, Anthropic
Python / TypeScript SDK, third-party clients) picks them up
transparently. Then call any Anthropic-compatible model:Or, with the full endpoint via curl:
4. Pick a model
One key calls every model regardless of which vendor originally made it. You don’t need a separate Anthropic / OpenAI / Google / DeepSeek subscription — ByteSpike serves them all through one endpoint. Common model IDs (full catalog at Console → Models or viaGET /v1/models):
| Family | Use these ids |
|---|---|
| Claude | claude-opus-4-8, claude-sonnet-4-6, claude-haiku-4-5 |
| GPT-5 | gpt-5-5, gpt-5-4, gpt-5-4-mini, gpt-5-4-nano, gpt-5-2 |
| Gemini | gemini-3-1-pro, gemini-3-5-flash, gemini-2-5-flash |
| DeepSeek | deepseek-v4-pro, deepseek-v4-flash, deepseek-v3-2, deepseek-v3-anthropic |
| Kimi / GLM / MiniMax / Doubao | kimi-k2-6, glm-5-1, minimax-m2-7, doubao-seed-2-0-pro |
| Image | seedream-4-5, seedream-v5lite, nano-banana, nano-banana-v2, gpt-image-2 |
| Video | sora2, sora2-pro, veo3-1, veo3-1-fast, seedance-pro, seedance-1-5-pro |
claude-sonnet-4-6 works on Anthropic Messages, OpenAI Chat
Completions, and Gemini Native.
5. Client-specific setup
Claude Code (CLI / agent)
Claude Code (CLI / agent)
Claude Code reads Then
ANTHROPIC_BASE_URL and ANTHROPIC_API_KEY
automatically. Add to your shell profile:claude calls every Anthropic-protocol model through ByteSpike.Claude Desktop
Claude Desktop
Open Settings → Developer → Edit Config. Add the env vars under your
OS’s section. Restart the app for the change to take.
Cherry Studio
Cherry Studio
Settings → Model Providers → Add Provider → “OpenAI Compatible”.
Base URL:
https://llm.bytespike.ai/v1. API key: your ByteSpike key.
Then any of the model ids from the table above works.NextChat / ChatGPT-Next-Web
NextChat / ChatGPT-Next-Web
Settings → Custom Endpoint. API URL:
https://llm.bytespike.ai/v1.
API Key: your ByteSpike key. Model: any of the ids above.OpenAI SDK (Python / TypeScript)
OpenAI SDK (Python / TypeScript)
Pass TypeScript:
base_url / baseURL in the client constructor. The model
string is the only thing that changes per call.Python:6. Verify the wiring
Hit/v1/models to confirm the key is live and see what your account
can actually call:
data[].id should
include every model your tier exposes. If the list is short and you
expected more, check
console.bytespike.ai/account —
your allowed_models may be capped by an org default or admin policy.
Next steps
- Authentication — full header reference + key management
- Models — per-model rate cards and capability tags
- Error handling — retry semantics + status codes