Getting started

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

python
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)
typescript
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
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:

response headers
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.