Limits and recovery
Check request sizes, processing limits, and safe recovery actions.
Check these limits before you submit work. Limits are shared across keys in the same workspace. Read job status and recovery for polling and retry instructions.
Availability
A host can close API access or pause an individual task. 503 api_disabled means customer API access is closed on that host. 503 stage_unavailable means the route is not available in that release. Read the Developer page for host access status. Do not treat a closed-access response as an invalid key.
A 202 response means the request was accepted. It can wait in a queue before work starts. A missing capability or paused service can reject new work. Read GET /integrations before a new integration task. Do not use repeated submissions to make a queued job start sooner.
Requests and upload reservations
| Input or operation | Limit |
|---|---|
| JSON request body | 1 MiB (1,048,576 bytes). Larger bodies return 413 request_too_large. |
| Key verification from one verified client address | 300 requests per minute. Workspace limits also apply. |
| Key verification when the host cannot verify the client address | 60 requests per minute, shared on that host. |
| Pending uploads per workspace | 10 reservations and 5 GiB (5,368,709,120 bytes) of reserved capacity. |
| Upload reservation | Complete within two hours. |
Each pending reservation uses the Storage bucket's maximum file size against the capacity limit. A small declared file size does not reduce this reserved capacity. A completed upload releases its reservation capacity.
429 upload_reservation_limit means the workspace has reached its pending upload limit. Complete pending uploads before creating another reservation. Expired reservations retain their capacity until cleanup succeeds. Cleanup can remove unused files from new reservations after 48 hours when cleanup is enabled. Files linked to assets are protected. Cleanup does not remove files from reservations created before these controls were installed.
An idempotency token identifies a saved request. Only the original key creator can receive its saved response. A replacement key from the same creator can repeat the request safely. Another creator receives 403 forbidden for that token. Use a new token for a separate request.
Compositions and exports
| Input | Limit |
|---|---|
| Finished sequence outputs | 100, including audio variations. Supply maxOutputs. Excess lists are rejected; they are not truncated. |
| Examined clip combinations | 100,000. |
| Output per composition export | One. |
| Distinct composition source assets | 100. |
| Distinct source files per render or editor request | 1 GiB (1,073,741,824 bytes) total. |
| Overlays per composition | 500. |
| Composition duration | 108,000 frames. |
| Canvas width and height | 16–3,840 pixels. |
| FPS | 24, 25, 30, 50, or 60. |
| Overlay row | Integer from 0 to 999. |
| Overlay width and height | Integer from 1 to 16,384 pixels. |
| Overlay left and top | −16,384 to 16,384 pixels. |
| Overlay rotation | −360,000 to 360,000 degrees. |
| Video speed | Greater than zero and at most 16. |
Source ranges must fit the saved source. Each overlay must fit the composition duration. Estimates check media readiness and source limits before a charge. A composition deletion requires its current revision and delete-impact fingerprint.
Editor tools
| Input or operation | Limit |
|---|---|
| Edit-plan prompt | 4,000 characters. |
| Steps per plan | 1–8. |
| Plan summary | 1–1,000 characters. |
| Step label | 1–120 characters. |
Step explanation (why) | 1–300 characters. |
Search limit | Integer from 1 to 20. |
| Stock imports per request | 256 MiB (268,435,456 bytes) total. |
| Stock download attempts | Three. |
| Plan generation | 90-second deadline; no automatic provider retry. |
| Stock metadata request | 10-second deadline. |
| Stock download | 60-second deadline, including the response body. |
Editor work saves progress and completed steps. Stock import and transcript preparation can appear in the job's children and childCounts. Read each child through its public job ID. Saved captions and transcripts are reused. A verified saved stock object can complete an import without another source download.
A changed composition returns requires_action/revision_conflict. A changed source returns requires_action/source_changed. Read the current composition and media before a new request. An upload with an unknown outcome needs review. A new idempotency token must not bypass it.
Editor processing accepts one active operation at a time. Processing advances at most once per minute, with at most 120 processing steps per job. A step has a 110-second deadline. These are processing bounds, not a completion-time promise.
Background removal
| Input or operation | Limit |
|---|---|
| Prepared source | 256 MiB (268,435,456 bytes). |
| Continuous source range | 60 seconds. |
| New removals per project | 10 per rolling 24 hours. |
| New removals across the service | 20 per rolling 24 hours. |
| Recent pending removals | Two within one hour. |
| Provider submissions per removal | One. |
| Source preparation attempts | Two. |
| Output finalization attempts | Three. |
Removal processing permits one active API operation and at most one processing step per minute. It has at most 120 processing steps. The service permits two active native removal operations. Source download, range conversion, provider requests, and output download have deadlines of 30, 60, 15, and 60 seconds respectively.
Saved ranges and outputs are reused. A submission that started without a saved provider ID needs review. It is not submitted again.
| Result | Client action |
|---|---|
requires_action/revision_conflict | Read outputAssetId, saved, saveStatus, and compositionUpdatedAt. Review the retained cutout and apply it to the current composition. |
requires_action/output_asset_unavailable | The output asset record is missing or invalid. Contact support with the public job ID. Do not start another provider request to repair that record. |
requires_action/output_unavailable | The saved output is confirmed missing. Contact support with the public job ID. |
503 during an output check | The storage check is unknown. Retry the read later. Do not resubmit removal. |
Restoring output can recover success only if the original composition save completed. Background removal uses the existing provider cost rules.
Generation and analysis
| Input or operation | Limit |
|---|---|
| Smart analysis | 100,000 combinations and 100 AI prompt pages. Large transcripts can reach the page limit first. The error reports requiredPages. |
| Voiceover script | 1,000 characters. |
| Voiceover style | 500 characters. |
| Hooks | 3–12. |
| Test groups | 2–4. |
| Script output | One. |
| Automatic-edit generation chain | Three public operations, including one automatic child when needed. |
| Clip attempts | Three. |
| Clip conversion | 180-second deadline. |
Completed analysis pages, audio, source references, and accepted edit exclusions are reused for retries. Retry an eligible failed child through POST /jobs/{childJobId}/retry with {} and a new Idempotency-Key. A revoked key cannot start an explicit retry. Previously accepted automatic work can finish after revocation.
Creation and clip work each permit one active API operation and at most one processing step per minute. A clip that reaches its attempt limit needs review.
Avatars and voice clones
| Input | Limit |
|---|---|
| Avatar reference images | 1–5 JPEG, PNG, or WebP files. |
| Each avatar image | 10 MiB (10,485,760 bytes). |
| All avatar images | 50 MiB (52,428,800 bytes) total. |
| Uploaded voice sample | 20 MiB (20,971,520 bytes). |
| Project video used for a voice clone | 500 MiB (524,288,000 bytes). |
Consent is required. Review and approve the voice preview before an avatar video request. A voice-clone retry reuses its saved sample audio.
Cloud transfers and publishing
| Input or operation | Limit or requirement |
|---|---|
| Selected-file import | 1–20 files. |
| Cloud export | 1–20 stored render job IDs. |
| Bounded Dropbox folder import | At most 20 selected files from one provider page. |
| Meta ad launch | One render and one submission attempt. |
| Publishing media | Stored 9:16 MP4 with saved duration, FPS, resolution, size, and MIME metadata. |
The cloud transfer and publishing queues share at most one new API processing step per minute. Their dashboard limits still apply. Accepted work can wait in the queue.
A legacy render without required metadata returns 409 media_metadata_required. Create a new render. Meta ad retries return 409 manual_review_required; check Meta Ads Manager before a new request.
Cloud exports retry only confirmed source-read failures within the original attempt limit. An unknown remote upload is not submitted again. A saved remote result can complete after a restart without another upload. Imports reuse verified saved media after a metadata write fails.
Status reads check current stored media metadata without downloading media. Confirmed missing or mismatched media returns media_unavailable and requires_action. An unknown storage check returns 503. Retry the read later; do not start another source download.
Saved Dropbox folders
| Input or operation | Limit |
|---|---|
| Folder metadata page | 500 entries and 1 MiB (1,048,576 bytes). |
| Entries processed per step | 20. |
| Processing steps per accepted page | 25. |
| Provider attempts per run | Three. |
| Explicit metadata retries in one chain | Three. |
| Each source file | 256 MiB (268,435,456 bytes). |
| Accepted source bytes per workspace | 256 MiB (268,435,456 bytes) per UTC day. |
New changes are polled every five minutes while the folder is active and processing is enabled. Folder metadata processing advances at most once per minute. Each source revision reserves its bytes once. Import retries reuse verified saved media. Before media is saved, three source attempts can transfer up to 768 MiB (805,306,368 bytes) for one day's accepted work. Media preparation and output reads have separate limits.
A removed folder marks tracked files in groups of at most 20. It does not delete project assets or stored media. Saved offsets survive a restart. A page is not truncated, and a historical scan does not start automatically.
| Error or state | Client action |
|---|---|
sync_cursor_reset | Read the current folder revision and request an explicit scan. |
sync_claim_limit | Read the saved folder and submit an explicit run to continue its saved page. Automatic polling stops at this limit. |
scanHasMore: true | Submit another explicit scan after the current scan completes. |
| Partial scan | Review the job result. The previous changes cursor remains in place until the final scan completes. |
See saved folder controls for methods and request bodies.
Research, insights, and dictionary
| Input or operation | Limit |
|---|---|
| TikTok research search | 20 videos per request. |
| Research transcript source | 25 MiB (26,214,400 bytes) and five minutes. |
| Meta insights refresh | 25 ads or the lower current capability limit. |
| Dictionary apply | 1–100 explicit transcript IDs; changes at most 25 items per processing step. |
Research searches read one provider page. They do not follow a cursor automatically. Research transcription reuses saved source, audio, and completed provider results. An unknown provider result needs review. Research work permits one active operation and at most one processing step per minute.
An insights cooldown returns 429 insights_cooldown with Retry-After. Wait for that interval. Dictionary jobs preserve saved transcript and caption revisions. Protected changes require the creator's current owner or admin role.