Documentation
Track AI usage from anything.
MyTokenTracker is free. Get your API token from Settings, send usage from any platform, and see cost by provider, model, platform, and use-case. This page covers every way to integrate.
Quickstart
- Create an account and copy your API token from Settings. It looks like
mtt_followed by 40 characters. - Run npx mytokentracker init (coding agents) or add a wrapper (any API). See Install by platform.
- That is it. Usage is captured automatically and shows up on your dashboard.
Tell your AI agent
Using a coding agent? Paste this and it will wire up reporting for you. Replace YOUR_TOKEN with your token from Settings.
Add MyTokenTracker to this project so our LLM usage and cost is tracked. Download https://mytokentracker.io/mtt.py (Python) or https://mytokentracker.io/mtt.mjs (Node), set the environment variable MTT_TOKEN=YOUR_TOKEN, and wrap our OpenAI and Anthropic calls with track_openai / track_anthropic (Python) or trackOpenAI / trackAnthropic (Node). Keep it non-blocking and fail-safe, and do not change the responses we return. It reports to POST https://mytokentracker.io/api/v1/events. Docs: https://mytokentracker.io/docs
Install by platform
Coding agents: see your cost first (no account)
npx mytokentrackerReads the usage logs your agents already keep locally and prints a 30-day cost table at API prices. Nothing leaves your machine.
Coding agents: sync to your dashboard
npx mytokentracker initAfter you create an account, it asks for your API token (hidden input), uploads the history your agents still hold, then syncs every 30 minutes (launchd on macOS, cron on Linux). On Windows, add a Task Scheduler job that runs npx -y mytokentracker sync --quiet. It retires the old curl hook automatically. Works with Claude Code, Codex, GitHub Copilot CLI, Antigravity, OpenCode, Amp, Qwen Code and more. Only daily totals per agent and model (token counts and cost) are uploaded, never prompts, code, or file names.
Any other app or provider
Use the SDK wrappers or post directly to the events API.
Logged in? Full steps are on the install page.
Concepts
- provider
- Who runs the model: anthropic, openai, google, mistral, xai, deepseek, cohere, and more.
- model
- The model id, for example gpt-4o or claude-sonnet-4-6.
- platform
- The tool or SDK that produced the usage: claude-code, cursor, openai-api, your app name.
- use_case
- What the call was for: coding, chat, agent, rag, batch.
- actual vs estimated cost
- Send total_cost if you know the real amount and it is stored as actual. Omit it and we estimate from our price catalog and label it estimated.
Events API
Token-authenticated. Send a single event or a batch of up to 500.
POST https://mytokentracker.io/api/v1/events
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json
Fields
| Field | Type | Required | Notes |
|---|---|---|---|
| provider | string | yes | anthropic, openai, google, ... |
| model | string | yes | e.g. gpt-4o |
| input_tokens | int | yes | prompt tokens |
| output_tokens | int | yes | completion tokens |
| cache_read_tokens | int | no | cached/read tokens |
| cache_write_tokens | int | no | cache-creation tokens |
| reasoning_tokens | int | no | reasoning / thinking tokens |
| total_cost | number | no | real cost; stored as actual. Omit to estimate |
| latency_ms | int | no | response time in ms (speed comparisons) |
| success | bool | no | did it succeed (cost-per-success) |
| quality_score | number | no | your eval/score scale (value-for-money) |
| status | string | no | ok / error / timeout |
| currency | string | no | default USD |
| platform | string | no | tool/SDK, e.g. cursor |
| use_case | string | no | coding, chat, agent, ... |
| session_id | string | no | group events |
| project | string | no | your project name |
| occurred_at | datetime | no | ISO 8601; default now |
| metadata | object | no | any extras you want to keep |
Example (curl)
curl -X POST https://mytokentracker.io/api/v1/events \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"provider":"openai","model":"gpt-4o","input_tokens":1200,"output_tokens":350,"platform":"my-app","use_case":"chat"}'Response: {"success":true,"created":1,"total_cost":0.0045}. Batch: send {"events":[ ... ]}. Full machine-readable spec at /openapi.json.
SDK wrappers
Drop-in helpers that read MTT_TOKEN from the environment, report usage in the background, and return the original SDK response untouched. They never throw into your code.
Python
curl -O https://mytokentracker.io/mtt.py
export MTT_TOKEN=YOUR_TOKEN
from openai import OpenAI
from mtt import track_openai
r = track_openai(OpenAI().chat.completions.create(model="gpt-4o", messages=[...]),
use_case="chat", project="my-app")Node
curl -O https://mytokentracker.io/mtt.mjs
export MTT_TOKEN=YOUR_TOKEN
import OpenAI from "openai";
import { trackOpenAI } from "./mtt.mjs";
const r = trackOpenAI(await new OpenAI().chat.completions.create({ model: "gpt-4o", messages: [...] }),
{ use_case: "agent" });Subscriptions & budgets
MyTokenTracker itself is free, with no subscription. The "subscription" features track your provider plan, so you can see how close you are to your limits.
- In Settings, pick your provider plan (for example Claude Pro or Max) and set a session and weekly budget.
- The dashboard shows your usage against those budgets, with a rolling session window and a weekly reset.
- Calibration: paste your provider-reported usage percentage and MyTokenTracker tunes its estimate to match, so the numbers track your real limits over time.
- API providers that bill per token do not have a fixed window. For those, send total_cost when you know it and the dashboard shows exact spend.
Community & privacy
The community dashboard shares, anonymized and in aggregate, what AI is costing everyone. It only ever shows combined totals, and it hides any provider, model, platform, or use-case shared by fewer than three contributors, so no individual can be identified.
Contribution is on by default and you can turn it off anytime in Settings. We never publish your name, your projects, your directories, or your own numbers.
Export & delete
Your data is yours. From Settings you can export everything as CSV or JSON, or permanently delete all of your usage data. Exports include provider, platform, model, use-case, tokens, cost, and cost type.
For machines
- /llms.txt: a concise, machine-readable integration guide for LLMs and agents.
- /openapi.json: an OpenAPI 3.1 spec for the events API. Generate a client, or hand it to a tool or agent.
FAQ
Is it really free?+
Yes. Free, forever. There are no paid plans.
Do I need to change my code?+
For coding agents, no: run npx mytokentracker init and it syncs the usage logs your agent already keeps. For other apps, add a wrapper or post to the events API.
What providers and models are supported?+
Any provider and any model. We price around 4,499 models and accept any provider/model string on the events API.
Will it slow down my app?+
No. The wrappers report in the background, swallow every error, and return the original response untouched.
How is cost calculated?+
If you send total_cost we store it as actual. Otherwise we compute it from our daily-synced price catalog and label it estimated.
Can an LLM set this up for me?+
Yes. Paste the prompt in Tell your AI agent, or point your agent at /llms.txt and /openapi.json.