Transcribe

POSThttps://api.lucidweights.ai/v1/stt/transcribe

Transcribes raw, headerless audio samples sent as base64 JSON. For audio files, use /v1/stt/file-transcribe.

Query parameters

FieldTypeDefaultDescription
backendstringultraultra, fast, or normal
model_namestringlargeFor fast/normal: tiny, base, small, medium, large-v2, large-v3, large, large-v3-turbo, turbo
languagesstring""Comma-separated ISO codes, e.g. en or en,es,hi

Request body

Headers: x-api-key, content-type: application/json

FieldTypeDefaultDescription
audio_datastringrequiredBase64 audio. A data: URI prefix is tolerated; anything before the first comma is stripped
input_formatstringrequiredpcm, base64, or ulaw. Nothing else
input_sample_rateintrequiredSample rate of your audio in Hz; resampled to 16 kHz server-side

pcm and base64 are identical: 16-bit signed little-endian PCM, mono. ulaw is 8-bit G.711 µ-law.

Response

{
  "transcription": "hello world",
  "timing": { "transcribe_time": 0.312, "total_time": 0.481 }
}
WARNING
This endpoint takes samples, not files. Base64-ing a .wav / .mp3 / .flac does not work. The WAV header is read as samples and corrupts the start of the audio. Mono 16-bit signed integer only; stereo comes out garbled. Send an even number of bytes.
Example
curl -X POST "https://api.lucidweights.ai/v1/stt/transcribe?languages=en" \
  -H "x-api-key: lw_YOUR_SECRET" \
  -H "content-type: application/json" \
  -d '{"audio_data":"<base64 int16 PCM>","input_format":"pcm","input_sample_rate":16000}'