Sovran
API documentation

Endpoint reference

Find routes, request rules, response fields, and error actions.

The API uses JSON over HTTPS. Add /api/v1 to the origin shown in API Playground. Some guides abbreviate routes, such as /projects. Add the /api/v1 prefix once when you build a request URL. Full paths, such as /api/v1/projects, already include it.

Download the OpenAPI 3.1 description for complete endpoint schemas and current permissions. OpenAPI is a machine-readable HTTP interface description.

Find a resource

TaskGuide
Projects, sequences, render estimates, and outputsCreate your first video
Upload reservations and asset preparationUploads
Compositions, captions, AI video, and voiceoversCreate and edit content
Editor mutations and searchesEditor tool reference
Provider connections, imports, publishing, and team controlsConnect, import, and publish
Jobs, retries, credits, and signed eventsJobs and webhooks
File sizes, output limits, and feature availabilityLimits and recovery

Requests and responses

Send Content-Type: application/json for a body. JSON bodies must be at most 1 MiB (1,048,576 bytes). Successful responses contain data and requestId. Errors contain error.code, error.message, and requestId. Save the request ID when you need help with a failed request.

Creation, changes, paid work, and retries need Idempotency-Key. This is a request token that prevents duplicate operations. Use a new token for each intended operation. If a request times out, send the same token and body again. The identity includes workspace, method, path, and token. Keys in one workspace share this identity. Changed input returns 409 idempotency_conflict. Never use a new token to bypass an unknown result.

POST /api/v1/projects
curl "$SOVRAN_API_ORIGIN/api/v1/projects" \
  -H "Authorization: Bearer $SOVRAN_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: project-2026-10-04-001" \
  --data '{"name":"My API project"}'

Lists and pagination

Paged lists use limit from 1 to 100 and an opaque cursor from nextCursor. The default limit is 50. Project composition lists use a default limit of 100. Keep requesting the returned cursor until nextCursor is null. Do not build or change cursor values yourself.

GET /api/v1/projects?limit=10
curl "$SOVRAN_API_ORIGIN/api/v1/projects?limit=10" \
  -H "Authorization: Bearer $SOVRAN_API_KEY"

Use the same page controls for project compositions. This request returns at most one item.

GET /api/v1/projects/{projectId}/compositions?limit=1
curl "$SOVRAN_API_ORIGIN/api/v1/projects/$PROJECT_ID/compositions?limit=1" \
  -H "Authorization: Bearer $SOVRAN_API_KEY"

A populated page can return a cursor for more items.

GET /api/v1/projects/{projectId}/compositions HTTP 200 — populated page
{
  "data": {
    "items": [{
      "id": "<COMPOSITION_UUID>",
      "projectId": "<PROJECT_UUID>",
      "title": "Example composition",
      "updatedAt": "2026-10-05T10:00:00.000Z",
      "composition": {
        "version": 1, "aspectRatio": "9:16", "backgroundColor": "#000000",
        "durationInFrames": 30, "fps": 30, "width": 1080, "height": 1920,
        "overlays": []
      }
    }],
    "nextCursor": "1"
  },
  "requestId": "<REQUEST_UUID>"
}

An empty page has no next cursor.

GET /api/v1/projects/{projectId}/compositions HTTP 200 — empty page
{
  "data": { "items": [], "nextCursor": null },
  "requestId": "<REQUEST_UUID>"
}

Handle HTTP errors

StatusNext action
400 or 422Correct the input identified by the error details.
401Check the host and key. Replace an expired or revoked key in API Playground.
403Check permissions, the creator's role, and the active paid plan.
404Check the resource ID and the key's workspace.
409Read error.code. Read current revisions or selection data before changing input. For an uncertain charge or provider result, follow job recovery.
413Reduce the body or file to the permitted size.
429Wait for the duration in Retry-After. Reuse the same token and body for the same operation.
503Check availability. For a temporary read failure, wait and read again. For a mutation, keep the same token and body.

Workspace keys share request counters. Current tier limits apply to ordinary requests, uploads, rendering, and AI work. An unavailable limit service returns 503.

All operations

Use this table to find each endpoint and its required permissions. Some operations also check the saved job, selected tool, or provider connection.

MethodEndpointActionPermissions
GET/api/v1/ad-launches/metaList meta ad-launchesread
POST/api/v1/ad-launches/metaAccept meta ad-launchesread, publish
GET/api/v1/ad-launches/meta/{jobId}Read meta ad-launches resultsread
POST/api/v1/ad-launches/meta/{jobId}/retryRequire Meta Ads Manager review before a new ad requestread, publish
GET/api/v1/ad-launches/tiktokList tiktok ad-launchesread
POST/api/v1/ad-launches/tiktokAccept tiktok ad-launchesread, publish
GET/api/v1/ad-launches/tiktok/{jobId}Read tiktok ad-launches resultsread
POST/api/v1/ad-launches/tiktok/{jobId}/retryRetry eligible tiktok ad-launchesread, publish
GET/api/v1/ai-video-modelsList ai-video-modelsread
GET/api/v1/ai-videos/{resourceId}Read ai-videos and verified output availabilityread
POST/api/v1/ai/veo-promptEnhance one Veo prompt with the native framing and audio optionsread, generate
GET/api/v1/assets/{assetId}Read an assetread
PATCH/api/v1/assets/{assetId}Rename an assetread, write
DELETE/api/v1/assets/{assetId}Delete an asset after impact checksread, delete
POST/api/v1/assets/{assetId}/analyzeRun native saved transcript and module analysis for one sourcegenerate
GET/api/v1/assets/{assetId}/captionsList captions and signed SRT URLsread
GET/api/v1/assets/{assetId}/captions/{language}Read captions for one languageread
PUT/api/v1/assets/{assetId}/captions/{language}Save an SRT file with a revision checkread, write
DELETE/api/v1/assets/{assetId}/captions/{language}Delete captions with a revision checkread, delete
GET/api/v1/assets/{assetId}/delete-impactRead asset deletion impactread
GET/api/v1/assets/{assetId}/knowledgeRead asset knowledge and ad rolesread
GET/api/v1/assets/{assetId}/mediaGet a short-lived source or thumbnail URLread
POST/api/v1/assets/{assetId}/reindexRetry saved asset analysiswrite
GET/api/v1/assets/{assetId}/storage-pathRead the saved or native inferred project media pathread
POST/api/v1/assets/{assetId}/tagsAdd or remove asset tagsread, write
PUT/api/v1/assets/{assetId}/tagsReplace asset tagsread, write
PUT/api/v1/assets/{assetId}/thumbnailSave a bounded JPEG or WebP thumbnail for a current video assetwrite
GET/api/v1/assets/{assetId}/transcriptRead timed transcript passagesread
POST/api/v1/assets/{assetId}/transcriptRequest transcript preparationread, generate
PATCH/api/v1/assets/{assetId}/transcriptSave transcript text with revision checksread, write
GET/api/v1/auto-edit-brief-templatesList built-in Creative Copilot templates and custom brief requirementsread
GET/api/v1/auto-edits/{resourceId}Read auto-edits and verified output availabilityread
GET/api/v1/avatar-videos/{resourceId}Read avatar-videos and verified output availabilityread
GET/api/v1/avatarsList avatarsread
POST/api/v1/avatarsCreate an avatar from verified project imagesread, write
POST/api/v1/avatars/{avatarId}/imagesAdd verified project photos to a saved avatarread, write
DELETE/api/v1/avatars/{avatarId}/images/{imageId}Remove one saved avatar photo with its current selectionread, delete
GET/api/v1/avatars/{avatarId}/images/{imageId}/mediaRead a signed avatar image URLread
GET/api/v1/avatars/{avatarId}/voiceoversList playable voice family versions and own approvalsread
PUT/api/v1/avatars/{avatarId}/voiceovers/{voiceoverId}/approvalRecord approval after reviewing the voice previewread, write
DELETE/api/v1/avatars/{avatarId}/voiceovers/{voiceoverId}/approvalRevoke an avatar voice approvalread, delete
GET/api/v1/avatars/{resourceId}Read avatarsread
PATCH/api/v1/avatars/{resourceId}Rename the saved voice or avatarread, write
DELETE/api/v1/avatars/{resourceId}Delete the saved voice or disable the avatarread, delete
GET/api/v1/cloud-drive/dropbox/export-destinationRead the saved Dropbox export folderread
PUT/api/v1/cloud-drive/dropbox/export-destinationSave a verified Dropbox export folderread, write
GET/api/v1/cloud-drive/dropbox/exportsList dropbox exportsread
POST/api/v1/cloud-drive/dropbox/exportsAccept dropbox exportsread, write
GET/api/v1/cloud-drive/dropbox/exports/{jobId}Read dropbox exportsread
POST/api/v1/cloud-drive/dropbox/exports/{jobId}/retryRetry eligible dropbox exportsread, write
GET/api/v1/cloud-drive/dropbox/filesBrowse one Dropbox folder pageread
GET/api/v1/cloud-drive/dropbox/folder-syncsList creator-owned saved Dropbox foldersread
POST/api/v1/cloud-drive/dropbox/folder-syncsConnect a saved Dropbox folder without importing old filesread, write
GET/api/v1/cloud-drive/dropbox/folder-syncs/{syncId}Read a saved Dropbox folder and its bounded progressread
PATCH/api/v1/cloud-drive/dropbox/folder-syncs/{syncId}Pause or activate a saved Dropbox folder with its revisionread, write
DELETE/api/v1/cloud-drive/dropbox/folder-syncs/{syncId}Disconnect a saved Dropbox folder with its revisionread, delete
GET/api/v1/cloud-drive/dropbox/folder-syncs/{syncId}/filesList saved file states for one Dropbox folderread
POST/api/v1/cloud-drive/dropbox/folder-syncs/{syncId}/runAccept one changes poll or one explicit bounded scanread, write
GET/api/v1/cloud-drive/dropbox/importsList dropbox importsread
POST/api/v1/cloud-drive/dropbox/importsAccept dropbox importsread, write
GET/api/v1/cloud-drive/dropbox/imports/{jobId}Read dropbox importsread
POST/api/v1/cloud-drive/dropbox/imports/{jobId}/retryRetry eligible dropbox importsread, write
GET/api/v1/cloud-drive/dropbox/syncsList dropbox syncsread
POST/api/v1/cloud-drive/dropbox/syncsAccept dropbox syncsread, write
GET/api/v1/cloud-drive/dropbox/syncs/{jobId}Read dropbox syncsread
POST/api/v1/cloud-drive/dropbox/syncs/{jobId}/retryRetry eligible dropbox syncsread, write
POST/api/v1/cloud-drive/dropbox/syncs/{jobId}/stopStop bounded Dropbox work after plan expiryread, write
GET/api/v1/cloud-drive/google-drive/export-destinationRead the saved Google Drive export folderread
PUT/api/v1/cloud-drive/google-drive/export-destinationSave a verified Google Drive export folderread, write
GET/api/v1/cloud-drive/google-drive/filesBrowse one Google Drive folder pageread
GET/api/v1/cloud-drive/google_drive/exportsList google_drive exportsread
POST/api/v1/cloud-drive/google_drive/exportsAccept google_drive exportsread, write
GET/api/v1/cloud-drive/google_drive/exports/{jobId}Read google_drive exportsread
POST/api/v1/cloud-drive/google_drive/exports/{jobId}/retryRetry eligible google_drive exportsread, write
GET/api/v1/cloud-drive/google_drive/importsList google_drive importsread
POST/api/v1/cloud-drive/google_drive/importsAccept google_drive importsread, write
GET/api/v1/cloud-drive/google_drive/imports/{jobId}Read google_drive importsread
POST/api/v1/cloud-drive/google_drive/imports/{jobId}/retryRetry eligible google_drive importsread, write
GET/api/v1/cloud-drive/google_drive/syncsGoogle Drive folder sync is discontinued (discontinued)read
POST/api/v1/cloud-drive/google_drive/syncsGoogle Drive folder sync is discontinued (discontinued)read, write
GET/api/v1/cloud-drive/google_drive/syncs/{jobId}Google Drive folder sync is discontinued (discontinued)read
GET/api/v1/compositions/{compositionId}Read an editor compositionread
PUT/api/v1/compositions/{compositionId}Replace an editor composition with its revisionread, write
DELETE/api/v1/compositions/{compositionId}Delete an editor composition after impact checksread, delete
POST/api/v1/compositions/{compositionId}/ai-actionsAccept an AI edit plan for customer reviewread, generate
POST/api/v1/compositions/{compositionId}/ai-actions/applyApply a reviewed saved plan with a revision checkread, write, generate
POST/api/v1/compositions/{compositionId}/ai-toolsRun an editor search, caption tool, or saved mutation jobread, generate + tool permissions
POST/api/v1/compositions/{compositionId}/background-removalsRemove one video background and apply its saved outputread, write, generate
GET/api/v1/compositions/{compositionId}/delete-impactRead guarded composition deletion impactread
POST/api/v1/compositions/{compositionId}/render-estimateEstimate one version 1 composition outputread
GET/api/v1/compositions/{compositionId}/rendersRead the twenty newest saved editor exportsread
POST/api/v1/compositions/{compositionId}/rendersAccept one frozen composition exportread, generate
GET/api/v1/compositions/{compositionId}/reviewsRead fixed review versions and available reviewersread
POST/api/v1/compositions/{compositionId}/reviewsCreate a fixed version from the saved editor revisiongenerate
GET/api/v1/dashboard/summaryRead workspace totals trends and recommendationsread
GET/api/v1/dictionaryList dictionaryread
POST/api/v1/dictionaryCreate a dictionary ruleread, write
POST/api/v1/dictionary/applyApply frozen rules to 1–100 explicit transcriptsread, write
GET/api/v1/dictionary/apply-previewRead bounded workspace dictionary impactread
GET/api/v1/dictionary/native-jobs/activeRead the active workspace dictionary updateread
GET/api/v1/dictionary/native-jobs/{resourceId}Read a native dictionary update jobread
POST/api/v1/dictionary/native-jobs/{resourceId}/cancelcancel a native dictionary update jobread, write
POST/api/v1/dictionary/native-jobs/{resourceId}/resumeresume a native dictionary update jobread, write
POST/api/v1/dictionary/native-jobs/{resourceId}/runRun at most twenty-five saved dictionary update itemsread, write
POST/api/v1/dictionary/native-jobs/{resourceId}/startStart a saved dictionary preview with frozen rulesread, write
POST/api/v1/dictionary/native-previewsCreate a saved bounded dictionary update previewread, write
DELETE/api/v1/dictionary/native-previews/{resourceId}Discard the current member saved dictionary previewread, delete
PATCH/api/v1/dictionary/{resourceId}Update a dictionary ruleread, write
DELETE/api/v1/dictionary/{resourceId}Delete a dictionary ruleread, delete
POST/api/v1/feedbackSend verified member feedbackread, write
GET/api/v1/integrationsRead connection and publishing capability flagsread
GET/api/v1/integrations/dropbox/accountsRead dropbox accountsread
DELETE/api/v1/integrations/dropbox/connectionDisconnect the current Dropbox accountread, delete
GET/api/v1/integrations/dropbox/connectionsRead dropbox connectionsread
DELETE/api/v1/integrations/google-drive/connectionDisconnect the current Google Drive accountread, delete
GET/api/v1/integrations/google_drive/accountsRead google_drive accountsread
GET/api/v1/integrations/google_drive/connectionsRead google_drive connectionsread
GET/api/v1/integrations/meta/accountsRead meta accountsread
GET/api/v1/integrations/meta/adsetsDiscover Meta ad setsread
POST/api/v1/integrations/meta/adsets/duplicateCopy one Meta ad set in paused stateread, publish
GET/api/v1/integrations/meta/campaignsDiscover Meta campaignsread
DELETE/api/v1/integrations/meta/connectionDisconnect the workspace Meta accountread, delete
GET/api/v1/integrations/meta/connectionsRead meta connectionsread
GET/api/v1/integrations/meta/thumbnail-setsRead saved render thumbnailsread
POST/api/v1/integrations/meta/thumbnail-setsCreate a saved render thumbnail setread, write
POST/api/v1/integrations/meta/thumbnail-sets/{setId}/imagesSave verified thumbnail imagesread, write
DELETE/api/v1/integrations/meta/thumbnail-sets/{setId}/images/{imageId}Remove one saved thumbnail imageread, delete
POST/api/v1/integrations/meta/thumbnail-sets/{setId}/uploadsReserve one bounded thumbnail uploadread, write
GET/api/v1/integrations/tiktok/accountsRead tiktok accountsread
GET/api/v1/integrations/tiktok/ad-templatesDiscover verified TikTok ad templatesread
GET/api/v1/integrations/tiktok/adgroupsDiscover TikTok ad groupsread
GET/api/v1/integrations/tiktok/campaignsDiscover TikTok campaignsread
DELETE/api/v1/integrations/tiktok/connectionDisconnect one workspace TikTok accountread, delete
GET/api/v1/integrations/tiktok/connectionsRead tiktok connectionsread
GET/api/v1/integrations/tiktok/identitiesDiscover supported TikTok identitiesread
GET/api/v1/jobs/{jobId}Read a job, child counts, output references, and safe errorsread
POST/api/v1/jobs/{jobId}/retryRetry eligible confirmed failed workread + saved job permissions
GET/api/v1/musicList active music catalog tracksread
POST/api/v1/onboarding/projectCreate or reuse your setup project and source sequenceread, write
GET/api/v1/projectsList workspace projectsread
POST/api/v1/projectsCreate a projectread, write
GET/api/v1/projects/{projectId}Read a projectread
PATCH/api/v1/projects/{projectId}Update a project with its revisionread, write
DELETE/api/v1/projects/{projectId}Delete a project after active-work guardsread, delete
GET/api/v1/projects/{projectId}/ai-video/historyRead saved AI video prompt historyread
DELETE/api/v1/projects/{projectId}/ai-video/history/{historyId}Hide one saved AI video history entryread, delete
POST/api/v1/projects/{projectId}/ai-video/{jobId}/resyncReconcile one accepted AI video jobread, generate
POST/api/v1/projects/{projectId}/ai-video/{jobId}/saveSave one ready AI or native Veo video output as a project assetread, write
GET/api/v1/projects/{projectId}/ai-video/{jobId}/statusRead exact saved AI, Veo, or Sora video job stateread
GET/api/v1/projects/{projectId}/ai-videosList ai-videosread
POST/api/v1/projects/{projectId}/ai-videosAccept ai-videosread, generate
POST/api/v1/projects/{projectId}/ai/voiceover-scriptDraft one voiceover script with the saved project strategyread, generate
GET/api/v1/projects/{projectId}/analysis-stateRead saved asset analysis and classification stateread
GET/api/v1/projects/{projectId}/anglesList anglesread
POST/api/v1/projects/{projectId}/anglesCreate anglesread, write
POST/api/v1/projects/{projectId}/angles/generateGenerate a angles proposal from saved contextread, generate
GET/api/v1/projects/{projectId}/angles/{resourceId}Read anglesread
PATCH/api/v1/projects/{projectId}/angles/{resourceId}Update angles with its revisionread, write
DELETE/api/v1/projects/{projectId}/angles/{resourceId}Delete angles with its revisionread, delete
GET/api/v1/projects/{projectId}/animated-emphasisRead animated emphasis defaultsread
PUT/api/v1/projects/{projectId}/animated-emphasisSave validated animated emphasis defaultswrite
GET/api/v1/projects/{projectId}/asset-inventoryFilter and sort project media with saved organization fieldsread
POST/api/v1/projects/{projectId}/asset-mirrorSynchronize registered project media and thumbnailswrite
GET/api/v1/projects/{projectId}/asset-organizationRead asset organization choicesread
PATCH/api/v1/projects/{projectId}/asset-organizationSet asset organizationwrite
POST/api/v1/projects/{projectId}/asset-searchSearch saved project video moments with one bounded provider requestgenerate
GET/api/v1/projects/{projectId}/assetsList project assets and preparation statusread
GET/api/v1/projects/{projectId}/audience-analysesList recent audience analysesread
POST/api/v1/projects/{projectId}/audience-analysesFind grounded audiences for a source videoread, generate
GET/api/v1/projects/{projectId}/audience-analyses/{resourceId}Read an audience analysisread
GET/api/v1/projects/{projectId}/audioRead a bounded native page of saved music and voiceover audioread
GET/api/v1/projects/{projectId}/auto-edit-templatesList auto-edit-templatesread
POST/api/v1/projects/{projectId}/auto-edit-templatesCreate auto-edit-templatesread, write
GET/api/v1/projects/{projectId}/auto-edit-templates/{resourceId}Read auto-edit-templatesread
PATCH/api/v1/projects/{projectId}/auto-edit-templates/{resourceId}Replace auto-edit-templates with its revisionread, write
DELETE/api/v1/projects/{projectId}/auto-edit-templates/{resourceId}Delete auto-edit-templates with its revisionread, delete
GET/api/v1/projects/{projectId}/auto-editsList auto-editsread
POST/api/v1/projects/{projectId}/auto-editsAccept auto-editsread, generate
GET/api/v1/projects/{projectId}/avatar-videosList avatar-videosread
POST/api/v1/projects/{projectId}/avatar-videosAccept avatar-videosread, generate
GET/api/v1/projects/{projectId}/brand-briefsList brand-briefsread
POST/api/v1/projects/{projectId}/brand-briefsCreate brand-briefsread, write
POST/api/v1/projects/{projectId}/brand-briefs/generateGenerate a brand-briefs proposal from saved contextread, generate
GET/api/v1/projects/{projectId}/brand-briefs/{resourceId}Read brand-briefsread
PATCH/api/v1/projects/{projectId}/brand-briefs/{resourceId}Update brand-briefs with its revisionread, write
DELETE/api/v1/projects/{projectId}/brand-briefs/{resourceId}Delete brand-briefs with its revisionread, delete
GET/api/v1/projects/{projectId}/briefsList briefsread
POST/api/v1/projects/{projectId}/briefsCreate briefsread, write
GET/api/v1/projects/{projectId}/briefs/{resourceId}Read briefsread
PATCH/api/v1/projects/{projectId}/briefs/{resourceId}Replace briefs with its revisionread, write
DELETE/api/v1/projects/{projectId}/briefs/{resourceId}Delete briefs with its revisionread, delete
GET/api/v1/projects/{projectId}/broll-remixesRead bounded saved B-roll remix history and source shot notesread
POST/api/v1/projects/{projectId}/broll-remixesCreate B-roll Remix drafts from project footage and an ad briefread, generate
GET/api/v1/projects/{projectId}/caption-stylesRead saved caption stylesread
POST/api/v1/projects/{projectId}/caption-stylesSave a caption stylewrite
PATCH/api/v1/projects/{projectId}/caption-styles/{styleId}Change a saved caption stylewrite
DELETE/api/v1/projects/{projectId}/caption-styles/{styleId}Delete a saved caption styledelete
GET/api/v1/projects/{projectId}/clip-candidatesRead stored clip candidatesread
POST/api/v1/projects/{projectId}/clip-candidates/exportApprove and export stored clip candidatesgenerate
PATCH/api/v1/projects/{projectId}/clip-candidates/{candidateId}Edit, restore, approve, or reassign a clip candidatewrite
POST/api/v1/projects/{projectId}/clip-remix-estimateEstimate saved clip permutations and freeze all render optionsread
POST/api/v1/projects/{projectId}/clip-remixesCreate a bounded saved clip remix render batchread, generate
GET/api/v1/projects/{projectId}/clipsList clipsread
POST/api/v1/projects/{projectId}/clipsAccept clipsread, generate
GET/api/v1/projects/{projectId}/compositionsList version 1 editor compositionsread
POST/api/v1/projects/{projectId}/compositionsCreate a version 1 editor compositionread, write
GET/api/v1/projects/{projectId}/context-healthRead generation readiness and evidence coverageread
GET/api/v1/projects/{projectId}/context-sourcesList context-sourcesread
POST/api/v1/projects/{projectId}/context-sourcesCreate context-sourcesread, write
POST/api/v1/projects/{projectId}/context-sources/bulkCreate a bounded context source batchread, write
POST/api/v1/projects/{projectId}/context-sources/importImport one website sourceread, write
GET/api/v1/projects/{projectId}/context-sources/{resourceId}Read context-sourcesread
PATCH/api/v1/projects/{projectId}/context-sources/{resourceId}Update context-sources with its revisionread, write
DELETE/api/v1/projects/{projectId}/context-sources/{resourceId}Delete context-sources with its revisionread, delete
POST/api/v1/projects/{projectId}/context/previewRead an unsaved website context previewread, generate
GET/api/v1/projects/{projectId}/copilot-historyRead personal Creative Copilot history preferencesread
PUT/api/v1/projects/{projectId}/copilot-historyHide or restore personal Creative Copilot historyread, write
POST/api/v1/projects/{projectId}/copy-assetsCopy saved assets without downloading their source mediawrite
GET/api/v1/projects/{projectId}/cut-clip-analysisRead saved spoken clip analysisread
POST/api/v1/projects/{projectId}/cut-clip-analysisStart saved spoken clip analysisgenerate
POST/api/v1/projects/{projectId}/cut-clip-analysis/{runId}/cancelCancel saved clip analysisgenerate
POST/api/v1/projects/{projectId}/cut-clip-analysis/{runId}/continueContinue one saved analysis claimgenerate
POST/api/v1/projects/{projectId}/download-packagesCreate or reuse a bounded Finished Videos ZIPread, write
GET/api/v1/projects/{projectId}/download-packages/{packageId}Read ZIP progress and a signed download URLread
POST/api/v1/projects/{projectId}/download-packages/{packageId}/cancelStop a queued ZIP or stop before the next fileread, write
DELETE/api/v1/projects/{projectId}/draft-cleanupDelete a draft batch with its fingerprintread, delete
POST/api/v1/projects/{projectId}/draft-cleanup/impactRead draft batch deletion impactread, write
POST/api/v1/projects/{projectId}/draft-render-estimateEstimate up to ten saved draft exportsread
GET/api/v1/projects/{projectId}/draft-render-statesRead the latest finished exports for saved draftsread
POST/api/v1/projects/{projectId}/draft-rendersAccept a frozen batch of saved draft exportsread, generate
GET/api/v1/projects/{projectId}/draft-renders/{batchId}Read saved draft batch export statesread
POST/api/v1/projects/{projectId}/draft-renders/{batchId}/retryRetry only confirmed failed draft exportsread, generate
GET/api/v1/projects/{projectId}/finished-videosList finished video historyread
POST/api/v1/projects/{projectId}/finished-videos/refreshRefresh up to ten stale native render status recordswrite
DELETE/api/v1/projects/{projectId}/finished-videos/{renderId}Delete a finished videodelete
POST/api/v1/projects/{projectId}/finished-videos/{renderId}/retryRetry an eligible native failed rendergenerate
POST/api/v1/projects/{projectId}/font-manifestResolve selected font variants for exportread
POST/api/v1/projects/{projectId}/font-uploadsReserve a font upload of up to 10 MiBwrite
POST/api/v1/projects/{projectId}/font-uploads/{uploadId}/completeInspect and save an uploaded font variantwrite
GET/api/v1/projects/{projectId}/fontsRead fonts and variantsread
POST/api/v1/projects/{projectId}/fontsUpload an inspected font variantwrite
PATCH/api/v1/projects/{projectId}/fonts/{fontId}Rename, archive, or restore a font familywrite
GET/api/v1/projects/{projectId}/fonts/{fontId}/previewRead a signed font preview linkread
GET/api/v1/projects/{projectId}/fonts/{fontId}/usageRead saved font usage before archiveread
POST/api/v1/projects/{projectId}/fonts/{fontId}/variants/prepareInspect a saved legacy font variantwrite
GET/api/v1/projects/{projectId}/insightsRead saved Meta performance insightsread
GET/api/v1/projects/{projectId}/insights/adsRead saved Meta ads performanceread
GET/api/v1/projects/{projectId}/insights/hooksRead saved Meta hooks performanceread
POST/api/v1/projects/{projectId}/insights/syncRefresh one linked Meta account with no media downloadsread, write
GET/api/v1/projects/{projectId}/integration-historyRead native UI integration historyread
POST/api/v1/projects/{projectId}/integration-history/{nativeId}/retryRetry eligible native UI integration workread, write
PUT/api/v1/projects/{projectId}/launch-defaultsSave project launch defaultsread, write
GET/api/v1/projects/{projectId}/media-ingestRead bounded media preparation jobs and retry inputsread
POST/api/v1/projects/{projectId}/media-ingest/wakeWake saved queued media preparationwrite
POST/api/v1/projects/{projectId}/media-ingest/{jobId}/retryRetry saved media preparationgenerate
GET/api/v1/projects/{projectId}/messagingList messagingread
POST/api/v1/projects/{projectId}/messagingCreate messagingread, write
POST/api/v1/projects/{projectId}/messaging-historySave deduplicated messaging use and additive targetingread, write
GET/api/v1/projects/{projectId}/messaging-targetedFind messages by targeting and textread
POST/api/v1/projects/{projectId}/messaging-targetedCreate deduplicated saved messaging with provenance and targetingread, write
GET/api/v1/projects/{projectId}/messaging-targeted/{resourceId}Read saved messaging and resolved targetingread
GET/api/v1/projects/{projectId}/messaging-templatesList messaging-templatesread
POST/api/v1/projects/{projectId}/messaging-templatesCreate messaging-templatesread, write
GET/api/v1/projects/{projectId}/messaging-templates/{resourceId}Read messaging-templatesread
PATCH/api/v1/projects/{projectId}/messaging-templates/{resourceId}Replace messaging-templates with its revisionread, write
DELETE/api/v1/projects/{projectId}/messaging-templates/{resourceId}Delete messaging-templates with its revisionread, delete
POST/api/v1/projects/{projectId}/messaging/generateGenerate hooks, scripts, or test groupsread, generate
GET/api/v1/projects/{projectId}/messaging/{resourceId}Read messagingread
PATCH/api/v1/projects/{projectId}/messaging/{resourceId}Replace messaging with its revisionread, write
DELETE/api/v1/projects/{projectId}/messaging/{resourceId}Delete messaging with its revisionread, delete
PUT/api/v1/projects/{projectId}/messaging/{resourceId}/archiveArchive or restore saved messagingread, write
POST/api/v1/projects/{projectId}/messaging/{resourceId}/selectionRecord a confirmed saved message selection onceread, write
PUT/api/v1/projects/{projectId}/messaging/{resourceId}/targetingReplace saved message targetingread, write
GET/api/v1/projects/{projectId}/meta/account-linkRead the project insights account linkread
PUT/api/v1/projects/{projectId}/meta/account-linkLink a connected Meta insights accountread, write
DELETE/api/v1/projects/{projectId}/meta/account-linkRemove the project insights account linkread, delete
GET/api/v1/projects/{projectId}/meta/account-spendRead saved account spendread
GET/api/v1/projects/{projectId}/meta/ad-mediaRead a current Meta ad video URLread
GET/api/v1/projects/{projectId}/meta/insights-labRead Meta diagnostics and past insight windowsread
GET/api/v1/projects/{projectId}/meta/launch-setupRead Meta launch defaults and recent targetsread
GET/api/v1/projects/{projectId}/meta/publishing-setupRead Facebook and Instagram publishing setupread
GET/api/v1/projects/{projectId}/meta/suggestionsRead actionable Meta suggestionsread
POST/api/v1/projects/{projectId}/meta/suggestions/dismissDismiss a bounded set of new Meta suggestionsread, write
POST/api/v1/projects/{projectId}/meta/suggestions/generateGenerate Meta suggestions from saved insightsread, generate
POST/api/v1/projects/{projectId}/meta/suggestions/{suggestionId}/actionApply a Meta suggestion actionread, write
GET/api/v1/projects/{projectId}/modulesRead saved native project module summariesread
POST/api/v1/projects/{projectId}/music/importImport one selected signed music result and reuse saved audiowrite
POST/api/v1/projects/{projectId}/music/searchSearch one native music page with signed import tokensgenerate
GET/api/v1/projects/{projectId}/naming-fieldsRead project naming-fieldsread
POST/api/v1/projects/{projectId}/naming-fieldsSave project naming-fieldsread, write
PATCH/api/v1/projects/{projectId}/naming-fields/{resourceId}patch project naming-fieldsread, write
DELETE/api/v1/projects/{projectId}/naming-fields/{resourceId}delete project naming-fieldsread, delete
GET/api/v1/projects/{projectId}/naming-templatesRead project naming-templatesread
POST/api/v1/projects/{projectId}/naming-templatesSave project naming-templatesread, write
PATCH/api/v1/projects/{projectId}/naming-templates/{resourceId}patch project naming-templatesread, write
DELETE/api/v1/projects/{projectId}/naming-templates/{resourceId}delete project naming-templatesread, delete
GET/api/v1/projects/{projectId}/onboarding-readinessRead your saved website setup and brand strategy readinessread
GET/api/v1/projects/{projectId}/personasList personasread
POST/api/v1/projects/{projectId}/personasCreate personasread, write
POST/api/v1/projects/{projectId}/personas/generateGenerate a personas proposal from saved contextread, generate
GET/api/v1/projects/{projectId}/personas/{resourceId}Read personasread
PATCH/api/v1/projects/{projectId}/personas/{resourceId}Update personas with its revisionread, write
DELETE/api/v1/projects/{projectId}/personas/{resourceId}Delete personas with its revisionread, delete
POST/api/v1/projects/{projectId}/recorded-voiceoversCreate a saved voiceover from uploaded audio and its corrected transcriptread, write
POST/api/v1/projects/{projectId}/recorded-voiceovers/{resourceId}/approveApprove an uploaded voiceover transcriptread, write
GET/api/v1/projects/{projectId}/research/facebookRead saved facebook researchread
POST/api/v1/projects/{projectId}/research/facebook/savesSave one server selected research resultread, write
GET/api/v1/projects/{projectId}/research/facebook/saves/{collection}List saved research in one collectionread
GET/api/v1/projects/{projectId}/research/facebook/saves/{collection}/{savedId}Read one saved research itemread
PATCH/api/v1/projects/{projectId}/research/facebook/saves/{collection}/{savedId}Update saved research notes with a revision checkread, write
DELETE/api/v1/projects/{projectId}/research/facebook/saves/{collection}/{savedId}Delete saved research with a revision checkread, delete
POST/api/v1/projects/{projectId}/research/facebook/searchQuery Facebook companies or one bounded ad pageread, generate
POST/api/v1/projects/{projectId}/research/facebook/{savedId}/adaptAdapt frozen research text to project contextread, generate
POST/api/v1/projects/{projectId}/research/facebook/{savedId}/transcriptTranscribe a bounded research video with saved audioread, generate
GET/api/v1/projects/{projectId}/research/tiktokTikTok research is discontinued (discontinued)read
POST/api/v1/projects/{projectId}/research/tiktok/savesTikTok research is discontinued (discontinued)read, write
GET/api/v1/projects/{projectId}/research/tiktok/saves/{collection}TikTok research is discontinued (discontinued)read
GET/api/v1/projects/{projectId}/research/tiktok/saves/{collection}/{savedId}TikTok research is discontinued (discontinued)read
PATCH/api/v1/projects/{projectId}/research/tiktok/saves/{collection}/{savedId}TikTok research is discontinued (discontinued)read, write
DELETE/api/v1/projects/{projectId}/research/tiktok/saves/{collection}/{savedId}TikTok research is discontinued (discontinued)read, delete
POST/api/v1/projects/{projectId}/research/tiktok/searchTikTok research is discontinued (discontinued)read, generate
POST/api/v1/projects/{projectId}/research/tiktok/{savedId}/adaptTikTok research is discontinued (discontinued)read, generate
POST/api/v1/projects/{projectId}/research/tiktok/{savedId}/transcriptTikTok research is discontinued (discontinued)read, generate
GET/api/v1/projects/{projectId}/saved-voiceoversList saved voiceover familiesread
PATCH/api/v1/projects/{projectId}/saved-voiceovers/{resourceId}Rename a saved voiceover familyread, write
DELETE/api/v1/projects/{projectId}/saved-voiceovers/{resourceId}Remove a saved voiceover familyread, delete
POST/api/v1/projects/{projectId}/saved-voiceovers/{resourceId}/speedSave or reuse one voiceover speed versionread, generate
GET/api/v1/projects/{projectId}/scene-detectionRead saved native scene detection status and retry budgetsread
POST/api/v1/projects/{projectId}/scene-detectionQueue bounded native scene detectiongenerate
GET/api/v1/projects/{projectId}/sequence-teamRead sequence team revisions and workspace creator namesread
GET/api/v1/projects/{projectId}/sequencesList project sequencesread
POST/api/v1/projects/{projectId}/sequencesCreate a sequenceread, write
GET/api/v1/projects/{projectId}/settingsRead project settingsread
PATCH/api/v1/projects/{projectId}/settingsSave project settingsread, write
PUT/api/v1/projects/{projectId}/smart-analyses/{resourceId}/restoresRestore selected rejected Smart combinations with their revisionread, write
GET/api/v1/projects/{projectId}/smart-draftsList Smart Variations drafts and original saved selection rangesread
POST/api/v1/projects/{projectId}/smart-draftsCreate native Smart Variations from project speech with source filters or a fixed hook or bodyread, generate
POST/api/v1/projects/{projectId}/smart-drafts/source-previewPreview Smart Variations source readiness and fixed section reference without generationread
POST/api/v1/projects/{projectId}/smart-drafts/{resourceId}/cancelcancel a saved Smart Variations runread, write
POST/api/v1/projects/{projectId}/smart-drafts/{resourceId}/resumeresume a saved Smart Variations runread, generate
GET/api/v1/projects/{projectId}/strategy-setupRead automatic project strategy setupread
POST/api/v1/projects/{projectId}/strategy-setupStart or retry automatic project strategy setupread, generate
GET/api/v1/projects/{projectId}/text-overlay-stylesRead saved editor text stylesread
POST/api/v1/projects/{projectId}/text-overlay-stylesSave an editor text stylewrite
PATCH/api/v1/projects/{projectId}/text-overlay-styles/{styleId}Change an editor text stylewrite
DELETE/api/v1/projects/{projectId}/text-overlay-styles/{styleId}Delete an editor text styledelete
GET/api/v1/projects/{projectId}/text-stylesRead saved text presetsread
POST/api/v1/projects/{projectId}/text-stylesSave a text presetwrite
PATCH/api/v1/projects/{projectId}/text-styles/{styleId}Change a text presetwrite
DELETE/api/v1/projects/{projectId}/text-styles/{styleId}Delete a text presetdelete
GET/api/v1/projects/{projectId}/tiktok/captionsRead saved TikTok caption historyread
GET/api/v1/projects/{projectId}/tiktok/launch-setupRead TikTok launch defaults and recent targetsread
GET/api/v1/projects/{projectId}/tiktok/performanceTikTok content performance is discontinued (discontinued)read
GET/api/v1/projects/{projectId}/tiktok/publishing-setupRead TikTok publishing setupread
POST/api/v1/projects/{projectId}/uploadsReserve a signed direct uploadread, write
POST/api/v1/projects/{projectId}/veo-videosCreate a native Veo job with the saved Vertex or Replicate configurationread, generate
GET/api/v1/projects/{projectId}/veo-videos/{jobId}Read a native Veo job and its saved outputread
GET/api/v1/projects/{projectId}/voiceover-remix-batchesList shared remix batchesread
GET/api/v1/projects/{projectId}/voiceover-remix-batches/{resourceId}Read remix checkpoints and draft reviewsread
PATCH/api/v1/projects/{projectId}/voiceover-remix-batches/{resourceId}Rename a shared remix batchread, write
POST/api/v1/projects/{projectId}/voiceover-remix-batches/{resourceId}/retryRetry at most two saved remix checkpointsread, generate
PUT/api/v1/projects/{projectId}/voiceover-remix-reviewsSave a shared remix draft reviewread, write
POST/api/v1/projects/{projectId}/voiceover-remixesCreate Voiceover Remix drafts from one saved voiceover and project footageread, generate
GET/api/v1/projects/{projectId}/voiceoversList voiceoversread
POST/api/v1/projects/{projectId}/voiceoversAccept voiceoversread, generate
GET/api/v1/projects/{projectId}/website-brand-styles/{sourceId}Read detected website stylesread
PUT/api/v1/projects/{projectId}/website-brand-styles/{sourceId}Save detected website styleswrite
PATCH/api/v1/projects/{projectId}/website-brand-styles/{sourceId}Change a detected website stylewrite
GET/api/v1/projects/{projectId}/website-brand-styles/{sourceId}/progressRead website import and brief progressread
GET/api/v1/publications/metaList meta publicationsread
POST/api/v1/publications/metaAccept meta publicationsread, publish
PATCH/api/v1/publications/meta/posts/{postId}Edit a published Facebook Reel captionread, publish
DELETE/api/v1/publications/meta/posts/{postId}Delete a published Facebook Reelread, delete
GET/api/v1/publications/meta/{jobId}Read meta publications resultsread
POST/api/v1/publications/meta/{jobId}/retryRetry eligible meta publicationsread, publish
GET/api/v1/publications/tiktokList tiktok publicationsread
POST/api/v1/publications/tiktokAccept tiktok publicationsread, publish
GET/api/v1/publications/tiktok/{jobId}Read tiktok publications resultsread
POST/api/v1/publications/tiktok/{jobId}/retryRetry eligible tiktok publicationsread, publish
GET/api/v1/referrals/redemptionRead saved referral acceptance for workspace billingread
POST/api/v1/referrals/redemptionRedeem an explicit referral code and save acceptanceread, write
GET/api/v1/referrals/summaryRead the workspace referral link and rewardsread
GET/api/v1/renders/{renderId}/outputsRead durable outputs and short-lived media URLsread
PATCH/api/v1/review-comments/{commentId}Edit your review commentwrite
DELETE/api/v1/review-comments/{commentId}Delete your review commentdelete
PATCH/api/v1/review-threads/{threadId}Resolve or reopen a review threadwrite
GET/api/v1/reviews/{reviewVersionId}Read a fixed review and its feedbackread
POST/api/v1/reviews/{reviewVersionId}/commentsAdd a timed comment or replywrite
POST/api/v1/reviews/{reviewVersionId}/decisionsApprove or request changes as an assigned reviewerwrite
POST/api/v1/reviews/{reviewVersionId}/retryRetry an eligible fixed review rendergenerate
GET/api/v1/sequences/{sequenceId}Read a sequenceread
PATCH/api/v1/sequences/{sequenceId}Update sequence name or descriptionread, write
DELETE/api/v1/sequences/{sequenceId}Delete a sequenceread, delete
GET/api/v1/sequences/{sequenceId}/auto-clipsRead automatic clip selections and progressread
PATCH/api/v1/sequences/{sequenceId}/auto-clipsEnable or disable automatic clip selectionswrite
POST/api/v1/sequences/{sequenceId}/auto-clips/exclusionsExclude automatic clips from a rolewrite
DELETE/api/v1/sequences/{sequenceId}/auto-clips/exclusionsRestore an excluded automatic clipdelete
POST/api/v1/sequences/{sequenceId}/captions/preparePrepare selected native captions from saved transcript timingwrite
POST/api/v1/sequences/{sequenceId}/combination-editorsOpen the native editor for one combinationwrite
POST/api/v1/sequences/{sequenceId}/combination-editors/previewRead an edited combination previewread
POST/api/v1/sequences/{sequenceId}/combination-editors/statusRead edited and stale combination mappingsread
DELETE/api/v1/sequences/{sequenceId}/combination-editors/{combinationId}Reset one combination mapping while keeping its draftdelete
POST/api/v1/sequences/{sequenceId}/combination-previewRead native combination readiness and selection previewread
POST/api/v1/sequences/{sequenceId}/combination-preview/pageRead the next bounded native combination preview pageread
GET/api/v1/sequences/{sequenceId}/combination-selectionRead a saved combination shortlistread
PUT/api/v1/sequences/{sequenceId}/combination-selectionSave a combination shortlist with its revisionwrite
GET/api/v1/sequences/{sequenceId}/combinationsRead the clip selection manifest and fingerprintread
GET/api/v1/sequences/{sequenceId}/compositionsRead compositions with saved sequence timeline editsread
PUT/api/v1/sequences/{sequenceId}/configurationReplace sequence configuration with a revision checkread, write
POST/api/v1/sequences/{sequenceId}/onboarding-previewRender one free 360p onboarding draft from its frozen estimateread, generate
POST/api/v1/sequences/{sequenceId}/onboarding-preview-estimateFreeze one free 360p onboarding draft planread
POST/api/v1/sequences/{sequenceId}/preview-estimateFreeze one or two native free draft samplesread
POST/api/v1/sequences/{sequenceId}/preview-rendersRender one or two free 360p samples from a frozen estimateread, generate
POST/api/v1/sequences/{sequenceId}/render-estimateEstimate finished outputs and render creditsread
POST/api/v1/sequences/{sequenceId}/rendersAccept a frozen background render batchread, generate
GET/api/v1/sequences/{sequenceId}/smart-variationsList Smart analysesread
POST/api/v1/sequences/{sequenceId}/smart-variationsAccept a bounded Smart analysisread, generate
GET/api/v1/sequences/{sequenceId}/smart-variations/{resourceId}Read a saved Smart analysisread
GET/api/v1/sequences/{sequenceId}/text-rendersRead saved Modular Builder text rendersread
POST/api/v1/sequences/{sequenceId}/text-rendersRender a bounded matrix of saved clips and text recipesgenerate
PATCH/api/v1/sequences/{sequenceId}/text-rendersDismiss your saved text render tracking rowswrite
POST/api/v1/sequences/{sequenceId}/text-renders/removedMark removed generated text clips for a saved sequence blockwrite
POST/api/v1/sequences/{sequenceId}/text-renders/{renderId}/retryRetry your failed text render with its saved recipegenerate
GET/api/v1/sequences/{sequenceId}/voice-isolationRead sequence voice isolation and source preparationread
POST/api/v1/sequences/{sequenceId}/voice-isolationRequest sequence voice isolationgenerate
DELETE/api/v1/sequences/{sequenceId}/voice-isolationUse original audio for selected sequence assetsdelete
POST/api/v1/sequences/{sequenceId}/voice-isolation/retryRetry failed sequence voice isolationgenerate
GET/api/v1/smart-drafts/{resourceId}Read native Smart Variations outputs and original saved selection rangesread
GET/api/v1/sound-effectsRead the built-in sound libraryread
GET/api/v1/uploads/{uploadId}Read an upload reservationread
POST/api/v1/uploads/{uploadId}/completeVerify stored path, size, and MIME typeread, write
GET/api/v1/usageRead paid plan status, API eligibility, and existing feature balancesread
GET/api/v1/voice-clonesList voice-clonesread
POST/api/v1/voice-clonesReserve a voice sample upload or selected project videoread, generate
GET/api/v1/voice-clones/{resourceId}Read voice-clonesread
PATCH/api/v1/voice-clones/{resourceId}Rename the saved voice or avatarread, write
DELETE/api/v1/voice-clones/{resourceId}Delete the saved voice or disable the avatarread, delete
POST/api/v1/voice-clones/{resourceId}/cancelCancel a voice clone and its saved sampleread, delete
GET/api/v1/voice-clones/{resourceId}/mediaRead a signed voice preview URLread
POST/api/v1/voice-clones/{resourceId}/runVerify the saved sample and accept voice cloningread, generate
GET/api/v1/voiceover-preferencesRead the current member favorite voiceread
PUT/api/v1/voiceover-preferencesSave the current member favorite voiceread, write
GET/api/v1/voiceovers/{resourceId}Read voiceovers and verified output availabilityread
GET/api/v1/voicesList voicesread
POST/api/v1/voices/previewGet a bounded voice preview samplegenerate
GET/api/v1/workspaceRead workspace detailsread
PATCH/api/v1/workspaceRename workspace as its ownerread, write
GET/api/v1/workspace/invitationsList workspace/invitationsread
POST/api/v1/workspace/invitationsCreate and email an invitationread, write
DELETE/api/v1/workspace/invitations/{resourceId}Revoke an invitationread, delete
POST/api/v1/workspace/invitations/{resourceId}/resendResend an invitation to its expected addressread, write
GET/api/v1/workspace/membersList workspace/membersread
PATCH/api/v1/workspace/members/{resourceId}Change a member role with an expected roleread, write
DELETE/api/v1/workspace/members/{resourceId}Remove a member and revoke cloud accessread, delete

Admin tools, workers, provider callbacks, checkout, and account deletion are outside this API. Connect provider accounts in the dashboard.

Was this article helpful?

On this page