Skip to main content
The pre-recorded transcription endpoint is designed for audio files you already have on hand: voice notes, meeting clips, voicemail recordings, and similar short-form content up to 5 minutes long. You send one file per request and receive the finished transcript in the response body — no polling, no callbacks, just a straightforward synchronous call.
Constraints
  • Supported formats: wav, ogg, webm
  • Max file size: 50 MB
  • Max duration: 300 seconds (default — can be raised on request)

Make a request

Attach your audio file as a multipart audio field and specify which model to use. Make sure your API key is set in the environment first (see Authentication).
curl -X POST https://api.typelessapi.com/v1/transcribe \
  -H "Authorization: Token $TYPELESS_API_KEY" \
  -F "audio=@meeting.wav" \
  -F "model=typeless-asr-l2-v1"

Response

A successful request returns a JSON object containing the transcript, detected language, and billing usage:
{
  "status": "success",
  "result": {
    "transcript": "Let's move the launch to next Thursday and loop in the design team early.",
    "detected_language": "en",
    "duration_seconds": 42.5
  },
  "usage": {
    "audio_duration_seconds": 42.5,
    "output_token_count": 128
  },
  "request_id": "01JXXXXXXXXXXXXXXXXXXXXXXX"
}

Choosing a language

The language parameter is optional. Pass an ISO 639-1 code — for example en for English or zh for Mandarin Chinese — to give the model a hint that improves accuracy, especially for shorter clips or accented speech. If you omit it, the API detects the language automatically and reports the result in detected_language on every response.

Choosing a model

The model field is required. Three tiers are available:
ModelTier
typeless-asr-l1-v1Economy — lowest cost, but slower and slightly lower quality
typeless-asr-l2-v1Recommended default — balanced quality, speed, and cost for most use cases
typeless-asr-l3-v1Best — highest accuracy and fastest turnaround; ideal for noisy audio, strong accents, or technical vocabulary
See Models & Pricing for a full breakdown of per-second rates.

Timeouts

The request is synchronous: your HTTP connection stays open until transcription is complete. Internally, the ASR stage has a 90-second timeout and the refinement stage has a 60-second timeout. If either limit is exceeded, the API returns SERVICE_UNAVAILABLE (503) and you are not charged for that request.
Billing is per second of audio with a 15-second minimum per request. See Models & Pricing for rates.