Sovran
API documentation

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 operationLimit
JSON request body1 MiB (1,048,576 bytes). Larger bodies return 413 request_too_large.
Key verification from one verified client address300 requests per minute. Workspace limits also apply.
Key verification when the host cannot verify the client address60 requests per minute, shared on that host.
Pending uploads per workspace10 reservations and 5 GiB (5,368,709,120 bytes) of reserved capacity.
Upload reservationComplete 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

InputLimit
Finished sequence outputs100, including audio variations. Supply maxOutputs. Excess lists are rejected; they are not truncated.
Examined clip combinations100,000.
Output per composition exportOne.
Distinct composition source assets100.
Distinct source files per render or editor request1 GiB (1,073,741,824 bytes) total.
Overlays per composition500.
Composition duration108,000 frames.
Canvas width and height16–3,840 pixels.
FPS24, 25, 30, 50, or 60.
Overlay rowInteger from 0 to 999.
Overlay width and heightInteger 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 speedGreater 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 operationLimit
Edit-plan prompt4,000 characters.
Steps per plan1–8.
Plan summary1–1,000 characters.
Step label1–120 characters.
Step explanation (why)1–300 characters.
Search limitInteger from 1 to 20.
Stock imports per request256 MiB (268,435,456 bytes) total.
Stock download attemptsThree.
Plan generation90-second deadline; no automatic provider retry.
Stock metadata request10-second deadline.
Stock download60-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 operationLimit
Prepared source256 MiB (268,435,456 bytes).
Continuous source range60 seconds.
New removals per project10 per rolling 24 hours.
New removals across the service20 per rolling 24 hours.
Recent pending removalsTwo within one hour.
Provider submissions per removalOne.
Source preparation attemptsTwo.
Output finalization attemptsThree.

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.

ResultClient action
requires_action/revision_conflictRead outputAssetId, saved, saveStatus, and compositionUpdatedAt. Review the retained cutout and apply it to the current composition.
requires_action/output_asset_unavailableThe 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_unavailableThe saved output is confirmed missing. Contact support with the public job ID.
503 during an output checkThe 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 operationLimit
Smart analysis100,000 combinations and 100 AI prompt pages. Large transcripts can reach the page limit first. The error reports requiredPages.
Voiceover script1,000 characters.
Voiceover style500 characters.
Hooks3–12.
Test groups2–4.
Script outputOne.
Automatic-edit generation chainThree public operations, including one automatic child when needed.
Clip attemptsThree.
Clip conversion180-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

InputLimit
Avatar reference images1–5 JPEG, PNG, or WebP files.
Each avatar image10 MiB (10,485,760 bytes).
All avatar images50 MiB (52,428,800 bytes) total.
Uploaded voice sample20 MiB (20,971,520 bytes).
Project video used for a voice clone500 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 operationLimit or requirement
Selected-file import1–20 files.
Cloud export1–20 stored render job IDs.
Bounded Dropbox folder importAt most 20 selected files from one provider page.
Meta ad launchOne render and one submission attempt.
Publishing mediaStored 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 operationLimit
Folder metadata page500 entries and 1 MiB (1,048,576 bytes).
Entries processed per step20.
Processing steps per accepted page25.
Provider attempts per runThree.
Explicit metadata retries in one chainThree.
Each source file256 MiB (268,435,456 bytes).
Accepted source bytes per workspace256 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 stateClient action
sync_cursor_resetRead the current folder revision and request an explicit scan.
sync_claim_limitRead the saved folder and submit an explicit run to continue its saved page. Automatic polling stops at this limit.
scanHasMore: trueSubmit another explicit scan after the current scan completes.
Partial scanReview 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 operationLimit
TikTok research search20 videos per request.
Research transcript source25 MiB (26,214,400 bytes) and five minutes.
Meta insights refresh25 ads or the lower current capability limit.
Dictionary apply1–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.

Was this article helpful?

On this page