Which voice does my avatar speak with? Check voice.status is ready
Sume TTS speaks in an avatar's voice when voice.status is ready. List avatars, check voice.status, then send avatar_id or avatar_handle on the TTS request.
Your Sume avatar speaks through the TTS voice attached to it, and that voice is usable exactly when the avatar's voice.status is ready. List your avatars at GET /v1/avatar-1.0/avatars, check voice.status on the one you want, then send its avatar_id or avatar_handle on the TTS request. You never need to look up a raw voice id for this route.
Where do I read voice.status?
Each avatar summary in the list has a voice object with a status of processing, ready or failed. It is null for an avatar with no voice. The OpenAPI description says an avatar whose voice is ready is the selector that POST /v1/tts-1.0/generate resolves from avatar_id or avatar_handle, and calls this the public route to a TTS voice.
The list also takes a handle filter, with or without the @, and a status filter that accepts ready as an alias for completed jobs. That status is about the avatar job, so read voice.status on each result.
| Field | Value | What to do |
|---|---|---|
voice.status | ready | Use avatar_id or avatar_handle on TTS |
voice.status | processing | Wait, then list again |
voice.status | failed | This avatar cannot speak through TTS |
voice | null | The avatar has no voice |
How do I send the request?
Set avatar_handle (2 to 31 characters, optional @) or avatar_id at the top level of the body. If you also set voice.id, it must equal the avatar's resolved voice id, and if you set both avatar_id and avatar_handle, they must point to the same avatar; otherwise the request fails with 400. Set language for any non-English text.
curl "https://api.sume.com/v1/avatar-1.0/avatars?handle=your_avatar" \
-H "Authorization: Bearer $SUME_API_KEY"
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: avatar-voice-001" \
-d '{
"transcript": "Hello from my avatar.",
"avatar_handle": "@your_avatar",
"language": "en"
}'Can I make the voice through the API?
No. Voice cloning is done in the Sume app, not through the API; the API uses the voice that the avatar already has. If the voice is not ready, make or fix it in the app, then list the avatar again. Polling the TTS request itself follows Jobs and results.
Sources
Related posts
More in Developers
- YouTube captions.insert: 100 MB, 400 quota units, and an SRT build
YouTube captions.insert costs 400 quota units and takes a 100 MB file. Sume returns words and segments, not SRT, so here is the 20-line conversion to upload.
- YouTube notifySubscribers=false: uploading a Shorts backlog quietly
videos.insert takes a notifySubscribers parameter that defaults to true. Why to set it false when you upload a batch of Sume-made Shorts in one sitting.
- YouTube publishAt in the past publishes now: a guard for batches
The Videos resource says a past publishAt publishes the video immediately, and it works only on private videos. A Python guard for scheduled Shorts batches.
- YouTube search.list: 100 calls a day, and what Sume searches
search.list now has its own 100-calls-per-day bucket. What that means for finding reference Shorts, and why Sume trending search covers TikTok only.
Written by Sume