Who can use them
Your voices and avatars belong to your Boson account, not to the key that uploaded them. Every key you create on the API Keys page can list, use and delete them, so deleting or rotating a key loses nothing. A Realtime client secret acts for the key that created it. A key that Boson issued to you directly, rather than one you created on the API Keys page, keeps its own voices and avatars. Other accounts cannot see or use your voices and avatars. Boson’s preset voices and avatars are available to everyone and cannot be deleted.Limits
Presets and deleted assets do not count toward the per-account limit. Uploading a file you already have returns the existing asset and does not count again, so a setup script is safe to re-run. A new upload past the limit returns
403 quota_exceeded.
Voices
Create a voice
Send the reference audio with a verbatim transcript inref_text, and an optional title. ref_audio can be a URL, base64, a data: URI, or a file in a multipart/form-data request. We recommend 5 to 30 seconds of clean speech from one speaker. Longer audio is cut to 30 seconds when it is used, and its transcript is then ignored.
title and ref_text. Pass the voice_id to voice in POST /v1/audio/speech; Voices has complete examples.
List, get and delete voices
Avatars
Upload an avatar
Send the image inline, either as a file in amultipart/form-data request or as base64 or a data: URI in a JSON body, with an optional name (up to 256 characters). URLs are not accepted. Use a clear photo of one person facing the camera.
Response
width and height describe the stored image. Uploading the same image again returns the avatar you already have. An image refused by the content check returns 400 content_policy_violation.
To start a session with the avatar, pass its avatar_id to POST /v1/avatar/sessions; see Realtime sessions. POST /v1/videos does not take an avatar_id: send the image itself as ref_image.
List, get and delete avatars
Deleting
Deleting cannot be undone. Deleting a preset returns403 (voice_not_deletable or avatar_not_deletable). An ID that does not exist, belongs to another account, or was already deleted returns one 404 (voice_not_found or avatar_not_found); the three cases are not distinguished, so the routes cannot be used to discover other accounts’ IDs.
Uploading a deleted file again creates the asset again. With the same key you get the same ID back; with another of your keys you get a new ID.