Skip to content
AIZACDeveloper Platform

File STT

POSTapi.denthub.ai/sttasync job

Upload 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.

File constraints
  • Maximum file size: 300MB
  • Maximum file duration: 120 minutes
  • Supported formats: WEBM, MPEG, WAV, AAC, FLAC, QUICKTIME, MP4
Bulk upload
  • Maximum files per request: 10
  • Maximum total request size: 3GB
  • Each file is validated independently against the per-file constraints above

Body parameters

FieldTypeNotes
clientstring (uuid)required โ€” caller id
languageenumrequired โ€” ko | en
filefile[]required โ€” 1โ€“10 audio files (multipart)
speakerCountintegerrequired โ€” -1 auto-detect ยท 0 VAD (no diarization) ยท 1โ€“4 fixed count
callbackUrlstringoptional โ€” result webhook
GETapi.denthub.ai/stt/{sttId}poll result

When 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."
}
HTTPerrorCodeMeaningWhen
4001000Bad RequestRequest validation failed or malformed request body
4011003UnauthorizedMissing or invalid license key in X-License-Key header
4041002Not FoundRequested resource not found or access denied
5005000Server ErrorInternal 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.