Skip to content
Monologue
Esc
navigateopen⌘Jpreview
On this page

Limits and errors

Handle Enterprise API limits, HTTP failures, and realtime session errors.

Default limits may be adjusted for an approved organization during onboarding.

Limit Default
Batch requests 60 requests per minute per account
Batch audio upload 100 MB
Concurrent realtime streams 5 per account
Realtime session duration 10 minutes
Realtime context 128 KB

Batch errors

Errors include a machine-readable code and human-readable error message.

{
  "error": "Request body too large",
  "code": "REQUEST_TOO_LARGE"
}
Status Example code Handling
400 BAD_REQUEST Correct the request; do not retry unchanged.
401 Authentication error Supply exactly one valid credential.
403 Origin not allowed Correct the origin or token binding.
408 REQUEST_CANCELLED Retry with bounded exponential backoff.
413 REQUEST_TOO_LARGE Reduce the upload size.
429 Rate limited Wait for Retry-After, then retry.
500 PROCESSING_FAILED Do not retry indefinitely; contact support if persistent.
503 TRANSCRIPTION_TIMEOUT or TRANSCRIPTION_UNAVAILABLE Retry with backoff and jitter.
504 UPSTREAM_TIMEOUT Retry with backoff and jitter.

The X-Dictate-Attempts response header reports how many processing attempts were used. Preserve transcription_id across a retry so Monologue can correlate the requests.

Realtime errors

Realtime failures arrive as session.error:

{
  "type": "session.error",
  "code": "...",
  "message": "...",
  "retry_via_async": true
}

When retry_via_async is true, close the stream and submit the buffered audio to the batch endpoint. Do not automatically replay audio unless your product can prevent duplicate output and the user still expects the result.

Was this page helpful?