Every AI bill,
in one place.
Provider invoices, seat licences and metered usage, added up and checked against each other, day by day.
Tracks spend across the providers you already use.
One meter.
Three moves.
Measure every call, check it against what each provider bills, then act on what you find. These are the real screens.
Every call, priced as it lands.
Wrap the client you already use. Each request carries its model, tokens, cost and the tags you give it.
Checked against the invoice.
What your calls cost is set against what each provider bills, day by day. Where they disagree, you see the gap before month end.
Find the savings. Cap the spend.
Opportunities found in your own traffic, each with a confidence and a monthly value. Budgets warn before they break.
Spend by model, from the SDK
Anthropic: drift detected
~$1,420 a month, 98% confidenceThen see who spent it, and whether they paid for it.
Nimbus Logistics cost $6,840 to serve this month and lost money. Margin shows as a range while coverage has a gap.
Every screen
is the real app.
Keep scrolling to walk through it, or click a screen to jump to it.
Wrap it. Tag it.
Cap it.
Find the savings, cap the spend and decide who may call which model, from one place.
Two lines of code. Usage is read from the response you already get. No extra hop, no proxy.
Customer margin. Revenue against what each customer costs you to serve.
Budgets and monitors. Caps on any team, customer or environment, with alerts at 80% and on projection.
Coding agents. Claude Code, Codex, Cursor, Copilot, Devin and any OpenTelemetry tool.
Improvements. Found in your own traffic, each with a confidence.
Your engineers' AI tools too. Seats graded by use, so a dormant one shows before the renewal.
Drop it into
the client you have.
- SDK for TypeScript and Python. Wrap the client; usage ships in the background.
- Or point at the router. Change the base URL and get routing, fallbacks and caching too.
- Tag at the edge of a task. One action wraps every call inside it with the same customer and feature.
import OpenAI from "openai"; import { TokenMeterClient, wrapOpenAI, action } from "@tokenmeter/sdk"; const tl = new TokenMeterClient({ apiKey: process.env.TOKEN_METER_KEY! }); const openai = wrapOpenAI(new OpenAI(), tl); await action("generate-report", { customerRef: "acme", feature: "reports" }, async () => { await openai.chat.completions.create({ model: "gpt-4o-mini", messages }); // tagged customer_ref=acme, feature=reports });
import tokenmeter from openai import OpenAI tokenmeter.init(ingest_key="tl_live_...") client = tokenmeter.wrap(OpenAI()) with tokenmeter.action("generate-report", customer_id="acme", feature="reports"): client.chat.completions.create(model="gpt-4o-mini", messages=[...]) # tagged customer_ref=acme, feature=reports
# No SDK: send calls through the Token Meter router OPENAI_BASE_URL=https://router.tokenmeter.ai/v1 OPENAI_API_KEY=$TOKEN_METER_KEY # Every response says what the router did x-tokenmeter-routing-decision: ... x-tokenmeter-cache: hit
Month end,
with no surprises.
Priced on
what you measure.
No seats, no wrapper fee, no minimum. You pay on attributed requests, the ones Token Meter has actually measured.
What is Token Meter?
One place for every AI bill. It meters the calls your apps make, imports what each provider and seat vendor bills, adds it up with each provider counted once, and checks the two sides against each other day by day.
Do I need to route traffic through a proxy?
No. The SDK wraps the client you already use and reads usage from the response it already returns, then ships it in the background. The router is there if you want routing, fallbacks and caching as well.
Which providers does it cover?
OpenAI, Anthropic, Google Gemini, Amazon Bedrock and Azure OpenAI directly, plus OpenRouter, xAI, Mistral, Fireworks, Together AI, DeepInfra and the Vercel AI Gateway through the OpenAI-compatible wrapper. Any other bill comes in by CSV.
How does the invoice check work?
Metered cost is set against what the provider bills, from admin keys, AWS Cost Explorer, Azure Cost Management or a BigQuery billing export. A day where the two agree is confirmed, a day beyond the tolerance is flagged, and newer days wait for their invoice.
What counts as an attributed request?
A call Token Meter has actually measured and priced, with its tags. Imported invoice lines and seat licences do not count toward it.
Can it track Claude Code, Cursor and Copilot?
Yes. Coding tools report through their vendor analytics APIs, OpenTelemetry or the router. Seats are graded by use and agent spend sits beside your API spend, by team.
Does it support SSO?
Yes, SAML and OpenID Connect on Scale and Enterprise team workspaces, with domain verification and just-in-time membership.
