Estimate from your real usage.

Most folks size their monthly offset by picking a band (Casual / Worker / Agentic / Extreme). Connecting an admin key is the optional accuracy upgrade: we sample 90 days of your real usage and project it to a monthly estimate so the number is sharper than a tier pick. We use it once, not as a live tracker, ongoing token-by-token measurement is on the roadmap. Every connector reads the vendor's Platform / Admin API; we never see prompts or completions. Below is every source we support today plus the ones queued up next, with the exact API surface area we touch and how your credentials are stored.

Live tracking, soon. The current sampler is an estimator, not a meter. Real-time, per-request tracking across Claude, Codex, Cursor, and Geminiis on the near-term roadmap, but it needs partnerships with each foundation-model company so the data flows live to a third party. We're actively pursuing those conversations; if you can help, email partnerships@tokenoffset.com.

Platform usage vs. consumer apps

Every vendor we support runs two distinct product surfaces: a Platform / Developer API (the thing you call with sk-ant-*, sk-*, or a GCP service-account JSON) and their consumer apps (Claude.ai, Claude Code, ChatGPT, the Codex CLI/IDE, the Gemini app, Cursor Pro / Team seats). Today only the Platform API surfaces expose machine-readable usage; the consumer apps don't.

That means a connector here only covers traffic that went through the Platform API. Specifically, the following surfaces are not covered yet. Token Offset has no way to measure them until each vendor ships a usage endpoint for them:

Anthropic · not covered

  • Claude.ai chat
  • Claude Pro / Max / Team subscriptions
  • Claude Code (CLI + IDE plugins)

OpenAI · not covered

  • ChatGPT (Free / Plus / Pro / Team)
  • Codex CLI
  • Codex in the IDE

Google · not covered

  • Gemini app (gemini.google.com) chat
  • Gemini Advanced / Google One AI Premium
  • Per-personal-account AI Studio usage

Cursor · not covered

  • Personal / Pro Cursor seats (Enterprise admin API only)
  • Cursor.ai chat for non-enterprise accounts
Push the vendors to fix it. The fastest way we get consumer-app and personal-account coverage is for users to ask for it directly. Open a request with Anthropic, OpenAI, Google, or Cursor. The more requests they get, the more likely a usage API ships.

Claude Platform API

Live

Anthropic exposes account-wide Claude API usage through its Admin API. To read it we need an Admin API key, a key that starts with sk-ant-admin… and can only be minted by an organization admin. (Standard sk-ant-api03… keys won't work, they can't read org-wide usage.)

  1. 1Visit console.anthropic.com → Settings → Admin Keys.
  2. 2Click Create Key. Name it something memorable like tokenoffset-readonly.
  3. 3Copy the key: it's shown exactly once. If you lose it you'll have to create a new one.
  4. 4In Token Offset, open Settings → Estimate sources, pick Anthropic, and paste the key. We validate it against the Admin API on submit; if anything is wrong, you'll see the error inline.
Storage.The plaintext key never lives on disk. We encrypt it with AES-256-GCM and a server-side key (set as a Convex env var) before storing the ciphertext alongside a randomized IV. The plaintext only ever exists transiently in memory while we're calling Anthropic on your behalf.

What we read (and don't)

We call exactly three Admin API endpoints:

  • GET /v1/organizations/me , to verify the key and pick up your org name for the connection label.
  • GET /v1/organizations/usage_report/messages , daily token counts (input, output, cache reads, cache creation) grouped by model, service tier, and context window. We sample 90 days and project to a monthly estimate.
  • GET /v1/organizations/cost_report , daily provider spend grouped by description (model, tier, token type), so the projected estimate is grounded in what you actually paid Anthropic over the window.

That's it. We never call the Messages API; we don't see your prompts, your completions, or the contents of any conversation. Anthropic's Admin API doesn't expose them to anyone, including us.

Consumer Claude surfaces are not covered. Claude.ai chat, Claude Pro / Max / Team subscription usage, and Claude Code (CLI + IDE plugins) are not exposed by any Anthropic API today. If you want them covered, ask Anthropic to ship a consumer usage export. The moment they do, we'll wire it up.

Refresh cadence

On first connect we pull 90 days of history in the background , usually done within a minute or two , and project it to a monthly estimate. After that the sample refreshes quietly once per week on Sundays at 08:00 UTC so the projected number on your dashboard reflects how your usage is trending. You can re-sample anytime from Settings → Estimate sources. The dollar amountwe charge for your offset only updates when you explicitly adopt the new estimate, your billing doesn't drift behind your back.

What we save and what we do with it

For every connection we keep the daily token counts and cost figures we sample, the running 90-day projection, and the timestamp of each sample. We also keep the choices you make on the offset itself, your tier band (Casual / Worker / Agentic / Extreme), any custom amount you set, and whether you opted into the sampled estimate. None of this includes prompts, completions, or conversation content; the vendor admin APIs simply don't expose them.

We use that data three ways. First, to render your dashboard and bill the right amount. Second, to keep our published environmental coefficients and tier midpoints honest, the more real-usage samples we have, the better we can calibrate the bands shown on /docs/methodology. Third, we may share aggregated, de-identified insights (e.g. "agentic-band median tokens grew 18% quarter over quarter") with research, sustainability, and partner initiatives that Token Offset, in its sole discretion, determines to be aligned with the platform's mission. Identifiable data isn't sold; the full specifics live in our Privacy Policy.

OpenAI Platform API

Live

OpenAI exposes per-organization Platform API usage through their Admin Usage endpoints. To read it we need an Admin API key, a key that starts with sk-admin-… and can only be minted by an organization owner. (Standard project-scoped sk-… keys won't work, they can't read org-wide usage.)

  1. 1Visit platform.openai.com → Settings → Admin Keys.
  2. 2Click Create new admin key. Name it something memorable like tokenoffset-readonly.
  3. 3Copy the key: it's shown exactly once. If you lose it you'll have to create a new one.
  4. 4In Token Offset, open Settings → Estimate sources, pick OpenAI, and paste the key. We validate it against the Admin Usage endpoint on submit; if anything is wrong, you'll see the error inline.

What we read

We call exactly two Admin Usage endpoints:

  • GET /v1/organization/usage/completions , daily input / cached / output token counts grouped by model, service tier, and batch flag.
  • GET /v1/organization/costs , daily provider spend grouped by line item. We sample it alongside the token counts so the projected monthly estimate is grounded in what you actually paid OpenAI over the window.
Storage. Same model as Anthropic. The plaintext key never lives on disk; we encrypt it with AES-256-GCM and a server-side key before persisting the ciphertext.
ChatGPT and Codex are not covered.ChatGPT (Free / Plus / Pro / Team), the Codex CLI, and Codex in the IDE all run on consumer infrastructure that OpenAI doesn't expose through any usage API. Ask OpenAI to add usage exports for those surfaces and we'll wire them in when they ship.

Google Gemini API

Coming soon

Google's Gemini API and Vertex AI both expose usage and cost only through Google Cloud Monitoring and the Cloud Billing API, both of which require a GCP service-account JSON rather than the paste-an-API-key flow we use for Anthropic and OpenAI. There is no per-personal-account "Gemini admin key" that returns daily token counts; AI Studio's personal usage dashboard is HTML-only and not exposed via any public API.

What we're waiting on. Either (a) an official Gemini Admin API key that returns daily token counts the way sk-ant-admin… and sk-admin-… do today, or (b) an OAuth2 flow we can wrap so users don't have to upload a service-account JSON. The moment either lands we'll mirror the Anthropic / OpenAI walkthrough here.
Personal Gemini surfaces are not covered. The Gemini app at gemini.google.com, Gemini Advanced, and Google One AI Premium have no usage export at all today. Ask Google to ship one and we'll wire it up.

Cursor Team API

Coming soon

Cursor's agentic and Composer workflows are the largest single source of per-developer token usage on the market, see the methodology page for why. Cursor exposes per-team spending through the Team Admin API ( POST /teams/spend, /teams/daily-usage-data), but the API is gated to Enterprise plans only.

What we're waiting on.Cursor opening the Admin API to Pro and Team-tier customers. Today we can wire it up for Enterprise admins on request, contact us if that's you. Until that ships for everyone, Cursor traffic still shows up in Token Offset via the underlying Anthropic / OpenAI connection: we just can't tag it as "Cursor" specifically.
Personal / Pro Cursor seats are not covered. Solo and Pro plans have no admin endpoint; ask Cursor to expose individual usage and we'll wire it up the week it ships.