Claude models through a single API key.
Nexus routes your requests to Claude and meters every token 1:1 — one token used, one token deducted. No multipliers, no subscriptions. Works with Cursor, Claude Code, the Anthropic SDK, and plain HTTP.
- Base URL
/v1- Endpoints
/v1/messages·/v1/chat/completions- Billing
- 1 token = 1 token, one-time payment
Plans
One-time token pools. Pools never expire · Real 1:1 official metering · All 7 Claude models included
- Quick tests & script runner
- Instant key provisioning
- Cursor & Claude Code compatible
- 4x more capacity than Tester
- Light daily development & debugging
- Outlasts Claude web daily message limits
- Full-time daily coding & refactors
- No 5-hour rate limits or lockouts
- 2.5x more capacity than Starter
- Massive 1,000,000,000 token reserve
- No 5-hour rate limits or lockouts
- 2x more capacity than Developer
Models
Every plan includes the same models. Request them by ID on
/v1/messages or /v1/chat/completions,
or list them live with GET /v1/models.
Your usage
Sign in with your API key to see your balance and per-model consumption.
Client Dashboard
Enter your API key to check token balance and per-model consumption.
Connect
Use your virtual key as a drop-in endpoint for Claude Code, Cursor, Python, and OpenAI-compatible tools.
- In Z.AI Settings, open Model Providers → Add Custom Provider.
- Set Provider Protocol to Anthropic Messages.
- Set Base URL to
https://stimhook.com/v1and API Key tosk-nx-YOUR_KEY. - Set Model to
claude-opus-5-thinkingand enable Streaming.
{
"provider": "custom_anthropic",
"base_url": "https://stimhook.com/v1",
"api_key": "sk-nx-YOUR_KEY",
"default_model": "claude-opus-5-thinking",
"stream": true
}
- Open Cursor Settings (Ctrl + , or Cmd + ,) → Models.
- Under OpenAI API Key, enter:
sk-nx-YOUR_KEY. - Enable Override OpenAI Base URL and enter:
https://stimhook.com/v1. - Click + Add Model and enter
claude-opus-5-thinking(orclaude-opus-5.5/claude-opus-5).
POST https://stimhook.com/v1/chat/completions
Authorization: Bearer sk-nx-YOUR_KEY
Content-Type: application/json
{
"model": "claude-opus-5-thinking",
"messages": [{"role": "user", "content": "Refactor this function"}],
"stream": true
}
- Export the standard Anthropic environment variables in your terminal.
- Run
claude. Preflight token calculations (/v1/messages/count_tokens) are free and unbilled.
$env:ANTHROPIC_BASE_URL = "https://stimhook.com/v1" $env:ANTHROPIC_API_KEY = "sk-nx-YOUR_KEY" claude --model claude-opus-5-thinking
export ANTHROPIC_BASE_URL="https://stimhook.com/v1" export ANTHROPIC_API_KEY="sk-nx-YOUR_KEY" claude --model claude-opus-5-thinking
- Install the official library:
pip install anthropic. - Pass your Base URL and Virtual Key into
Anthropic().
from anthropic import Anthropic
client = Anthropic(
base_url="https://stimhook.com/v1",
api_key="sk-nx-YOUR_KEY",
)
with client.messages.stream(
model="claude-opus-5-thinking",
max_tokens=1024,
messages=[{"role": "user", "content": "Write an efficient sorting function in Python."}],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
print()
Standard fetch request without third-party dependencies (Node 18+, Bun, Deno, Edge).
const res = await fetch("https://stimhook.com/v1/messages", {
method: "POST",
headers: {
"x-api-key": "sk-nx-YOUR_KEY",
"anthropic-version": "2023-06-01",
"content-type": "application/json"
},
body: JSON.stringify({
model: "claude-opus-5-thinking",
max_tokens: 1024,
messages: [{ role: "user", content: "Review this pull request" }]
})
});
const data = await res.json();
console.log(data.content[0].text);
curl https://stimhook.com/v1/messages \
-H "x-api-key: sk-nx-YOUR_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-opus-5-thinking",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Hello Nexus"}]
}'
Compatible with the official OpenAI SDK, LangChain, and LiteLLM.
from openai import OpenAI
client = OpenAI(
base_url="https://stimhook.com/v1",
api_key="sk-nx-YOUR_KEY",
)
response = client.chat.completions.create(
model="claude-opus-5-thinking",
messages=[{"role": "user", "content": "Hello"}],
)
print(response.choices[0].message.content)
Failed requests (4xx / 5xx) are never billed. Only completed generations consume quota 1:1.
| Status | Type | Description | Behavior / Resolution |
|---|---|---|---|
429 |
rate_limit_error | Token budget held by parallel requests or per-minute rate limit. | Gateway retries up to 2 times automatically with backoff. If returned, wait 2–5s. 0 tokens billed. |
503 |
overloaded_error | Model queue temporarily busy. | Gateway retries automatically. Safe to retry immediately. 0 tokens billed. |
401 |
authentication_error | Missing or invalid API key. | Ensure header x-api-key or Authorization: Bearer contains your active key. |
403 |
permission_error | Token quota exhausted or key deactivated. | Check your balance in the portal above or request a plan top-up. |
400 |
invalid_request_error | Malformed JSON or missing required fields. | Verify JSON payload and required parameters (e.g. messages). |
API Endpoints
POST /v1/messages | Anthropic Messages API — Recommended, full SSE streaming & thinking mode |
POST /v1/chat/completions | OpenAI-compatible endpoint for Cursor, Windsurf, LangChain & OpenAI SDKs |
GET /v1/models | Active model catalog available on your key |
POST /v1/messages/count_tokens | Free unbilled token pre-flight counter for CLI tools |
GET /v1/usage | Live quota and per-model consumption telemetry |
GET /health | Gateway health check and operational status |
System Status & Uptime
Real-time telemetry of the Nexus API gateway, Claude upstream routing, and global response latency.