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 itField
Multipart file uploadfile
A reachable audio URLaudio_url
Base64 data URL inlineaudio_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:

tts

auto/tts

Text to speech, returned as a temporary URL.

embedding

auto/embed

1024-dimension vectors, one candidate.

rerank

auto/rerank

Reordering retrieved documents by relevance.

image

auto/image

Text to image.

video

auto/video

Text to video, asynchronous.