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 active work to finish, or settle a paused job. See Rate limits.
API_GLOBAL_GENERATION_LIMIT means the service-wide API video ceiling is full. A rejected creation batch submits no videos. API_ADMISSION_PAUSED means new video operations are temporarily paused; already accepted work and status polling can continue. Both include Retry-After. Do not treat a temporary capacity error as a reason to create another key or duplicate a previously accepted job.
Batch errors
A valid creation batch can return HTTP 200 witherrors 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.
For ITEM_FAILED, the API returns a general message instead of internal server details. Include the item’s uuid when you contact support.
Brand lookup errors
HTTP 200 withsuccess: 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 checkis_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, answer its saved question or cancel the edit.
is_complete: true but is not a newly applied edit. Check status, and see Revert edit for media verification limits.