Limits
The bounds a session is admitted and held under, and what the service does when one is reached.
API access is not open yet. It is opening gradually; join the waitlist.
Audio format
Audio is 16 kHz, mono, signed 16-bit little-endian PCM. The protocol_version is "1.0".
Session bounds
DICON_MAX_AUDIO_SECONDS— 3600 — the most audio one session accepts.DICON_MAX_CHUNK_SECONDS— 2 — the most audio one message may carry.DICON_MAX_QUEUED_AUDIO_SECONDS— 8 — the most audio that may be outstanding before the server applies backpressure.DICON_MAX_ENROLLMENT_SECONDS— 12 — target-speaker enrollment audio. Send the full 12 seconds: a shorter enrollment falls short of a prefill threshold inside the diarizer and costs more to set up, not less, so it is not a way to save time.DICON_IDLE_TIMEOUT_SECONDS— 30 — how long a session may sit without audio before it is ended.
These are the shipped defaults. An operator configures them independently, so a deployment may differ. Separately, and not operator-configurable, the server holds at most 128 undelivered events per session; a client that stops reading is subject to the backpressure described on the errors page.
Request fields
expected_num_speakersis"auto"or an integer from 1 to 4. Four is the ceiling: the diarizer has exactly four speaker slots, and there is no larger one.client_request_idis optional, 1 to 128 characters, matching^[A-Za-z0-9._:-]+$.
Quotas
A quota is expressed in audio seconds and is checked when a session is admitted, not continuously. A session that was admitted runs to its own end, so a caller can finish slightly past a quota boundary. This is deliberate: refusing mid-stream would end an established session.
Consumption is written back when a session ends. Billing counts audio the service processed, not audio submitted.
A key with no quota set is unlimited, not zero. A key with no scopes set is unrestricted, not unauthorized.
Exceeding a quota is quota_exhausted, and it is not retryable — retrying will not succeed until more quota exists.
When a limit is reached
not_ready— retryable; the worker has not finished loading.overload— retryable; an admission ceiling was reached. Back off and retry.quota_exhausted— not retryable.validation— not retryable; the request was malformed.unauthorized— not retryable; the credential was missing or rejected.forbidden— not retryable; the credential lacks the required scope.not_found— not retryable; no such session.
The errors page covers ordering and cancellation behaviour; the authentication page covers credentials.