Sume TTS rate math: 38 millionths a character to $0.0475 per 1,000
How the TTS Router catalog's 38 micro-dollars per character, times Sume's 1.25 margin, becomes $0.0475 per 1,000 characters, and how to check it yourself.

Sume's TTS Router catalog lists a list price of 38 millionths of a dollar per character. Multiplied by the 1.25 standard margin that is 47.5 millionths, or $0.0475 per 1,000 characters, rounded up to a whole cent per job. You can read the number yourself from the catalog endpoint instead of trusting a blog post.
Where each number comes from
The router docs describe each catalog row as character-metered with the TTS 1.0 book: provider list micros times 1.25, ceil to cents. The catalog item carries pricing.list_usd_micros_per_character, a billable_margin string and a billable_formula. A micro-dollar is a millionth of a dollar.
| Field | Value | Meaning |
|---|---|---|
| list_basis | per_character | Metered on characters, not seconds |
| list_usd_micros_per_character | 38 | $0.000038 per character at list |
| billable_margin | 1.25 | Sume's standard margin |
| Public rate | 47.5 micros per character | $0.0475 per 1,000 characters |
| Per job | ceil to cents | A 1,000-character job bills 5 cents |
Check it on your own account
Call GET /v1/tts-router/models for the catalog, or GET /v1/tts-router/models/{model_id} for one row. An unknown model id returns 404. Multiply list_usd_micros_per_character by billable_margin and by your character count, divide by one million, and round up to the cent. If the catalog ever changes its margin, the endpoint is where you will see it first, because the catalog publishes the margin the reserve really charges.
A quick calculation
For a 6,000-character script: 6,000 times 47.5 millionths is $0.285, which rounds up to 29 cents. For 20,000 characters the figure is $0.95, which is exactly the 95-cent maximum a single job can bill. The minimum is one cent, so a one-word test line costs a cent, not a fraction.
If your own spreadsheet disagrees by a cent, check two things: that you counted spaces and punctuation, and that you rounded each job up rather than rounding the total.
What it does not tell you
The catalog shows price, not quality. All five seed ids (sonic-3.6, sonic-3.5, sonic-3, sonic-latest and sonic-preview) share the same per-character figure, so price cannot choose between them for you. The TTS 1.0 route always uses sonic-3.6 and takes no model field.
Sources
Related posts
More in Developers
- Preview Sume TTS sentence ids, lengths and job cost before you submit
A short Python script that splits a script like Sume's source API, groups sentences under 20,000 characters and prices each job at $0.0475 per 1,000 characters.
- Why Sume's video models list shows 11 ids, not 12
Docs describe 12 video router ids, but GET /v1/videos/models can return 11. higgsfield-genjutsu lists only when its provider is configured. Check yours.
- Sume waitForJob pollInterval is a floor; next_poll_after_seconds wins
waitForJob never polls faster than pollInterval, and a longer next_poll_after_seconds from the server raises the gap. Defaults, timing table, sample.
- Sume webhook fails the 300-second window: find the clock drift
A valid Sume signature still fails if your server clock is more than five minutes off. Tell drift from a bad secret with a small Python check.
Written by Sume