POST/api/app/voice200 OK · audio/mpeg
curl -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"

Call any Loqal tool from your own code.

REST endpoints for voice cloning, translation, transcription, and meeting agents, plus real-time avatars on LiveKit.

Seven tools, one key

Every tool in the Studio is also a REST endpoint. Same auth, same account, same key.

API

POST/api/app/fm/generate

Queues a one-shot LoqalFM episode. Returns a jobId immediately: poll GET /api/app/fm/jobs/{jobId} until status=completed, then download audio.

Auth. Send your Loqal API key as Authorization: Bearer mk_live_…. In the browser the signed-in session cookie is used automatically.

Request

genrestringrequiredBroadcast format: ad, interview, weather, traffic, callin, psa, talkshow, newsflash.
languagestringoptionalBCP-47 broadcast language. Default en-US.
world_infostringoptionalTopic / world seed. Leave blank for a surprise.
durationnumberoptionalOverride the format default length (seconds).

Example

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

POST/api/app/voice

Clones a voice from an audio sample and synthesizes text in it, optionally translating first. Pass voice_id to reuse an existing clone.

Auth. Send your Loqal API key as Authorization: Bearer mk_live_…. In the browser the signed-in session cookie is used automatically.

Request

audiofileoptionalVoice sample (omit when reusing voice_id).
textstringrequiredWhat the cloned voice should say.
target_languagestringoptionalOutput language, e.g. es-ES. Default en-US.
translatebooleanoptionalTranslate text into target_language before synthesis.
voice_idstringoptionalReuse a clone from a previous call.

Example

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

POST/api/app/translate

Send a short spoken clip and a target language. Get back the transcript, translation, and synthesized speech in one response.

Auth. Send your Loqal API key as Authorization: Bearer mk_live_…. In the browser the signed-in session cookie is used automatically.

Request

audiofilerequiredShort spoken recording.
target_langstringrequiredBCP-47 target language, e.g. es-ES.

Example

curl -X POST https://sorato.group/api/app/translate \
  -H "Authorization: Bearer mk_live_..." \
  -F "[email protected]" \
  -F "target_lang=es-ES"

API

POST/api/app/transcribe

Upload a recording and get back transcript JSON, or a styled HTML/PDF document by setting the format parameter.

Auth. Send your Loqal API key as Authorization: Bearer mk_live_…. In the browser the signed-in session cookie is used automatically.

Request

audiofilerequiredAudio or video file.
targetstringoptionalBCP-47 output language for translation. Default en.
titlestringoptionalDocument title for html/pdf output.
formatquery: json|html|pdfoptionalResponse shape. Default json.

Example

curl -X POST "https://sorato.group/api/app/transcribe?format=json" \
  -H "Authorization: Bearer mk_live_..." \
  -F "[email protected]"

API

POST/api/app/meet/launch

Launch a bot into Zoom, Meet, or Teams. Returns bot_id and sid: poll the live transcript, then render minutes when the call ends.

Auth. Send your Loqal API key as Authorization: Bearer mk_live_…. In the browser the signed-in session cookie is used automatically.

Request

meeting_urlstringrequiredGoogle Meet / Zoom / Teams link.
modestringoptionalconference | bilingual | monolingual. Default conference.
user_languagestringoptionalSecond language for bilingual (interpreter) mode.
avatar_idstringoptionalAvatar to render, from GET /api/app/meet/characters.

Example

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

POST/api/app/learn

Upload an audio/video lesson. Transcribes it, then extracts a summary, glosses, and comprehension questions in user_language.

Auth. Send your Loqal API key as Authorization: Bearer mk_live_…. In the browser the signed-in session cookie is used automatically.

Request

mediafilerequiredAudio or video lesson.
user_languagestringoptionalSupport language for glosses/questions. Default en.
glosses_onlybooleanoptionalReturn glosses only, skipping questions.

Example

curl -X POST https://sorato.group/api/app/learn \
  -H "Authorization: Bearer mk_live_..." \
  -F "[email protected]" \
  -F "user_language=es"

API

POST/api/app/voqal/token

Returns a LiveKit token and URL to connect a client to a live avatar agent. List avatars first with GET /api/app/voqal/avatars.

Auth. Send your Loqal API key as Authorization: Bearer mk_live_…. In the browser the signed-in session cookie is used automatically.

Request

avatar_idstringrequiredAvatar UUID from GET /api/app/voqal/avatars.
languagestringoptionalSpoken language. Default en.
namestringoptionalDisplay name for the session participant.

Example

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"}'

Next steps