Quickstart
Mint a key, swap one URL, make a call.
1. Get a key
Open the dashboard, connect a wallet holding USDC on Arc, choose a deposit and sign. The key is shown once, so store it. Prefer a terminal? See Prepaid keys for the CLI flow.
2. Chat completions
from openai import OpenAI
client = OpenAI(base_url="https://arcrouter.co/v1", api_key="arc_sk_...")
reply = client.chat.completions.create(
model="gpt-oss-120b",
messages=[{"role": "user", "content": "What is Arc?"}],
)
print(reply.choices[0].message.content)import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://arcrouter.co/v1", apiKey: process.env.ARCROUTER_KEY });
const reply = await client.chat.completions.create({
model: "gpt-oss-120b",
messages: [{ role: "user", content: "What is Arc?" }],
});curl https://arcrouter.co/v1/chat/completions \
-H "Authorization: Bearer $ARCROUTER_KEY" \
-H "content-type: application/json" \
-d '{"model":"gpt-oss-20b","messages":[{"role":"user","content":"hi"}]}' Streaming works the usual way: pass stream: true. Add stream_options: {"include_usage": true} if you want the token counts in the final chunk.
3. See what it cost
Every non-streaming response carries the exact charge:
X-ArcRouter-Charge-USDC: 0.000213 X-ArcRouter-Cache: MISS
Your balance and the last calls are on the dashboard or at GET /v1/keys/me.