POST /api/transcribe/async
Request: multipart (audio field) or raw binary body.
Response (200):
{ "task_id": "stt:..." }curl -sS -X POST "https://llm.dat.ai/api/transcribe/async" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "audio=@/path/to/audio.mp3"With optional fanout:
curl -sS -X POST "https://llm.dat.ai/api/transcribe/async?fanout=3" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "audio=@/path/to/audio.mp3"POST /api/transcribe/sync
Same input as async. Blocks until transcription completes (timeout ~10 minutes).
Response (200):
{
"task_id": "stt:...",
"success": true,
"payload": "transcribed text ...",
"execution_time_ms": 12345
}curl -sS -X POST "https://llm.dat.ai/api/transcribe/sync" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/octet-stream" \
--data-binary @/path/to/audio.wavGET /api/transcribe/status
Query: task_id (required)
curl -sS "https://llm.dat.ai/api/transcribe/status?task_id=stt:YOUR_TASK_ID" \
-H "Authorization: Bearer YOUR_API_KEY"Response (200):
{
"task_id": "stt:...",
"status": "completed",
"created_at": "2026-01-13T12:34:56Z",
"audio_duration_seconds": 42,
"success": true,
"payload": "..."
}Errors
Same envelope as browsing: { "error": "..." }.
| Status | Cause |
|---|---|
| 400 | No audio in the request, multipart error, or missing task_id |
| 401 | Missing or invalid API key |
| 402 | No active subscription, or insufficient balance |
| 403 | Task belongs to another account |
| 404 | Task not found |
| 405 | Wrong HTTP method for the endpoint |
| 504 | sync waited past the timeout — poll status instead |