Verbatik LogoVerbatik
Developer API

API errors and troubleshooting

Diagnose authentication, credit, validation, and asynchronous job failures.

Errors use a JSON envelope rather than a successful media response:

{
  "error": {
    "type": "invalid_request",
    "message": "The request body is invalid.",
    "request_id": "request-id"
  }
}

details and request_id are included when available. Save the response's X-Request-Id for support.

HTTP statusCommon causeNext step
400Invalid JSON fields, model, input, or settingsInspect the message and details; check the model catalog
401Missing, invalid, expired, or revoked keyVerify Bearer authentication and the current key
402Insufficient credits or member credit capRead /credits; review Billing and member limits
403Missing scope, ineligible API access, or removed membershipCheck the key's scopes, workspace, and purchase/subscription status
404Resource unavailable in this workspaceConfirm the resource ID and the workspace associated with the key
409Operation already processing or an invalid state transitionWait, retrieve the resource, or inspect its current state
422Idempotency key reused with a different requestRestore the original body for a retry or use a new key for a new operation
429Workspace request limitRespect Retry-After and back off
502 / 503Upstream failure or unavailable worker/servicePreserve IDs, inspect job state, and retry carefully

No media in a successful response

A 202 response means queued. Poll the specific generation or speech resource for completion. A batch can partially succeed; inspect both outputs and errors.

A signed output URL expires. Retrieve the resource again for a fresh URL and honor expires_at. A storage upload URL is not a playback URL.

A voice cannot be selected

Preset voice IDs are model-specific. Retrieve /voices/catalog for the selected speech model. Custom resource IDs work with Speech Cloning, not the Speech Lite preset catalog.

A request timed out

Do not immediately create a second operation. Retry using the original idempotency key and identical body, or retrieve the resource if you received its ID. Use a new key only for an intentional new operation.

Ask for help

Send the endpoint, HTTP status, request ID, approximate time, and a sanitized error message to support@verbatik.com. Remove credentials, webhook secrets, and confidential prompt or media data.

On this page