Voice & Avatar Video
Give your AI business card a voice (text-to-speech, optionally a clone of your own voice via ElevenLabs) and a talking avatar video (D-ID). These are premium features gated by plan.
Voice
POST
/api/v1/profile/{id}/tts PublicSynthesize speech for a published profile (Pro+). Returns audio/mpeg bytes, not JSON. voice may be an OpenAI voice or el:VOICE_ID for ElevenLabs.
Request body
{ "text": "Hello!", "voice": "nova" }Response
(binary audio/mpeg)
POST
/api/v1/my-profile/voice/upload AuthUpload a voice sample (multipart field audio) to use for cloning.
Response
{ "success": true, "url": "https://cdn…" }POST
/api/v1/my-profile/voice/clone AuthClone your voice from uploaded samples (Business+). Provide the sample URLs.
Request body
{ "audio_urls": ["https://cdn…/sample1.mp3"] }Response
{ "success": true, "voice_id": "el_abc…" }DELETE
/api/v1/my-profile/voice/clone AuthDelete the voice clone.
Response
{ "success": true }Avatar video
POST
/api/v1/my-profile/avatar-video AuthGenerate a talking avatar video from an image + text (Start+). Returns a talk_id to poll.
Request body
{ "image_url": "https://cdn…/face.jpg", "text": "Hi, I’m Jane!", "voice_id": "en-US-GuyNeural" }Response
{ "success": true, "talk_id": "tlk_…" }GET
/api/v1/my-profile/avatar-video/{talkId}/status AuthPoll generation status. When done, url is the final video.
Response
{ "success": true, "status": "done", "url": "https://cdn…/video.mp4" }POST
/api/v1/my-profile/avatar-video/upload AuthUpload your own avatar video (multipart field video, max 50MB).
Response
{ "success": true, "url": "https://cdn…" }DELETE
/api/v1/my-profile/avatar-video/{index} AuthRemove the avatar video.
Response
{ "success": true }