We are opening API access now for limited access. We reserve the right to modify or suspend access to the API at any time.
If you plan to integrate our service into another application, contact us first for permission and conditions. The LuxASR transcription API base URL is https://luxasr.uni.lu.
Deprecation notice: The old API flow is deprecated and no longer supported. Clients must use the queued /asr2 job flow and send the file as raw bytes in the request body (not multipart/form-data), with Content-Type: audio/* or video/*.
Step A: Submit transcription job
POST /asr2?...params... with the raw file bytes in the request body (the same bytes you would save to disk — not a multipart form upload).
Set Content-Type to a matching audio/* or video/* MIME type (e.g. audio/wav, audio/mpeg, audio/mp4, video/mp4) and optionally X-Filename with the original file name. The server checks that the payload is decodable media with an audio track (same formats as the web upload: wav, mp3, mp2, m4a, mp4, mov, qta, ogg, webm, wmv, wmav2, and other common audio/video containers).
Response: {"job_id":"<id>","status":"queued"}
HTTP: 202
Step B: Poll status
GET /v3/asr/jobs/<job_id> until status is completed or failed.
Status values:
queued
processing
completed
failed
Step C: Fetch transcription result
GET /v3/asr/jobs/<job_id>/result (only after status is completed). The response body format matches the outfmt query parameter.
Parameter usage
Send parameters as query string (recommended for raw body), e.g.:
language=lb
diarization=Enabled|Disabled (defaults to Disabled when outfmt=srt, otherwise Enabled)
outfmt=colored_text|text|srt|maxqda|json|textgrid|textgrid_aligned
beam_size=5
min_silence_duration_ms=2000
maxlen=42 (for SRT)
Curl examples
A) /asr2 with WAV raw body
curl -X POST "https://luxasr.uni.lu/asr2?language=lb&diarization=Enabled&outfmt=json" \
-H "Content-Type: audio/wav" \
-H "X-Filename: sample.wav" \
--data-binary "@/path/to/sample.wav"
B) /asr2 with MP3 raw body
curl -X POST "https://luxasr.uni.lu/asr2?language=lb&diarization=Disabled&outfmt=text" \
-H "Content-Type: audio/mpeg" \
-H "X-Filename: sample.mp3" \
--data-binary "@/path/to/sample.mp3"
C) Poll + fetch
curl -s "https://luxasr.uni.lu/v3/asr/jobs/<job_id>"
curl -s "https://luxasr.uni.lu/v3/asr/jobs/<job_id>/result"