Vexar API

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 Public

Synthesize 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 Auth

Upload a voice sample (multipart field audio) to use for cloning.

Response
{ "success": true, "url": "https://cdn…" }
POST /api/v1/my-profile/voice/clone Auth

Clone 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 Auth

Delete the voice clone.

Response
{ "success": true }

Avatar video

POST /api/v1/my-profile/avatar-video Auth

Generate 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 Auth

Poll 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 Auth

Upload your own avatar video (multipart field video, max 50MB).

Response
{ "success": true, "url": "https://cdn…" }
DELETE /api/v1/my-profile/avatar-video/{index} Auth

Remove the avatar video.

Response
{ "success": true }