OpenRouter Activity — usage, costs & API keys
The OpenRouter Activity page is at openrouter.ai/activity . It is billing truth for OpenRouter usage: model slug, cost in credits, API keys, cache fields, and per-generation token breakdown. Use it to answer “what did OpenRouter charge?” when client telemetry disagrees.
Hub: Tokenminning with OpenRouter.
What is the OpenRouter Activity page?
Activity is OpenRouter’s request log and spend dashboard. Each row is a completed generation with metadata (model, cost, timing, API key). Detail view adds token breakdown including cached_tokens and cache_write_tokens from prompt caching.
Activity does not store full prompt text in the list view — it is for metering and debugging routing, not prompt replay.
How do I access OpenRouter Activity?
- Sign in at openrouter.ai
- Open openrouter.ai/activity (or Activity in the nav)
- Filter by API key, model, or date range
- Click a row’s detail view for token breakdown including cache metrics
Export CSV or PDF for weekly reviews — group by Model or API Key to find dominant spend.
If you searched for https://openrouter.ai/activity, that is the official destination — this page explains what you will find there and how to use it alongside client-side telemetry.
What information does Activity contain?
| Field / view | What it shows |
|---|---|
| Model slug | Upstream model that actually ran (after fallbacks) |
| Cost | Credits charged for the generation |
| API key | Which key was used — isolate dev vs prod |
| Token counts | Prompt, completion, cache read/write |
| Timing | When the request completed (UTC) |
| Detail view | Full usage object, cache discount, generation ID |
For one expensive call, fetch GET /api/v1/generation?id=... with the generation ID from the detail view.
Request visibility and common gaps
| Situation | What Activity shows |
|---|---|
| Successful chat completion | Row with model, cost, tokens |
| Rate-limit fallback to another model | Actual model that served the request — may differ from client intent |
| In-flight request | Not listed until complete |
| Yesterday’s traffic | Completed UTC days; allow a few hours lag for aggregation |
| Embeddings / other modalities | May appear under separate endpoints — check OpenRouter docs for coverage |
Activity shows frontier model, client shows haiku — fallback succeeded on a rate limit. Activity records the model that actually ran.
Cost, tokens, and cache
| Signal | Meaning |
|---|---|
High cost, low cached_tokens | Cold cache or unstable prefix — stabilize caching |
cache_write_tokens greater than zero | First turn establishing cache — expect savings on follow-ups |
| Cost higher than token count suggests | Platform fee on small requests + cache write charges on some providers |
Per-key isolation
| Key | Purpose | Cap |
|---|---|---|
| Dev | Cline / Aider / OpenCode interactive | Moderate limit |
| CI | Bots, eval scripts | Low cap, haiku-only allowlist |
| Prod | App traffic | Separate from coding agents |
Rotate keys when a tool leaks into the wrong environment.
Analytics API
For programmatic spend reviews, use the Analytics API with a management key :
curl "https://openrouter.ai/api/v1/analytics/query" \
-H "Authorization: Bearer $OPENROUTER_MANAGEMENT_KEY" \
-H "Content-Type: application/json" \
-d '{
"metrics": ["cost", "prompt_tokens", "completion_tokens"],
"dimensions": ["model"],
"filters": [],
"start_time": "2026-01-01T00:00:00Z",
"end_time": "2026-01-31T23:59:59Z"
}'Pass workspace_id to scope results to one workspace.
Reconcile with client telemetry
| Source | Role |
|---|---|
| OpenRouter Activity | Billing truth |
opencode stats, Cline hints, Aider /tokens | Local trends |
GET /api/v1/generation?id=... | One expensive call |
After a heavy week: which key and model slug moved most? Split keys if one agent consumed the pool.
Organization accounts
Shared credit pool — Activity shows all members’ metadata (model, cost, timing) but not prompt text. Per-developer keys improve cost attribution.
Spending guardrails
- Set spending limit on each key at creation
- Org-level alerts before credits deplete — notifications
- Block CI keys from frontier slugs in client allowlists
- Weekly CSV export for cost attribution by model and key
Related
- OpenRouter hub
- Prompt caching — inspect cache in Activity detail
- Guardrails
- Model routing
- Usage accounting