Access

Account usage and capacity

Understand operation-specific admission, request identities, reset responses, browser concurrency and voice metering.

Read limits for the actual operation

OperationAdmission unit or role
chatAn admitted account conversation request. Browser dispatch can incur a separate browser admission.
video_uploadAn admitted source-video ingest request, separate from transferred storage bytes.
browser_runA browser task admission, separate from chat.
ttsRequested speech text length; current account route uses text.length.
deepgram_tokenAn authenticated transcription token request.
recolor / recolor_previewFull object render or preview admission.
reverse_search / image_embeddingApplicable analysis or image-processing admission.
chat_titleApplicable chat title generation admission.

Minute and day limits are configured per operation. Account overrides and enabled cohort settings can change the effective limits.

Use the server’s current limit, used, resets_at and Retry-After values. Seed defaults are not a commercial entitlement or a permanent account allowance.

The requested action must pass both resource authorization and usage admission. Access approval does not grant ownership or unlimited capacity.

Retain request identity without promising replayed results

Account admission records a request identity and fingerprint. Keep the identity stable only for an identical retry of the same operation and content.

Current clients can send Idempotency-Key. Other request-ID fields exist, but a missing identity can cause the server to generate a new UUID.

An already admitted request can return 409 duplicate_request. The usage receipt does not guarantee replay of the original stream or completed task result.

Changing content while reusing a request identity conflicts with the recorded fingerprint. Use a new identity for a genuinely new request.

A lost response can leave an admission recorded. Inspect the owned conversation, task or revision before repeating work with a new identity.

Ingest request identity

Chat request identity

Handle access and capacity refusals

ResponseMeaningNext action
401 unauthorizedNo authenticated account principal.Restore the authorized account session.
403 account_not_approvedThe account lacks the required access approval.Resolve account access. Retrying the same token does not grant approval.
409 duplicate_requestThe same operation request was already admitted.Inspect prior task or conversation state before creating another request.
429 usage_limit_exceededAn operation reached its current limit.Use usage.operation, limit, used, resets_at and Retry-After.
503 usage_service_unavailableThe server cannot establish the usage decision.Back off and retain the request identity. Do not infer admission or completion.
Representative account limit response
{
  "error": "usage_limit_exceeded",
  "message": "This account has reached its current usage limit.",
  "usage": {
    "operation": "chat",
    "limit": 200,
    "used": 200,
    "resets_at": "<server reset timestamp>"
  },
  "request_id": "<request identity>"
}

The numbers in this response are illustrative. Read your response’s actual values; do not hardcode this example as an allowance.

Distinguish concurrency, waiting and worker leases

Browser tasks have operation usage and unfinished-run capacity. The default account concurrency is one; account or cohort configuration can change it.

A paused unfinished task can still consume an account slot after its worker lease is released. A dormant worker is not a free account allowance.

UI queueing, admitted commands, available workers and available account capacity are different states. Read the actual task and admission responses.

Browser admission can be recorded before the browser opens. External site failure, cancellation or an unusable result does not establish an automatic refund.

The run lifecycle has configured time and resource bounds. These are operational limits, not a guarantee that a task completes within a advertised duration.

Browser lifecycle and recovery

Account speech and embedded Voice differ

The account speech path requires authenticated account admission. Buffered TTS validates text length and currently accepts at most 4,000 JavaScript string units.

TTS uses requested text.length for its account units. Separate speech quota guards can also refuse a request after account admission.

Transcription requires an authenticated token request and microphone permission. Local wake detection keeps pre-wake microphone input local; activated transcription uses the configured service.

Voice interruption stops local speech and the active answer stream. It does not replace an explicit browser cancellation command.

Embedded viewers require the published Voice capability for speech and transcription admissions. Account voice access does not enable Voice in an embed.

Embed capabilities and usage

Treat embedded viewer quotas separately

Embedded viewer operations bill the experience owner under separate operation names. Visitor identity, published capability and daily experience limits apply independently.

Embedded chat quota admission fails closed when the shared quota store is unavailable. It refuses model work and owner billing for that failed quota decision.

That viewer contract does not define every ordinary account rate-limit policy. Use the endpoint’s own refusal and retry contract.

Viewer limits and quota failures