Agent-readable docs index: /llms.txt. Download /docs.zip to grep all markdown files locally.

Credits & Character Counting

Vakyam credits are denominated in Unicode characters. One credit equals one Unicode character. Your balance comes from your plan's monthly allotment, plus any extra credits you buy on top.

Monthly allotments

PlanCharacters per monthApprox. audio
Free10,000~13 minutes
Developer7,50,000~1,000 minutes
Growth75,00,000~10,000 minutes
Audio length is approximate and depends on speaking rate, language, and punctuation.

Buying extra credits

You can purchase additional characters on top of any plan at any time:
UsagePrice
Per 1,000 characters₹0.75
That is ₹0.00075 per character. Extra credits are added to your balance and consumed the same way as plan credits. They do not change your rate limits or concurrency — only your available character balance.
When the balance is used up, synthesis requests fail until you buy more credits, upgrade your plan, or the next billing period restores your monthly allotment.

How characters are counted

Characters are counted as Unicode code points, not bytes. This is deliberate: in Indian scripts a single aksara can occupy several UTF-8 bytes, but it counts as one character. The counting is equivalent to len(text) on the Unicode string.
"வணக்கம்" → counted by character, not byte length
So you are billed fairly regardless of the script you synthesize.

Character limit per request

Each request may contain at most 3000 Unicode characters. Requests above the limit fail with 422 and the code text_too_long. This per-request cap is independent of your plan's monthly allotment and any purchased credits.

Insufficient credits

If your remaining balance is lower than a request's character count, the request fails with 402 Payment Required and the code insufficient_credits:
{ "error": { "status_code": 402, "code": "insufficient_credits", "message": "Your account has 120 credits remaining but this request requires 250. Top up your balance to continue." } }
Buy extra credits, upgrade your plan, or wait for the next billing period to restore characters.

Knowing how much you used

Both the JSON and streaming responses report consumption:
  • POST /v1/tts/generate returns characters_used in the JSON body.
  • POST /v1/tts/stream returns it in the X-Characters-Used response header.
  • The WebSocket end_of_utterance message includes characters_used per sentence.