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

text
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 language

Credits are multiplied by the number of target languages. Translating 5 words into 3 languages costs 15 credits total.

Purchase flow

  1. Log in to your PolyCLI dashboard and click Buy Credits
  2. You are redirected to the checkout page
  3. Complete the purchase
  4. 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.

Credits never expire. A pack purchased today is still valid in two years.

What does not consume credits

  • Context analysis — the pre-translation /api/analyze call that runs once per polycli run to extract domain context. This call is free.
  • Glossary tokens — terms in glossary.doNotTranslate are 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
Buy credits →

Pro Pack

€39.99

  • ✓ 500,000 translated words
  • ✓ Never expires
  • ✓ Works for JSON and Markdown
Buy credits →