Disclosure: I'm not affiliated with Roteo. I'm a user. The signup link in this post (https://app.roteo.ai/r/onkasouji) is my referral link, and Roteo's referral program pays me 10% of what people who sign up through it spend. If you'd rather not use it, go to roteo.ai directly.
Claude Code reads ANTHROPIC_BASE_URL, so you can point it at an API other than Anthropic's. When the Pro or Max weekly limit kept cutting me off mid-week, and a plain Anthropic API key got expensive on long Opus sessions, that's what I did. I use Roteo, a pay-per-call gateway: no subscription, and most Claude models are listed at roughly 81 to 85% under Anthropic's list prices. Haiku 5.5 is the exception at only 10% off.
Below is my config for Claude Code and Codex CLI, the price tables, and the downsides. The two big ones: you pay in stablecoins, and Claude only works in Claude Code or direct API calls.
It probably is if:
It probably isn't if:
This works differently from every other API I've paid for, so here's how it goes:
All prices are USD per 1 million tokens, input / output, as of Oct 24, 2026. They change, so check the live links before you budget around any number here. Roteo prices come from its live price book at api.roteo.ai/v1/llms.txt. Official prices are standard (non-batch) rates from Anthropic's pricing page and OpenAI's pricing page.
| Model | Roteo (in / out) | Anthropic list (in / out) | Roteo vs list |
|---|---|---|---|
| Claude Fable 5.1 | $1.90 / $9.30 | $10 / $50 | ~81% less |
| Claude Opus 5.5 | $0.65 / $3.10 | $4 / $20 | ~84% less |
| Claude Opus 5 | $0.85 / $4.28 | $5 / $25 | ~83% less |
| Claude Sonnet 5.5 | $0.35 / $1.55 | $2 / $10 | ~83-85% less |
| Claude Sonnet 4.6 | $0.51 / $2.56 | $3 / $15 | ~83% less |
| Claude Haiku 4.5 | $0.17 / $0.85 | $1 / $5 | ~83% less |
| Claude Haiku 5.5 | $0.09 / $0.45 | $0.10 / $0.50 | only 10% less |
Anthropic's Haiku 5.5 list price above is for prompts up to 100,000 tokens. Longer prompts cost more on Anthropic's side.
| Model | Roteo (in / out) | OpenAI list (in / out) | Roteo vs list |
|---|---|---|---|
| GPT-6 Astra | $0.70 / $3.35 | $10 / $50 | ~93% less |
| GPT-6.1 Sol | $0.15 / $0.70 | $2 / $10 | ~93% less |
| GPT-6 Luna | $0.015 / $0.05 | $0.10 / $0.50 | ~85-90% less |
| GPT-5.6 Terra | $0.13 / $0.80 | $2 / $12 | ~93% less |
Some context for these numbers:
This follows Roteo's Claude Code guide. All you change is the base URL and the key Claude Code uses.
Sign up at roteo.ai (or through my referral link at the top), sign in at app.roteo.ai, open the Keys page and create a key. It starts with sk_ and is shown only once, so save it somewhere safe. You can have up to 3 active keys. Then fund the wallet from the dashboard with one of the stablecoins listed above, and double check you're sending on the chain you picked. A key can spend from your wallet, so treat it like a password.
macOS / Linux:
curl -fsSL https://claude.ai/install.sh | bash
Windows:
winget install Anthropic.ClaudeCode
Check with claude --version.
For a quick test in the current terminal:
export ANTHROPIC_BASE_URL="https://api.roteo.ai"
export ANTHROPIC_AUTH_TOKEN="sk_your_key"
claude
PowerShell:
$env:ANTHROPIC_BASE_URL = "https://api.roteo.ai"
$env:ANTHROPIC_AUTH_TOKEN = "sk_your_key"
claude
The base URL has no /v1. Claude Code adds that itself.
To make it permanent, put it in ~/.claude/settings.json (merge with what's already there, then restart Claude Code):
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.roteo.ai",
"ANTHROPIC_AUTH_TOKEN": "sk_your_key",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-haiku-4-5"
}
}
That file now holds a live key, so keep it out of any dotfiles repo you push.
The third line comes from Roteo's llms.txt and I keep it. Claude Code makes small background calls (session titles, the summaries behind claude --resume) to whatever its "haiku" alias points to. With a non-Anthropic base URL, that alias falls through to a bigger model, so you pay more than the work needs. If you'd rather turn those calls off, set CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 instead (you lose titles and resume summaries).
Start claude, run /status, and you should see https://api.roteo.ai as the Anthropic base URL. Ask it something simple. If you get a reply, you're going through Roteo.
One gotcha: Claude Code's /cost will be wrong. It prices everything as if you were paying Anthropic, so it shows far more than you actually pay. The Roteo dashboard shows the real charges.
Roteo also runs deepseek-v4.1-flash-1017 inside Claude Code, at $0.23 / $0.69 per 1M. That's well under Opus and Sonnet, but not under Haiku 5.5 ($0.09 / $0.45). Where it gets really cheap is cached input: $0.0069 per 1M, and in Claude Code most of what you send is cached context.
Claude Code only lists gateway models whose id contains "claude", so you add DeepSeek to the /model picker yourself (needs Claude Code 2.1.242 or later). Here's the full settings.json with everything from step 3 kept:
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.roteo.ai",
"ANTHROPIC_AUTH_TOKEN": "sk_your_key",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-haiku-4-5",
"ANTHROPIC_MODEL": "claude-opus-5-5"
},
"modelPicker": {
"options": [
{ "model": "deepseek-v4.1-flash-1017[1m]", "label": "DeepSeek V4.1 Flash" }
]
}
}
ANTHROPIC_MODEL is the model new sessions start on. Or skip the picker and type this mid-session:
/model deepseek-v4.1-flash-1017[1m]
The [1m] suffix tells Claude Code the model has a 1M context window so it doesn't compact early. You can switch back with /model claude-opus-5-5 in the same conversation.
Per Roteo's docs, DeepSeek reads images but not PDFs, web search isn't available, and most small cached turns come out around $0.001 each.
From Roteo's Codex guide. Needs Codex 0.121 or later (codex --version).
codex logout
~/.codex/config.toml (add to the file, don't replace it):
model = "gpt-5.6-sol"
model_provider = "roteo"
[model_providers.roteo]
name = "Roteo"
base_url = "https://api.roteo.ai/v1"
wire_api = "responses"
experimental_bearer_token = "sk_your_key"
To keep the key out of the file, swap the last line for env_key = "OPENAI_API_KEY" and set that variable to your Roteo key in the shell you launch Codex from. The docs call env_key the stable option. If you normally keep a real OpenAI key in OPENAI_API_KEY, remember it's now the Roteo key in that shell.
codex. The header should say provider: roteo. Switch models with /model (any gpt-* id).
The default above, gpt-5.6-sol, is $0.33 / $2.00 per 1M on Roteo. gpt-6.1-sol ($0.15 / $0.70) and gpt-6-astra ($0.70 / $3.35) from the table above work too.
Codex may log a warning that it couldn't refresh the model list. Roteo's docs say it's harmless.
Roteo's agents page gives one set of settings for any OpenAI-compatible client:
| Setting | Value |
|---|---|
| Base URL | https://api.roteo.ai/v1 |
| API key | your sk_ key |
| Model | a gpt-* or open-weight id, e.g.gpt-5.6-sol orglm-5.3 |
The docs have guides for opencode, Cursor, Hermes and OpenClaw, and name Continue, Aider, LangChain, LiteLLM and chat apps like Open WebUI as working through the OpenAI protocol. In opencode, open-weight models are the ones marked verified. GPT is "supported, not yet verified." Cline isn't mentioned anywhere in the docs, so I can't tell you it's supported.
Don't plan on Claude in any of these tools. Roteo refuses Claude models in agent frameworks, Cursor included.
If you want Claude from your own code, use the OpenAI-compatible /v1/chat/completions endpoint, for example with the OpenAI SDK. Roteo's Anthropic-style /v1/messages endpoint only serves Claude Code, so the Anthropic SDK gets an HTTP 403 (unsupported_client).
Roteo's own diagram of what it keeps. This is their stated policy, not an audit.
Roteo's privacy policy says it doesn't store prompts or responses, only usage metering (token and image counts, model, timestamp). But the requests still run on third-party model providers, which are "bound by their own terms and privacy commitments." The docs don't say which provider serves each model.
retry-after header. One interactive session is unlikely to hit it, but parallel subagents or scripts get there faster.
Is it the real Claude?
I can't verify that from outside. Roteo's docs say every request is served by "the same frontier models you would reach going direct" and that model output is never editorially rewritten, but they don't say which upstream provider serves each model.
Do I need an existing crypto wallet?
No. Signing in creates a self-custodied wallet for you. You do need to get supported stablecoins into it.
Can I pay with a card?
Not that I can find. The docs only list USDC and USDG on the chains above.
Can I use Claude in Cursor with this?
No. Roteo refuses Claude in agent frameworks, including Cursor. GPT and open-weight models are listed as supported in Cursor ("not yet verified per framework"). Roteo's Cursor guide says picking a custom model needs a paid Cursor plan, and that you have to disable Cursor's built-in models or the key reads as invalid.
Can I switch back to my Claude subscription?
Yes. Remove the ANTHROPIC_* lines you added (base URL, auth token, and the model settings if you used them) plus the modelPicker block from your env or settings.json, then restart Claude Code.
Where do I get help?
Roteo's community is on Discord at discord.gg/roteo. The docs are at roteo.ai/docs.
If the Claude Code weekly limit is what's slowing you down, the config is a few lines in settings.json and you pay per request instead of per month. Getting stablecoins into the wallet is the slow part. Haiku 5.5 barely saves anything. Opus 5.5 is $0.65 / $3.10 against $4 / $20 list, and that's where the savings show up.
Disclosure again, so it's not buried: I'm a Roteo user, not part of the team. The app.roteo.ai/r/onkasouji link is my referral link and pays me 10% of what you spend (Roteo only starts paying referral earnings once the referrer has spent $20 themselves). If you'd rather skip it, roteo.ai works just the same.