Machines call us more than people do. The catalogue, the prices, the limits and the setup are endpoints an agent reads — and skills it installs.
Discover, price, call, account — then stop at the cap we enforce.
The cap is on the key, not in the agent's prompt. A loop that misbehaves runs out of allowance; it does not run up a bill.
curl -fsSL https://tokentoken.ai/\ skills/tokentoken.zip -o s.zip unzip s.zip -d ~/.claude/skills/
Teaches the agent the base URL, the model ids, how to read the price list, and how to keep itself inside a spend cap.
{
"tokentoken": {
"command": "npx",
"args": ["-y","@tokentoken/mcp"],
"env": {"TT_API_KEY":"tt-..."}
}
}
Tools for catalogue lookup, cost estimation, usage queries and key rotation.
GET /llms.txt GET /llms-full.txt GET /.well-known/ai-plugin.json
Every page in this site has a plain-text equivalent, so an agent reading our docs does not have to parse HTML.
Skill bundles and the MCP package ship alongside the API. Ask support@cflabs.ai for a format we do not publish yet.
| Endpoint | Why an agent wants it |
|---|---|
| GET /v1/models | Exactly the models this key may call, with context length, modality and source label |
| GET /v1/pricing | Current prices and the rate multiplier, with a version string to pin against |
| POST /v1/cost/estimate | What a call will cost before making it — for planning inside a budget |
| GET /v1/usage | Spend and token counts by key, model and day |
| GET /v1/balance | Remaining credits and the amount currently held by in-flight reservations |
| POST /v1/chat/completions | OpenAI-compatible, streaming and tool calls |
| POST /v1/messages | Anthropic Messages, same key |
Limits an agent cannot talk its way around, because we enforce them.
# One key per agent, scoped and capped POST /v1/keys { "name": "research-agent", "models": ["tt/glm-5.3"], "quota_usd": 25, "rpm": 120, "expires_at": "2026-12-01" } # Shown once, stored as a hash { "key": "tt-live-...", "prefix": "tt-...a91f" }