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 API can be reached via:
Deprecation notice: The old API flow is deprecated and no longer supported. Clients must use the queued /asr2 job flow and send raw audio payloads (audio/*) as documented below.
Step A: Submit job
POST /asr2?...params... with audio payload
Response: {"job_id":"<id>","status":"queued"}
HTTP: 202
Step B: Poll status
GET /v3/asr/jobs/<job_id>
Status values:
queued
processing
completed
failed
Step C: Fetch result
GET /v3/asr/jobs/<job_id>/result
Translation (queued)
POST /translate?language=lb&target_langs=en&outfmt=srt&... with the same raw audio body → 202 and {"job_id":"<id>","status":"queued"}.
Poll GET /v3/translate/jobs/<job_id> — while the worker runs, progress.message reports status (transcription, translation batches, etc.).
GET /v3/translate/jobs/<job_id>/result returns a JSON object mapping each language name to the transcript or subtitles string.
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"