sfoln/audio-transcription · AI, Developer tools, Automation On request
Transcribe audio and video files (MP3, WAV, M4A, MP4…) to text by URL with Mistral Voxtral: language detection, optional segment timestamps and speaker labels. $10.50 per 1,000 audio minutes, billed per started minute; failed files are free.
Audio Transcription API – Speech to Text transcribes podcasts, interviews, meetings, voice notes, webinars and videos to text in bulk. Give the Actor direct URLs of audio or video files and get one transcript per file with detected language, duration and word count — plus optional segment timestamps and speaker labels. Transcription is performed by Mistral Voxtral Mini Transcribe 2, a speech model with strong accuracy across major languages and files of up to about 3 hours.
Price
Price per delivered record
Event
Price
Per 1,000
Charged for
Transcribed audio minute transcription-minute
$0.0105
$10.5 / 1,000
Charged per started minute of audio transcribed (a 3 min 20 s file = 4 events).
Apify free plan: up to 5 items per run. Paid plans have no per-run cap; set maxTotalChargeUsd to cap spend.
Run
Call it from code, an agent or the Console
This API is private on Apify for now. Email us and we will publish it for you, usually within two working days. The calls below work once it is public. contact@sfoln.com
POST https://api.apify.com/v2/actors/sfoln~audio-transcription/runs?maxTotalChargeUsd=1
GET https://api.apify.com/v2/actor-runs/{runId} # until status is SUCCEEDED
GET https://api.apify.com/v2/datasets/{defaultDatasetId}/items?format=json
Authenticate with an Apify API token. MCP clients can instead sign in with OAuth when prompted. Example prompt for an agent: Transcribe https://docs.mistral.ai/audio/obama.mp3 with segment timestamps and give me a short summary of what is said.
Input
Input fields
List publicly reachable audio or video file URLs. Each file produces one dataset record with the transcript.
Field
Type
Default
Meaning
audioUrls *
array
required
Audio / video URLs Direct, public URLs of audio or video files (MP3, WAV, M4A, FLAC, OGG, MP4, MOV, WEBM…), one per line. Up to about 3 hours per file. Page URLs (e.g. YouTube watch pages) are not supported. Accounts on the Apify free plan can process up to 5 files per run.
language
string
—
Language Optional ISO 639-1 language code of the speech (e.g. en, de, fr, es). Improves accuracy; leave empty for automatic detection.
timestamps
boolean
false
Segment timestamps Return the transcript split into segments with start/end times in seconds.
Records land in the run's dataset; a synchronous call returns them directly. Each has a status (ok is charged; everything else is free) and a charged flag. The run's OUTPUT record totals items and charges.
Field
Type
Meaning
input
string
Input URL as submitted.
url
string
URL
language
string | null
Language Detected (or requested) language code.
text
string
Transcript
durationSecs
number
Duration (s)
billedMinutes
integer
Billed minutes Started minutes charged as transcription-minute events.
wordCount
integer
Words
segmentCount
integer
Segments
segments
array
Segments [{ start, end, text, speaker }] — only with timestamps or diarize.
model
string
Model
fileSizeBytes
integer
File size (bytes) Size the server reported for the file; on skipped_invalid records with error code file_too_large.
estimatedMinutes
integer
Estimated minutes Estimated length in started minutes (from the file size); on records refused because of the free-plan length limit or the remaining budget.
warnings
array
Warnings
status
string
Status ok | not_found | error | skipped_invalid | skipped_budget | skipped_free_plan e.g. "ok"
charged
boolean
Charged
source
string
Source
fetchedAt
string
Fetched at
Example record
{
"input": "https://docs.mistral.ai/audio/obama.mp3",
"url": "https://docs.mistral.ai/audio/obama.mp3",
"language": "en",
"text": "This week, I traveled to Chicago to deliver my final farewell address to the nation, ...",
"durationSecs": 203,
"billedMinutes": 4,
"wordCount": 525,
"segmentCount": 33,
"segments": [
{
"start": 0.8,
"end": 8.1,
"text": "This week, I traveled to Chicago to deliver my final farewell address to the nation, following in the tradition of presidents before me.",
"speaker": null
}
],
"model": "voxtral-mini-latest",
"status": "ok",
"charged": true,
"chargedEvent": "transcription-minute",
"source": "mistral-voxtral",
"fetchedAt": "2026-10-14T10:00:00.000Z"
}