Skip to Content
GatewaysOpenRouterActivity & keys

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?

  1. Sign in at openrouter.ai 
  2. Open openrouter.ai/activity  (or Activity in the nav)
  3. Filter by API key, model, or date range
  4. 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 / viewWhat it shows
Model slugUpstream model that actually ran (after fallbacks)
CostCredits charged for the generation
API keyWhich key was used — isolate dev vs prod
Token countsPrompt, completion, cache read/write
TimingWhen the request completed (UTC)
Detail viewFull 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

SituationWhat Activity shows
Successful chat completionRow with model, cost, tokens
Rate-limit fallback to another modelActual model that served the request — may differ from client intent
In-flight requestNot listed until complete
Yesterday’s trafficCompleted UTC days; allow a few hours lag for aggregation
Embeddings / other modalitiesMay 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

SignalMeaning
High cost, low cached_tokensCold cache or unstable prefix — stabilize caching
cache_write_tokens greater than zeroFirst turn establishing cache — expect savings on follow-ups
Cost higher than token count suggestsPlatform fee on small requests + cache write charges on some providers

Per-key isolation

KeyPurposeCap
DevCline / Aider / OpenCode interactiveModerate limit
CIBots, eval scriptsLow cap, haiku-only allowlist
ProdApp trafficSeparate 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

SourceRole
OpenRouter ActivityBilling truth
opencode stats, Cline hints, Aider /tokensLocal 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
Last updated on