LLM-quality translation you only pay for once.
Content-hash caching means every repeat translation is instant and free — perfect for menus, catalogs, product feeds and CMS content that changes rarely but is read in every language, constantly.
Open dashboard →
Sign up, manage projects & glossaries, try translations live — no curl required.
How it works
Every string is hashed as sha256(sourceText | targetLang | glossaryVersion). The first request hits Claude (Haiku) and is metered; every identical request after that is served from your project cache — 0 provider calls, 0 metered characters. Edit your glossary and the version bump naturally re-translates only what you ask for next.
First call in 60 seconds
# 1. sign up (14-day free trial, no card)
curl -s -X POST http://localhost:5104/api/auth/signup \
-H 'content-type: application/json' \
-d '{"email":"you@company.com","password":"a-strong-password"}'
# 2. mint an API key (returned once)
curl -s -X POST http://localhost:5104/api/keys \
-H "Authorization: Bearer $TOKEN" -H 'content-type: application/json' -d '{"name":"prod"}'
# 3. create a project + translate
curl -s -X POST http://localhost:5104/v1/projects \
-H "Authorization: Bearer $API_KEY" -H 'content-type: application/json' -d '{"name":"Menu"}'
curl -s -X POST http://localhost:5104/v1/translate \
-H "Authorization: Bearer $API_KEY" -H 'content-type: application/json' \
-d '{"projectId":"'$PROJECT'","targetLang":"fr","items":[{"id":"1","text":"Grilled salmon with lemon butter"}]}'
# → run it again: "cached": true, "charsTranslated": 0
API reference
| Endpoint | Auth | What it does |
|---|---|---|
| POST /api/auth/signup · /login | — | Create an account / get a dashboard JWT |
| GET /api/auth/me | JWT | Current account |
| POST · GET · DELETE /api/keys | JWT | Mint, list (masked), revoke API keys |
| GET /api/usage | JWT | This month's metered characters vs plan limit |
| POST /api/billing/checkout · /portal | JWT | Subscribe / manage billing (Stripe or simulated) |
| POST · GET · PUT · DELETE /v1/projects | API key | Projects with source language + glossary |
| POST /v1/translate | API key | Translate up to 100 items — cache first, provider for misses only |
| POST /v1/detect | API key | Detect the language of a text (free) |
| GET /v1/projects/:id/entries | API key | Inspect cached translations + hit counts |
| DELETE /v1/projects/:id/cache | API key | Invalidate the cache (optionally per language) |
| GET /api/health | — | Service + database status |
Pricing (CAD / month)
Trial
$0 14 days
- 200k chars/mo
- All features
- No card required
Starter
$29
- 200k chars/mo
- Unlimited cached reads
- Glossaries included
Growth
$79
- 1M chars/mo
- Unlimited cached reads
- Priority support
Scale
$199
- 5M chars/mo
- Unlimited cached reads
- Volume glossaries
Only characters translated by the LLM are metered. Cache hits are free on every plan — that's the point.