Reduce your Claude bill by up to 50%*

One extra API call shrinks your logs, JSON, and tool schemas before they get processed. Nothing summarized, nothing lost.

Less than $1.63/day — or try free, no card

* Based on in-house testing on structured payloads — tool/MCP schemas, JSON, and logs. Your reduction depends on your content mix.

Works with

Claude ChatGPT Gemini DeepSeek Llama Mistral Grok n8n

Text in, text out. We don't call the model.  ·  Free key, no card.

Savings calculator

Calculate your monthly savings

Estimate. Assumes ~60% of your spend is machine content — logs, JSON, and tool/MCP schemas, typical for API and agent workloads — and our in-house-measured reduction on that content. Prose-heavy usage saves less.

Estimate, not a receipt. Pay only after /v1/optimize shows WIN on your files.

Which providers do you use?

Current monthly AI spend $500
$200 $5,000

You spend about $500/mo and cut about $123/mo off your bill — around $1,476 a year.

Optimized bill

$377

You save / mo

$123

You save / yr

$1,476

Live demo

Watch a payload shrink

Click a sample for real token counts plus a same-question check on the full vs shrunk payload (GPT-4o-mini). Paste your own for the stats — no signup.

Samples run instantly. Paste your own below and hit Run to try it live — 4 free/hour, no signup.

Edit the box or paste your own to run it live

Samples are unlimited · 4 live runs left this hour

Built for

Who it's for

AI agencies running client workflows

n8n / Make.com automators

Claude Code / Cursor power users

Teams shipping AI agents

Anyone piping logs or JSON into an LLM

Wall of Love

What real customers say

The difference

What Claude Code actually receives

WITHOUT SAVETOKEN — 1,139 tokens

Traceback (most recent call last):
  File ".venv/.../starlette/routing.py", line 693, in __call__
    await route.handle(scope, receive, send)
  File ".venv/.../starlette/routing.py", line 285, in handle
    await self.app(scope, receive, send)
  File ".venv/.../fastapi/routing.py", line 301, in app
    raw_response = await run_endpoint_function(
  File "main.py", line 166, in optimize
    resp = await asyncio.wait_for(_render(req), ...)
  File "compiler.py", line 116, in compile_text_to_image
    pages = compile_text_to_pages(text, out_dir)
OSError: cannot open resource

WITH SAVETOKEN — 630 tokens (-44.7%)

Traceback (most recent call last):
  File "main.py", line 166, in optimize
    resp = await asyncio.wait_for(_render(req), ...)
  File "compiler.py", line 116, in compile_text_to_image
    pages = compile_text_to_pages(text, out_dir)
  File "compiler.py", line 89, in compile_text_to_pages
    font = _load_font()
  File "compiler.py", line 48, in _load_font
    return ImageFont.truetype(str(FONT_PATH), size=FONT_SIZE)
OSError: cannot open resource

Library-internal frames dropped. App frames and the exact root-cause line survive byte-for-byte.

Try it now

Paste into Claude Code, Cursor, or any agent

Use SaveToken to show me real cost savings on my own file.

1. Get a free key: curl -X POST https://api.savetoken.org/v1/keys/free
2. Ask me for a log, JSON, or tool-schema file I actually have.
   If I have no real file, GET https://savetoken.org/demo-samples.json and POST the Tool schema sample (id: schema). Never invent mixed JSON or a dummy traceback.
3. Call POST /v1/optimize with that file's content and my new key.
4. Print a receipt: tokens_in, tokens_out, % reduction, dollars_saved, and verdict.
5. If verdict is NEUTRAL, say so plainly — don't round it up to a win.

Works with any agent that can make an HTTP call. No SDK required.

n8n

Drop it into an n8n workflow

One HTTP Request node before your OpenAI / Anthropic node:

Method   POST
URL      https://api.savetoken.org/v1/optimize
Header   Authorization: Bearer YOUR_KEY
Body     { "text": "{{ $json.log }}" }

Then point your model node at {{ $json.optimized }} instead of the raw text. Nothing else changes.

Mechanism

How it actually works

Three deterministic mechanisms. We pick the one that fits your payload shape, run a programmatic proof, and only ship a smaller version when the proof passes. No pixel rendering, no guessing, nothing paraphrased.

Uniform JSON arrays

A repeated key set is sent once, not once per row. Round-trip equality checked before shipping.

Tool / MCP schemas

Minified losslessly by default. Descriptions trimmed only with logged proof your agent still picks the right tool.

Logs & tracebacks

Library-internal frames dropped. App frames and the root-cause line survive byte-for-byte.

curl -X POST https://api.savetoken.org/v1/optimize \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text": "<your dense JSON / log / tool schema>"}'

# -> {"optimized": "...", "verdict": "WIN", "dollars_saved": 0.014, ...}
# Send `optimized` to Claude/OpenAI/whichever provider you already use.
# We never see your LLM key and never call the model ourselves.

Comparison

Why not just...

Approach What it costs you SaveToken
Summarize the prompt Meaning drifts — the model answers a slightly different question Structural re-encoding only; nothing paraphrased or generated
Truncate the payload Real data silently disappears Round-trip proof required — every record survives, checked programmatically
Route to a cheaper model Answer quality drops with the model tier Same model, same provider — we only shrink what you send it
Run a free open-source tool You install, host, and keep it updated — and unmaintained repos fall behind Hosted, maintained, and continuously improved — one API call, nothing to run

Support

FAQ

Does this call the model for me?

No. We return a smaller version of your text; you send that to Claude/OpenAI/whichever provider you already use, with your own key.

Will this ever make my bill worse?

Every transform is checked before it ships — a request that can't be safely reduced is marked NEUTRAL and passed through unchanged, never inflated.

What content types does this help with?

Machine-generated content — JSON arrays, tool/MCP schemas, logs and tracebacks. Human prose sees little to no benefit; we don't claim otherwise.

Do you see my LLM API key or my data content?

We process the text you send us to produce the optimized version; we never see or store your downstream LLM provider key.

What about privacy — do you store my data?

No. We log token counts, dollars saved, and verdict per call — never the request or response text itself.

Does it work with non-Claude LLMs?

Yes — since we never call the model ourselves, the optimized text works with Claude, ChatGPT, Gemini, or anything else you send it to.

Does it break Claude's / OpenAI's prompt caching?

No — the stable prefix (system prompt, tool definitions) is marked by you and never touched. Only the dynamic tail gets compressed, so cached reads stay cheap.

Is there a free trial?

Yes — 100 free calls/day, no card required.

Can I cancel?

Anytime. Pick monthly, quarterly, or annual billing at checkout — cancelling stops future billing, no lock-in.

Get started

Cut your token bill

Free

$0 · 100 calls/day, no card

For a side project or a low-volume workflow

Get a free key

Pro

$49 / mo

For a solo developer or agency owner whose LLM bill already beats $49/mo

See plans