Polly async needs an S3 bucket; Sume gives a status URL and webhook

Polly's StartSpeechSynthesisTask writes audio to your S3 bucket and can notify an SNS topic. Sume TTS returns a status URL, or a signed webhook on completion.

4 min readSume
All posts

Amazon Polly's asynchronous synthesis queues your text, then "uploads the resulting speech or speech marks stream directly to your (required) Amazon Simple Storage Service (Amazon S3) bucket" and can tell you through an optional SNS topic. It handles up to 100,000 billable characters. Sume TTS 1.0 needs no bucket: the job returns a status_url and result_url, and a webhook_url gets a signed terminal event.

Polly's behavior is from its long audio files page, read 2026-10-01; Sume's from the OpenAPI schema behind the API reference.

What do you set up on each side?

Polly needs cloud storage and permissions; Sume needs a URL.

Async speech jobs, read 2026-10-01.
ItemPolly StartSpeechSynthesisTaskSume TTS 1.0
Output locationYour S3 bucket, requiredSume job result
Completion signalOptional SNS topic messagePoll status_url, or signed webhook
Text limit100,000 billable characters20,000 characters
SetupS3 bucket, IAM policy, optional SNSAPI key, optional HTTPS callback URL

What can the Sume webhook do and not do?

Delivery is terminal-only: job.completed, job.failed and job.canceled. There are no progress or partial callbacks, so keep status_url polling as a backup. The callback URL must be public HTTPS; localhost, private-network and non-HTTPS URLs are rejected.

Do I lose anything by dropping the bucket?

The page notes you can keep the Polly output encrypted in S3 with AES-256 under your own bucket policy. A Sume result is hosted by Sume instead. If your rules require the file to land in storage you own, copy it from the result URL after the job completes.

How do I submit with a webhook?

Sending a webhook URL without a mode selects webhook mode.

curl -X POST https://api.sume.com/v1/tts-1.0/generate \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: article-9921" \
  -d '{
    "transcript": "Read this article aloud.",
    "avatar_handle": "@narrator",
    "webhook_url": "https://example.com/hooks/tts"
  }'

Sources

Related posts

More in Developers

All Developers posts

Written by Sume