One API for transcription, translation, subtitles and analysis
Most speech recognition APIs stop at raw text, while the Sonix API returns a transcript that is already structured for whatever you build next.
Every capability below is a documented endpoint, so the transcript you fetch can become captions, a translation, an edited audio clip or a summary without leaving the API.
Batch transcription
POST a file to /v1/media, or pass a file_url for anything over 100MB, and Sonix transcribes it asynchronously. Set the language, add keywords to steer recognition toward names and jargon, attach custom_data for your own IDs, and give a callback_url so Sonix tells your server the moment the job completes or fails. Recordings with each speaker isolated on a separate channel can use the multitrack endpoint for channel-based speaker detection.
Translation
When a transcript is complete, POST a target language code to its translations endpoint and Sonix returns a translated transcript in any of 54+ languages. The transcript endpoints take a language parameter, so a Spanish SRT file of an English interview is a single GET request once the translation finishes.
Subtitles and captions
The SRT and VTT endpoints return caption files with real presentation controls: max_characters and max_duration cap each subtitle, subtitle_lines sets one or two lines, and speaker_display decides how speaker names appear. The split endpoint reflows a whole transcript into subtitles under a max_cps reading-speed limit, and the burn-in endpoint renders captions onto the video itself with your choice of font, size, color and aspect ratio, including 9:16 and 1:1 for social formats.
Exports and structured data
Fetch any transcript as JSON with start and end times for every word and speaker labels, as plain text, as a Word document or PDF ready to share, as SRT or VTT, or as an Avid DS file for video editors. The media export endpoint goes one step further: it cuts the audio or video itself down to your highlights, or removes everything you struck through, as MP3, WAV or MP4.
AI analysis
The summarization endpoint runs analysis on a finished transcript: a summary with the sentence count you choose, chapters, sentiment, thematic and topic analysis, entity extraction, or a custom prompt of your own, such as "Write 5 promotional tweets for this podcast".
Callbacks and webhooks
No polling loops required. Media and summarization jobs accept a callback_url, and Sonix POSTs the job status to it when the work completes or fails. For teams automating at scale, Pro and Enterprise plans add event webhooks: subscribe to transcription finished, translation finished, label and folder changes and redaction applied, each signed with HMAC-SHA256 in an X-Webhook-Signature header so your server can verify that every payload came from Sonix.
Real-time streaming
For live captions and low-latency speech to text, Sonix offers a streaming API over WebSocket, in early access for enterprise teams; request access on the real-time transcription page. Batch transcription is fully documented and self-serve today.
From audio file to transcript in three API calls
Authenticate with a Bearer token against https://api.sonix.ai/v1, submit the file, then fetch the transcript in the format you need.
Submit the file
Send the media as multipart form data with its language, a name, and optional keywords and custom_data:
curl -XPOST https://api.sonix.ai/v1/media -H "Authorization: Bearer <API Key>" \
-F file=@my_audio.mp3 \
-F language=en \
-F name='Podcast Episode 45' \
-F keywords='Sonix, Bergamasco, Kairos, Chewbacca' \
-F custom_data='{"internal_id": "123412", "customer_email": "[email protected]"}'Check the status or wait for the callback
Poll the media object until its status is completed, or skip this step and wait for your callback_url:
curl -XGET https://api.sonix.ai/v1/media/qmnY1nD5 -H "Authorization: Bearer <API Key>"Fetch the timestamped transcript
Request the JSON transcript, or swap the extension for .srt, .vtt or plain text:
curl -XGET https://api.sonix.ai/v1/media/qmnY1nD5/transcript.json -H "Authorization: Bearer <API Key>"Multilingual recording? Set language=multi and list the expected languages in language_hints. The full parameter reference, response bodies and error codes live in the API documentation.