Skip to main content
POST
Approve the cut

Authorizations

Authorization
string
header
required

A workspace API key.

Headers

idempotency-key
string
required

Required durable retry key. Reuse only for the identical logical request; a different payload returns conflict.

Required string length: 1 - 255

Body

application/json
projectId
string
required

Existing project that owns the proposal and approved renders.

Required string length: 1 - 200
parentJobId
string
required

Parent job id returned by the review-mode edit submission.

Required string length: 1 - 200
appliedCutIds
string[]
required

Cut ids from the stored proposal to apply; an empty list keeps all proposed footage.

Maximum array length: 5000
Minimum string length: 1
droppedTopicIds
string[]

Topic ids from clips[].topics[] to remove whole from the cut.

Maximum array length: 500
Minimum string length: 1
shortTopicIds
string[]

Topic ids to cut as their own vertical short, in publish order.

Maximum array length: 50
Minimum string length: 1
shortMomentIds
string[]

Moment ids from clips[].moments[] to cut as shorts, in publish order, after any short topics. With neither, shorts come from the best-scored moments.

Maximum array length: 50
Minimum string length: 1
expectedGeneration
integer

Revise an already rendered cut: send proposal.generation from GET /v1/jobs/{jobId}/proposal (0 after the first approval). A stale value answers 409 conflict with details.currentGeneration. Omit for the first approval.

Required range: 0 <= x <= 1000
{key}
any

Response

Success.

success
boolean
required
projectId
string
required
parentJobId
string
childJobIds
string[]
credits
number
creditBalance
number
{key}
any