Docs · Speech to text
Transcribe without staging the file first
One transcription alias — auto/asr, behind an OpenAI-shaped POST /v1/audio/transcriptions. It accepts a multipart upload, a public URL, or a base64 data URL, and the last of those is the one worth knowing about: it means you never have to put the audio anywhere before sending it.
The call
curl https://freemodel.online/v1/audio/transcriptions \
-H "Authorization: Bearer sk-your-key" \
-F "model=auto/asr" \
-F "file=@meeting.mp3"
{ "text": "…the full transcript…" }
JSON or a URL both work as an alternative to the upload:
import base64, requests
audio = base64.b64encode(open("meeting.mp3", "rb").read()).decode()
data_url = "data:audio/mpeg;base64," + audio
r = requests.post(
"https://freemodel.online/v1/audio/transcriptions",
headers={"Authorization": "Bearer sk-your-key"},
json={"model": "auto/asr", "audio_url": data_url},
)
print(r.json()["text"])
The base64 path exists because the upstream model accepts data URLs directly — verified, not assumed. Most gateways require you to host the file somewhere reachable first. That extra hop is a bucket, credentials, a lifecycle rule and a cleanup job you do not need here.
One model, so nothing can drift
auto/asr resolves to a single model. There is no candidate chain behind it, and that is consistent with how every non-chat alias here behaves: a transcription model swap would change your output silently — different punctuation, different handling of names and numbers, different segmentation. You would not get an error. You would get text that reads slightly wrong, from a pipeline you already trusted.
If the model is unavailable, the request fails and says so.
Accepted inputs
| How you send it | Field |
|---|---|
| Multipart file upload | file |
| A reachable audio URL | audio_url |
| Base64 data URL inline | audio_url with a data:audio/…;base64, prefix |
model is required — use auto/asr.
Bodies are capped at 25 MB and rejected with 413 before any upstream call is made. Base64 inflates the payload by roughly a third, so if your file is already close to the limit, prefer the multipart form.
Related capabilities
Same naming scheme, one alias per capability — all listed in /v1/models:
auto/tts
Text to speech, returned as a temporary URL.
auto/embed
1024-dimension vectors, one candidate.
auto/rerank
Reordering retrieved documents by relevance.
auto/image
Text to image.
auto/video
Text to video, asynchronous.