File STT
api.denthub.ai/sttasync jobUpload one or more audio files and have them transcribed as a background job. The request returns a job id straight away; the transcript is ready when you poll the retrieve endpoint below โ or when your callbackUrl is notified.
Send up to 10 files in a single request by repeating the file part. Each file is transcribed and tracked independently.
- Maximum file size: 300MB
- Maximum file duration: 120 minutes
- Supported formats: WEBM, MPEG, WAV, AAC, FLAC, QUICKTIME, MP4
- Maximum files per request: 10
- Maximum total request size: 3GB
- Each file is validated independently against the per-file constraints above
Body parameters
| Field | Type | Notes |
|---|---|---|
| client | string (uuid) | required โ caller id |
| language | enum | required โ ko | en |
| file | file[] | required โ 1โ10 audio files (multipart) |
| speakerCount | integer | required โ -1 auto-detect ยท 0 VAD (no diarization) ยท 1โ4 fixed count |
| callbackUrl | string | optional โ result webhook |
api.denthub.ai/stt/{sttId}poll resultWhen the job finishes, inspect data.files[]. Each file carries its own status and result.time_step_info[]; every segment includes contents, start and end times, language, and speakerId. For a single-file request,data.result mirrors the first file's result for convenience. See the poll response on the right for a representative per-file shape.
Errors & authall STT & LLM REST endpoints
Authenticate every REST call with the license key issued to your account, in the X-License-Key header. Errors are returned as an ErrorResponseEntity:
{
"errorCode": "1003",
"message": "Invalid License."
}| HTTP | errorCode | Meaning | When |
|---|---|---|---|
| 400 | 1000 | Bad Request | Request validation failed or malformed request body |
| 401 | 1003 | Unauthorized | Missing or invalid license key in X-License-Key header |
| 404 | 1002 | Not Found | Requested resource not found or access denied |
| 500 | 5000 | Server Error | Internal server error โ retry later or contact support |
Some endpoints run as background jobs and return a status you poll (or receive by webhook); others respond synchronously. See Asynchronous jobs for how polling and callbacks work.
