Routing 109 models across 12 families — up to 100.0% below official pricing
cb/gpt-6-astra$0.3750$10.00cc/claude-fable-5$5.00$10.00cc/claude-fable-5-1$5.00$10.00cx/gpt-6-astra$0.2250$10.00cb/gpt-image-2$0.3000$8.00ag/claude-opus-4-6-thinking$0.0125$5.00cb/claude-opus-4.6$0.2250$5.00cb/claude-opus-4.7-1m$0.2375$5.00cb/claude-opus-5$0.2375$5.00cb/gpt-5.5$0.1125$5.00cc/claude-opus-4-6$2.50$5.00cc/claude-opus-4-7$2.50$5.00cc/claude-opus-4-8$2.50$5.00cc/claude-opus-5$2.50$5.00cx/gpt-5.5$0.1250$5.00cx/gpt-5.6-sol$0.1250$5.00cc/claude-opus-5-5$2.00$4.00ag/claude-sonnet-4-6$0.0075$3.00cb/gpt-6-astra$0.3750$10.00cc/claude-fable-5$5.00$10.00cc/claude-fable-5-1$5.00$10.00cx/gpt-6-astra$0.2250$10.00cb/gpt-image-2$0.3000$8.00ag/claude-opus-4-6-thinking$0.0125$5.00cb/claude-opus-4.6$0.2250$5.00cb/claude-opus-4.7-1m$0.2375$5.00cb/claude-opus-5$0.2375$5.00cb/gpt-5.5$0.1125$5.00cc/claude-opus-4-6$2.50$5.00cc/claude-opus-4-7$2.50$5.00cc/claude-opus-4-8$2.50$5.00cc/claude-opus-5$2.50$5.00cx/gpt-5.5$0.1250$5.00cx/gpt-5.6-sol$0.1250$5.00cc/claude-opus-5-5$2.00$4.00ag/claude-sonnet-4-6$0.0075$3.00

Maximize every token you spend on AI.

Call 109 frontier models through one OpenAI-compatible API, billed per million tokens and routed to healthy capacity. No monthly plan, no commitment — pay for what you use, at a fraction of official pricing.

109
Models live
12
Model families
84.3%
Avg off official
1M
Max context
I want API access

Pay per token. Maximum value.

Top up a balance, grab one key, and point any OpenAI- or Anthropic-compatible client at AtmoRouter. Stop calling, stop paying.

0
total requests
0
tokens routed
$0.0000
saved vs official
0
accounts

Deposit with USDC on Solana or QRIS. No card on file, no recurring charge.

I want reliability

Real traffic, measured openly.

These numbers come straight from our request log — not a marketing page. Failed upstream requests are never billed to you.

—
success rate, 7d
—
median latency
0
models routable
0
upstream families

Per-family health appears here as soon as traffic flows.

See the catalogue

Model families behind the API

Loading capacity…

One API, every model behind it

AtmoRouter is an OpenAI-compatible gateway. One key, one request shape, capacity picked for you.

One key, all models

Drop-in replacement for OpenAI. Change the base URL, keep your SDK. Every model in the catalog answers to a single ar- key.

Routed to healthy capacity

Requests land on capacity that is up and within budget. Exhausted or degraded sources are skipped automatically — no manual re-rolls.

Exact per-token metering

Input and output priced separately and metered from the upstream usage report, not estimated from characters.

Streaming that streams

Full SSE passthrough, identical to OpenAI’s format, with usage on the final frame. Stop the stream, stop paying.

Keys with guardrails

Unlimited keys with per-key rate limits and model allowlists. Revoke one without touching the others.

Usage you can audit

Every request logged with tokens, latency and cost. Filter by model or window, export the raw data anytime.

Integration in one step

Set two environment variables, or pass the base URL to your SDK. Same request shape, same streaming, same response fields as OpenAI — your existing code keeps working.

Environment variables

Works with most coding agents and CLIs without touching code

bash
export OPENAI_BASE_URL="https://atmorouter.dev/v1"
export OPENAI_API_KEY="ar-xxxxxxxxxxxx"

# Any OpenAI-compatible tool now routes through AtmoRouter.
# Verify the key and see every model you can call:
curl $OPENAI_BASE_URL/models -H "Authorization: Bearer $OPENAI_API_KEY"

Python

Chat completions, streaming, tool calls

python
from openai import OpenAI

client = OpenAI(
    base_url="https://atmorouter.dev/v1",
    api_key="ar-xxxxxxxxxxxx",
)

res = client.chat.completions.create(
    model="cb/gpt-6-astra",
    messages=[{"role": "user", "content": "Explain PKCE."}],
)
print(res.choices[0].message.content)

Node.js

Drop-in replacement for the OpenAI client

javascript
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://atmorouter.dev/v1",
  apiKey: process.env.ATMOROUTER_API_KEY,
});

const res = await client.chat.completions.create({
  model: "cb/gpt-6-astra",
  messages: [{ role: "user", content: "Explain PKCE." }],
});

Streaming

SSE passthrough with exact token usage on the final frame

python
stream = client.chat.completions.create(
    model="cb/gpt-6-astra",
    messages=[{"role": "user", "content": "Count to five"}],
    stream=True,
)

for chunk in stream:
    delta = chunk.choices[0].delta.content if chunk.choices else None
    if delta:
        print(delta, end="", flush=True)

# The last frame before [DONE] carries usage:
#   {"usage": {"prompt_tokens": 9, "completion_tokens": 25}}
# Billing uses those exact counts, never a character estimate.

Base URL

https://atmorouter.dev/v1

One host for every model in the catalogue.

Auth header

Authorization: Bearer ar-…

x-api-key is accepted too.

Cost header

X-Atmorouter-Cost

Exact amount deducted, on every response.

Read the docs

Models reachable without buying the plan

Frontier models normally locked behind a monthly subscription, available per token. The price you see is the price you pay.

ModelFamilyContextInput $/MtokOutput $/Mtok
cb/gpt-6-astraCodeBuddy1M
$0.3750
$10.00
cache $0.0375
$1.88
$50.00
cc/claude-fable-5Claude Code—
$5.00
$10.00
cache $0.5000
$25.00
$50.00
cx/gpt-6-astraCodex272K
$0.2250
$10.00
cache $0.0225
$1.13
$50.00
ag/claude-opus-4-6-thinkingAntigravity1M
$0.0125
$5.00
cache $0.0013
$0.0625
$25.00
ali/kimi-k3Alibaba Cloud1M
$1.49
$3.00
cache $0.1492
$7.46
$15.00
alicn/kimi-k3ALICN1M
$0.0075
$3.00
cache $0.000750
$0.0375
$15.00
cbcn/kimi-k3CodeBuddy CN1M
$0.1200
$3.00
cache $0.0120
$0.6000
$15.00
cp/cline-pass/kimi-k3Cline Pass1M
$1.88
$3.00
cache $0.1875
$9.38
$15.00
zai/glm-5.3Z.AI1M
$0.0035
$1.40
cache $0.000350
$0.0110
$4.40
mm/MiniMax-M2.5MM205K
$0.000750
$0.3000
cache $0.000075
$0.0030
$1.20
Flagship model of each family

Pay per million tokens

No subscription, no seats, no minimum. Top up a balance and it drains only when you call.

Pay as you go

Per million tokens, in USD

  • One key for every model
  • Input and output priced separately
  • Real-time balance deduction
  • Stop calling, stop paying

Built for agents

Long-running, high-volume workloads

  • Full SSE streaming passthrough
  • Per-key rate limits and allowlists
  • Prompt caching where supported
  • Latency and token logs per request

Up to 100.0% off

Versus official list pricing

  • Frontier models without the plan
  • Transparent per-model rates
  • Failed requests are never billed
  • Prices refresh continuously

Deposit with USDC on Solana or QRIS. Full per-model price list lives in your dashboard.

How it works

From signup to first token in under a minute.

01

Create account

Sign up with an email. Nothing else required to look around.

02

Add balance

Deposit USDC on Solana or pay with QRIS. Balance drains per token, never per month.

03

Generate a key

Create an ar- key, set its rate limit and allowed models.

04

Start calling

Point any OpenAI-compatible client at atmorouter.dev/v1.

Transparent billing, no surprises

Metering comes from the upstream usage report, so the number you are charged is the number you consumed.

What you get

  • One key for the OpenAI-compatible endpoint
  • 109 models across 12 families
  • Real-time balance deduction per request
  • Full SSE streaming with usage on the final frame
  • Per-key rate limits and model restrictions
  • Usage dashboard with cost and latency breakdown

How billing works

  • →Deposit USDC on Solana, or top up with QRIS
  • →Input and output tokens counted separately
  • →Cached input bills at 10% of the input rate
  • →cost = ((in − cached) × input_price + cached × input_price × 0.10 + out × output_price) / 1M
  • →Balance deducted the moment a request settles
  • →A failed upstream request is never billed
  • →Empty balance blocks new calls, never overdraws

Start building today

Create an account, grab a key, and call 109 models in minutes.

Community

Join the AtmoRouter Discord

The fastest way to reach us. Ask integration questions, report a bad request, request a model, or get a heads-up before pricing changes land.

  • Integration help from us directly
  • Model requests and pricing feedback
  • Incident and maintenance notices
  • Early access to new features
Join the Discord

Free · no signup required