/api/app/voice200 OK · audio/mpegcurl -X POST https://sorato.group/api/app/voice \
-H "Authorization: Bearer mk_live_..." \
-F "text=Hello, this is my cloned voice." \
-F "target_language=es-ES"REST endpoints for voice cloning, translation, transcription, and meeting agents, plus real-time avatars on LiveKit.
Every tool in the Studio is also a REST endpoint. Same auth, same account, same key.
/api/app/fm/generateQueues a one-shot LoqalFM episode. Returns a jobId immediately: poll GET /api/app/fm/jobs/{jobId} until status=completed, then download audio.
Authorization: Bearer mk_live_…. In the browser the signed-in session cookie is used automatically.| genre | string | required | Broadcast format: ad, interview, weather, traffic, callin, psa, talkshow, newsflash. |
| language | string | optional | BCP-47 broadcast language. Default en-US. |
| world_info | string | optional | Topic / world seed. Leave blank for a surprise. |
| duration | number | optional | Override the format default length (seconds). |
curl -X POST https://sorato.group/api/app/fm/generate \
-H "Authorization: Bearer mk_live_..." \
-H "Content-Type: application/json" \
-d '{"genre": "interview", "world_info": "the history of tea"}'/api/app/voiceClones a voice from an audio sample and synthesizes text in it, optionally translating first. Pass voice_id to reuse an existing clone.
Authorization: Bearer mk_live_…. In the browser the signed-in session cookie is used automatically.| audio | file | optional | Voice sample (omit when reusing voice_id). |
| text | string | required | What the cloned voice should say. |
| target_language | string | optional | Output language, e.g. es-ES. Default en-US. |
| translate | boolean | optional | Translate text into target_language before synthesis. |
| voice_id | string | optional | Reuse a clone from a previous call. |
curl -X POST https://sorato.group/api/app/voice \
-H "Authorization: Bearer mk_live_..." \
-F "[email protected]" \
-F "text=Hello, this is my cloned voice." \
-F "target_language=es-ES"/api/app/translateSend a short spoken clip and a target language. Get back the transcript, translation, and synthesized speech in one response.
Authorization: Bearer mk_live_…. In the browser the signed-in session cookie is used automatically.| audio | file | required | Short spoken recording. |
| target_lang | string | required | BCP-47 target language, e.g. es-ES. |
curl -X POST https://sorato.group/api/app/translate \
-H "Authorization: Bearer mk_live_..." \
-F "[email protected]" \
-F "target_lang=es-ES"/api/app/transcribeUpload a recording and get back transcript JSON, or a styled HTML/PDF document by setting the format parameter.
Authorization: Bearer mk_live_…. In the browser the signed-in session cookie is used automatically.| audio | file | required | Audio or video file. |
| target | string | optional | BCP-47 output language for translation. Default en. |
| title | string | optional | Document title for html/pdf output. |
| format | query: json|html|pdf | optional | Response shape. Default json. |
curl -X POST "https://sorato.group/api/app/transcribe?format=json" \
-H "Authorization: Bearer mk_live_..." \
-F "[email protected]"/api/app/meet/launchLaunch a bot into Zoom, Meet, or Teams. Returns bot_id and sid: poll the live transcript, then render minutes when the call ends.
Authorization: Bearer mk_live_…. In the browser the signed-in session cookie is used automatically.| meeting_url | string | required | Google Meet / Zoom / Teams link. |
| mode | string | optional | conference | bilingual | monolingual. Default conference. |
| user_language | string | optional | Second language for bilingual (interpreter) mode. |
| avatar_id | string | optional | Avatar to render, from GET /api/app/meet/characters. |
curl -X POST https://sorato.group/api/app/meet/launch \
-H "Authorization: Bearer mk_live_..." \
-H "Content-Type: application/json" \
-d '{"meeting_url": "https://meet.google.com/xyz-abcd-efg", "mode": "bilingual", "user_language": "es-ES"}'/api/app/learnUpload an audio/video lesson. Transcribes it, then extracts a summary, glosses, and comprehension questions in user_language.
Authorization: Bearer mk_live_…. In the browser the signed-in session cookie is used automatically.| media | file | required | Audio or video lesson. |
| user_language | string | optional | Support language for glosses/questions. Default en. |
| glosses_only | boolean | optional | Return glosses only, skipping questions. |
curl -X POST https://sorato.group/api/app/learn \
-H "Authorization: Bearer mk_live_..." \
-F "[email protected]" \
-F "user_language=es"/api/app/voqal/tokenReturns a LiveKit token and URL to connect a client to a live avatar agent. List avatars first with GET /api/app/voqal/avatars.
Authorization: Bearer mk_live_…. In the browser the signed-in session cookie is used automatically.| avatar_id | string | required | Avatar UUID from GET /api/app/voqal/avatars. |
| language | string | optional | Spoken language. Default en. |
| name | string | optional | Display name for the session participant. |
curl -X POST https://sorato.group/api/app/voqal/token \
-H "Authorization: Bearer mk_live_..." \
-H "Content-Type: application/json" \
-d '{"avatar_id": "...", "language": "es"}'