Credits & Billing
How the credit system works, how credits are counted, and how to purchase more.
What is a credit?
One credit equals one translatable word. Word counting happens server-side, after variable tokenisation — meaning template placeholders like {{name}} or ICU tokens are stripped before counting. You are never charged for content that does not actually get translated.
How words are counted
Source string:
"Welcome back, {{name}}! You have {count} messages."
After variable tokenisation:
"Welcome back, [VAR0]! You have [VAR1] messages."
After stripping VAR tokens:
"Welcome back, You have messages."
Word count: 5 words = 5 credits per target languageCredits are multiplied by the number of target languages. Translating 5 words into 3 languages costs 15 credits total.
Purchase flow
- Log in to your PolyCLI dashboard and click Buy Credits
- You are redirected to the checkout page
- Complete the purchase
- Your credit balance is updated automatically and visible in the dashboard immediately
Credit check
Before calling provider, the /api/translate endpoint counts the words in your delta and compares them against your balance. If your balance is insufficient, the request returns HTTP 402 Payment Required with a message showing how many credits are needed. The CLI prints this error and exits without consuming any credits.
What does not consume credits
- Context analysis — the pre-translation
/api/analyzecall that runs once perpolycli runto extract domain context. This call is free. - Glossary tokens — terms in
glossary.doNotTranslateare stripped before word counting. You are never charged for protected terms. - Chunked requests — when a large delta is split into multiple chunks, total credit usage equals the word count of the original delta. Chunking adds no overhead.
Maximising your credits
The delta algorithm and sentence-level caching work together to minimise credit usage. For JSON files, only changed keys are sent. For Markdown, only changed sentenceswithin a paragraph are sent — unchanged sentences in the same block are reused from the cache at no cost. Keeping both .translator-lock.json and .polycli-md-cache.json committed to version control is the single most effective way to avoid unnecessary spending.
Current pricing
Starter Pack
€15.00
- ✓ 150,000 translated words
- ✓ Never expires
- ✓ Works for JSON and Markdown