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.Submission rates
Every authenticated
/v1 request, including video/edit polling, catalogs, and revert, consumes the shared 120-request budget. Personal API keys and first-party JWTs are counted by authenticated user; organization keys share the organization budget. Creation, editing/voice changes, and brand lookup also have the stricter counters above. Video and edit submission defaults can be configured by the deployment. Infrastructure can impose additional limits.
If Redis is unavailable and the API cannot check a request limit, it returns 503 with Retry-After: 15. It does not allow the request through without checking.
On rate limiting, respect Retry-After. Video creation responses also include X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset (seconds until reset). Do not assume these headers appear on every endpoint.
Batch and duration limits
Creation accepts 1–3 items. Empty or oversized arrays return 422, as do invalid field shapes. Duration accepts 10–14400 seconds at schema level, with a potentially lower account-specific maximum. Check every result for entitlement failures.Concurrent jobs
The API accepts at most 3 active videos per personal account or organization, including Enterprise. This cap is shared across Training and Marketing. Translation copies and supported retry/reformat work also reserve capacity. Multiple keys and simultaneous requests share that owner’s limit. A slot stays occupied through planning and final rendering. Planning completion alone does not free it. A finished render frees its API slot, even when a later edit changes its stage. A job waiting for clarification, approval, or scene retry also frees its slot. Resuming work checks capacity again. Stopping an active worker releases its worker slot when that worker exits. If the entire requested batch cannot fit, creation returns 429 with codeVIDEO_GENERATION_CONCURRENCY_LIMIT and Retry-After: 15. No videos from that request are submitted. Wait for work to finish or use an available video action. If capacity cannot be verified, creation returns 503.
A deployment can also apply a service-wide API generation ceiling across all owners. When it is full, creation returns 429 with code API_GLOBAL_GENERATION_LIMIT and Retry-After: 15, even if your own account has fewer than three unfinished videos. No videos in the rejected batch are submitted. Retry with backoff; creating another API key does not bypass this limit. The service-wide ceiling is deployment-specific, not a plan entitlement.
During a temporary admission pause, new video creation, edits, voice changes, translations, aspect changes, and retries can return 503 with code API_ADMISSION_PAUSED and Retry-After: 15. Existing work can continue. Status checks remain available, so keep polling accepted video IDs instead of submitting replacements.
An accepted job can still be parked by the existing account processing queue; it already occupies an API slot. Do not resubmit it. Poll its UUID instead. Normal platform creation limits remain separate. The new cap applies to submissions admitted after deployment.
Poll at roughly 15-second intervals per video, use backoff after failures, and avoid polling an entire batch in a tight loop. See Errors for safe retry handling.