Text to speech failed request: charged? Sume dry_run and cap

A TTS job that fails on Sume's duration limit captures no credit. Use dry_run to preview cost and max_spend_usd to cap it before a paid request.

4 min readSume
All posts

On Sume, a text-to-speech job whose audio runs past 1200 seconds fails with tts_duration_exceeded and no credit is captured. More generally, Sume reserves the estimate on submit, captures it on success, and releases or refunds it for failed jobs. Preview a request with dry_run and bound it with max_spend_usd.

Sume facts are from the OpenAPI TTS schema, the MCP tts_create description and the docs on generation admission, read 2026-09-30.

What does Cartesia say about failed requests?

Its pricing page says credits are only used by successful requests and errors will not consume credits, with standard TTS at approximately 1 credit per character. That is Cartesia's own billing, not a statement about Sume.

What does a failed Sume TTS job cost?

Billing behavior per the Sume docs and schema, read 2026-09-30.
SituationWhat the docs say
Audio over 1200 sFails with tts_duration_exceeded (no credit capture)
Failed job or failed queue admissionReservation is released or refunded where applicable
SuccessReserved usage is captured
RatePaid per transcript character: $0.0475 per 1,000 characters

How do dry_run and max_spend_usd work?

The MCP tts_create tool takes {idempotency_key, payload, dry_run?, max_spend_usd?}. The description says dry_run previews cost and max_spend_usd caps it. The idempotency_key is required, and the transcript is 1 to 20000 characters.

Run dry_run first on a long script, then send the paid call with a max_spend_usd just above the preview.

How do I avoid paying twice for a retry?

Reuse the same idempotency key when a submit is retried, and do not submit a new paid job for the same intent just because a wait ran out. Long scripts should be split below the 1200-second ceiling; see TTS 1200-second limit.

Sources

Related posts

More in Pricing

All Pricing posts

Written by Sume