Skip to main content
These pages describe the Training API on dev, where authenticated creation, editing, downloads, revert, and website brand lookup have been tested live. Production availability is not confirmed. Your API service and worker must both run the updated code. See Testing and availability.

HTTP responses

Errors commonly contain a detail string. Request validation errors can instead contain a structured detail array with field locations and messages. Do not assume all error bodies have an identical shape. When creation returns detail.code: "VIDEO_GENERATION_CONCURRENCY_LIMIT", the whole batch was rejected before submission. Wait for an existing video to finish before retrying. See Rate limits.

Batch errors

A valid creation batch can return HTTP 200 with errors greater than zero and results[].status: "error". The failed item includes index, uuid, code, and message. Codes include DURATION_NOT_ALLOWED, HTTP_ERROR, and ITEM_FAILED. Invalid schema fields reject the request with 422; account-specific duration and processing failures can occur per item after schema validation. Review failed entries before retrying. A transport or queueing error can leave an uncertain outcome, so inspect the job or dashboard before creating a replacement.

Brand lookup errors

HTTP 200 with success: false is a failed lookup, not usable brand data. Inspect error; missing provider configuration requires a server-side fix. Retry temporary provider failures with backoff.

Asynchronous failures and retries

A 200 creation response or 202 edit response is only acceptance. Poll and check is_failed and error_message.
  • Correct 400, 403, 415, and 422 causes before retrying; refresh invalid credentials for 401.
  • Resolve the conflict described by a 409 before resubmitting.
  • On 429, wait for Retry-After.
  • Back off on transient failures. For an edit retry, retain the same body and Idempotency-Key; avoid concurrent retries.
  • Creation has no documented idempotency guarantee. Check for an accepted job before resubmitting after a timeout.
  • If an edit asks for missing information, submit a new, complete instruction with a new idempotency key.
A reverted edit has is_complete: true but is not a newly applied edit. Check status, and see Revert edit for media verification limits.