Maximize every token you spend on AI.
Call dozens of frontier models through one OpenAI- and Anthropic-compatible API, billed per million tokens in USDC and routed to the best-priced healthy provider. No monthly plan, no commitment — pay for what you use, at a fraction of official pricing.
Reach upstreams that normally live behind a monthly plan
One API, two protocols, a marketplace behind it
ArzaRouter is an OpenAI- and Anthropic-compatible API with a marketplace behind it. Call any model with one key; route to capacity that fits your budget.
Get started in one command
Coding agents first: run the helper, paste your key, pick models. Or point your OpenAI / Anthropic SDK at ArzaRouter — same request shape, same streaming, one key for both.
# One command: validates your key, then writes each agent's config
curl -fsSL https://arzarouter.arzastore.com/helper | node
# Or wire the environment yourself:
export OPENAI_BASE_URL=https://arzarouter.arzastore.com/api/v1
export OPENAI_API_KEY=sk-infer-...
# Anthropic-compatible clients (Claude Code appends /v1 itself):
export ANTHROPIC_BASE_URL=https://arzarouter.arzastore.com/api
export ANTHROPIC_API_KEY=sk-infer-...
# Check the key and list the models it can reach:
curl -s https://arzarouter.arzastore.com/api/v1/models \
-H "Authorization: Bearer $OPENAI_API_KEY"
// OpenAI SDK → any upstream
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,,
baseURL: "https://arzarouter.arzastore.com/api/v1",
});
const res = await client.chat.completions.create({
model: "claude-sonnet-4.6",
messages: [{ role: "user", content: "Explain PKCE." }],
});
// Anthropic SDK → Claude upstream
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
apiKey: process.env.ANTHROPIC_API_KEY,,
baseURL: "https://arzarouter.arzastore.com/api",
});
const res = await client.messages.create({
model: "claude-opus-4.6",
max_tokens: 1024,
messages: [{ role: "user", content: "Write a haiku." }],
});
// "auto" → the gateway picks the provider
const res = await client.chat.completions.create({
model: "auto",
messages: [{ role: "user", content: "Refactor this function." }],
stream: true,
});
Full walkthrough in docs.
Two paths, same platform
Put your model capacity to work
Your idle model capacity has headroom. Connect one of the curated upstreams once, set your per-Mtoken price, and earn USDC from capacity you'd otherwise waste. We track real upstream usage so you never get cut off unexpectedly.
Pay-per-use for consumers, payout for publishers
Consumers pay the published per-Mtoken rate for the model they call. Rates are set per model by the publisher and shown in the rate card above — no subscription tier required on either side.