Claude on an OpenAI-compatible endpoint. First call in under ‹N› min.
Point the OpenAI SDK you already use at NexoAI, change the base URL, keep your code. One key reaches Claude and every other frontier model. No waitlist, no spend tier to climb before the limits open up.
curl https://api.nexoai.dev/v1/chat/completions \
-H "Authorization: Bearer $NEXOAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-5",
"messages": [{"role": "user", "content": "Say hello in one line."}]
}'
{
"id": "chatcmpl-...",
"model": "claude-sonnet-5",
"choices": [{"message": {"role": "assistant",
"content": "Hello — you're talking to Claude through NexoAI."}}],
"usage": {"prompt_tokens": 14, "completion_tokens": 11, "total_tokens": 25}
}
Same chat/completions shape you already send to OpenAI. Only the base URL and key changed.
- One key → Claude, plus every model NexoAI routes. ‹N›
- OpenAI-compatible: base_url swap, no SDK rewrite.
- $5 in free credits to start, no card.
The honest mechanism
Why a relay, and not just go direct?
Fair question, and the honest answer starts against us: if raw token price is your only axis, going direct to the provider is the cheapest sticker price, and you should do that. A relay is another company between you and the model — another thing that can bill you, break, or see your traffic. So it only earns a place if it removes more pain than it adds. Here's the pain it removes. Decide for yourself whether that trade is worth it for how you build.
-
One OpenAI-compatible key for many models
- What
- point the OpenAI SDK you already use at
https://api.nexoai.dev/v1, change the key, and the samechat/completionscalls reach Claude and every other model we route. Switching models is one string in the request, not a new integration. - Why it matters
- going direct means a separate SDK, key, and bill per provider, and glue code to switch between them. One key collapses that to one integration.
- Honest limit
- if you only ever call one model from one provider, this buys you little — go direct. The relay earns its place the moment you use more than one.
-
No spend-tier ladder to climb for model access
- What
- you get access to the models we route from your first call, on the free credits, with no monthly-spend qualification.
- Why it matters
- going direct, new-model access and higher rate limits are gated behind spend tiers you have to climb — the P1 audience said it plainly:
"Going direct to the model providers does not work... you get rate limited and are last in the list for new model access"
and"[it] doesn't make you jump through some tiering system."
A relay pools that access so you're not last in line. - Honest limit
- ‹N› — NEEDS NUMBER FROM USER: NexoAI's own rate limits / any tiering on the relay side. State them here plainly — if the relay has its own ceilings, this section must name them or it reads as the exact evasion devs distrust.
-
Automatic fallback when an upstream errors
- What
- when a provider returns an overload or error, the request is retried against another route instead of failing in your app.
- Why it matters
- going direct, an upstream 529/5xx is your outage to catch and handle. A relay can absorb the retry so a transient provider blip doesn't become your incident.
- Honest limit
- ‹N› — NEEDS CONFIRMATION FROM USER: does NexoAI actually do automatic fallback/routing? If not, DELETE this entire reason — it is the single most tempting claim to overstate and the fastest way to lose this audience. Same flag as P1. If fallback is real, state exactly what it falls back to and what the latency cost is; if it's just retry-same-provider, call it that, not "fallback."
-
One balance, one bill
- What
- usage across every model runs down one prepaid balance you watch decrement in real time, on one invoice, with no card required to start ($5 free credits).
- Why it matters
- going direct with multiple providers means multiple bills, multiple billing dashboards, and separate spend to reconcile. One balance is one number to watch and one place a surprise can't hide.
- Honest limit
- this is convenience, not savings. The relay's fee is where that convenience is priced — ‹N› — NEEDS NUMBER FROM USER: NexoAI's exact fee/markup model — same figure the A2 pricing page needs; the "why a relay" case is incomplete and slightly evasive without it
Go direct if price is your only axis and you're happy managing tiers, keys, and bills yourself. Use NexoAI if one key across many models, no tier ladder, [fallback — pending confirmation], and one balance are worth the fee. That's the whole trade. No lock-in: it's an OpenAI-compatible endpoint, so switching back is changing the base URL back.
Pricing
Per-model rates: NexoAI vs OpenRouter vs the raw provider
Pay per token, per model. Here is our rate next to what you'd pay OpenRouter and what you'd pay going direct to Anthropic. Prices are per million tokens (MTok), input / output. Provider list rates are published; ours sit beside them so you can check the delta yourself.
Going direct is the cheapest sticker price. It also rate-limits you by monthly spend, gates new models behind tiers, and hands you a separate key and a separate bill for every provider. NexoAI is a relay: one OpenAI-compatible key reaches Claude and the other models we route, with automatic fallback when an upstream provider errors, and one balance you watch decrement in real time. That convenience is not free and we won't pretend it is — ‹N› — NEEDS NUMBER FROM USER: NexoAI's exact fee/markup model — flat % on credits like OpenRouter's 5.5% Stripe / 5% crypto, per-token margin, or per-model rate If your only axis is raw token price and you're fine managing tiers and keys yourself, go direct. If one key, no tier ladder, and fallback across providers is worth the delta below, that's what you're buying.
Raw-provider column uses Anthropic's official published list rates (per MTok, input / output), captured 2026-07-24 from docs.anthropic.com/en/docs/about-claude/pricing. NexoAI and OpenRouter effective columns depend on NexoAI's fee model — fill once supplied. OpenRouter reference: it passes provider inference rates through with no inference markup; its fee is on credit purchase (5.5% Stripe / 5% crypto), per openrouter.ai/docs/faq (2026-07-24).
| Model | Raw Anthropic (in / out) | OpenRouter (effective) | NexoAI (effective) | You save vs raw |
|---|---|---|---|---|
| Claude Opus 5 | $5 / $25 | ‹N› | ‹N› | ‹N› |
| Claude Sonnet 5 | $3 / $15 (intro $2 / $10 through 2026-08-31) | ‹N› | ‹N› | ‹N› |
| Claude Haiku 4.5 | $1 / $5 | ‹N› | ‹N› | ‹N› |
Caching & batch
Prompt caching: cache read ~0.1x input, 5-min cache write 1.25x, 1-hr write 2x. Batch API: 50% off input and output. ‹N› — NEEDS NUMBER FROM USER: whether NexoAI passes caching + batch discounts through — devs specifically cite OpenRouter lacking prompt caching as the reason it 'becomes even more expensive in the long run.'
Which is right for me?
- Prototyping or bursty usagestart on free credits, no card. You watch the balance decrement in real time; no monthly tier to qualify for.
- One app, one modelthe per-model rate above is your whole bill. No minimums.
- Many models or you switch oftenone key covers all of them with fallback; this is where the relay earns the delta.
- Team sharing one key todayper-key spend limits and usage visibility. ‹N›
Quickstart
Make your first Claude call
This gets you from a new account to a live Claude response. If a step doesn't produce what's shown, that's a bug in these docs — tell us.
-
Get your API key
Create an account and copy your key from the dashboard. No card required for the free tier. ‹N›
export NEXOAI_API_KEY="sk-nexo-..." # paste your key -
Send a request with curl
The endpoint speaks the OpenAI chat/completions format.
curl https://api.nexoai.dev/v1/chat/completions \ -H "Authorization: Bearer $NEXOAI_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-sonnet-5", "messages": [{"role": "user", "content": "Reply with the word: online"}] }' -
Confirm the response
You should see a JSON body like this. The
contentis Claude's reply;usageis what this call cost you in tokens.{ "id": "chatcmpl-...", "object": "chat.completion", "model": "claude-sonnet-5", "choices": [{ "index": 0, "message": {"role": "assistant", "content": "online"}, "finish_reason": "stop" }], "usage": {"prompt_tokens": 12, "completion_tokens": 1, "total_tokens": 13} } -
Use it from the OpenAI SDK you already have
No new library. Point the OpenAI client at NexoAI's base URL.
from openai import OpenAI client = OpenAI( api_key="YOUR_NEXOAI_KEY", # or os.environ["NEXOAI_API_KEY"] base_url="https://api.nexoai.dev/v1", ) resp = client.chat.completions.create( model="claude-sonnet-5", messages=[{"role": "user", "content": "Reply with the word: online"}], ) print(resp.choices[0].message.content) # -> onlineimport OpenAI from "openai"; const client = new OpenAI({ apiKey: process.env.NEXOAI_API_KEY, baseURL: "https://api.nexoai.dev/v1", }); const resp = await client.chat.completions.create({ model: "claude-sonnet-5", messages: [{ role: "user", content: "Reply with the word: online" }], }); console.log(resp.choices[0].message.content); // -> online -
Switch models with one string
Change
modelto route to a different model on the same key. See the pricing page for per-model rates. ‹N›
Common errors
- 401
- your key is missing or wrong. Check the
Authorization: Bearerheader matches the key in your dashboard. - 404 model not found
- the
modelstring isn't one NexoAI routes. See the model list. ‹N› - 429
- you hit a rate or spend limit. ‹N›
Free tier
Free credits to experiment. No card.
Test Claude and the other models we route before you spend anything. Free credits are issued at signup, no card on file, and you watch the balance decrement in real time so nothing surprises you at the end of the month.
Here's exactly what "free" means, so there are no asterisks later:
- You get $5 in free credits at signup, no card required.
- It runs against ‹N› — NEEDS NUMBER FROM USER: which models the free tier can call — all of them, or a subset
- Rate limit on the free tier: ‹N› — NEEDS NUMBER FROM USER: free-tier RPM / token throttle Enough to build and test a real integration, not to run production.
- When credits run out, calls stop until you add a payment method. We don't auto-charge a card you never entered.
- On data: ‹N› — NEEDS NUMBER FROM USER: free-tier data/retention/training policy — devs explicitly warn each other that "anything free comes with the caveat that they can/will look at your data for training," so state the real policy plainly or this line reads as evasive.
Trust surface
NexoAI Status
Live status of the API and each upstream we route. All times UTC. ‹N› — This page is hosted off our main infrastructure, so it stays up when the API doesn't. NEEDS CONFIRMATION FROM USER: is the status page actually hosted off-platform / on a separate provider? If not, cut the second sentence — it must be true.
All systems operational.
API and all routed upstreams responding normally. Last checked ‹timestamp›, checks run every ‹N›.
- NexoAI API api.nexoai.dev/v1 Operational
- Dashboard & key management Operational
- Claude upstream Operational
- ‹N› — remaining upstreams, one component each
- Uptime, last 90 days
- ‹N›
- p50 / p99 API overhead
- ‹N›
14:02 UTC — Investigating — Claude (upstream)
What: Elevated 529 (overloaded) responses from the Claude upstream.
Impact: Claude calls returning errors or timing out. Other routed models and
the dashboard are unaffected.
Started: 13:58 UTC.
Next update: by 14:20 UTC.
14:19 UTC — Identified — Claude (upstream)
What: Confirmed upstream capacity issue at the provider, not on our side.
Impact: Same as above.
Started: 13:58 UTC.
Next update: by 14:45 UTC.
14:38 UTC — Monitoring — Claude (upstream)
What: Upstream error rate back to normal. Watching to confirm it holds.
Impact: Claude calls succeeding again. No action needed on your end.
Started: 13:58 UTC.
Next update: by 15:10 UTC, or a Resolved note if stable.
15:09 UTC — Resolved — Claude (upstream)
What: Upstream stable for 30 minutes. Incident closed.
Impact: None ongoing. Total window: 13:58–14:35 UTC (~37 min) of elevated
Claude errors.
Started: 13:58 UTC.