RaylightAPI

Productions

Cancel a production

Free before the greenlight. Refunded if greenlit but still waiting for a render machine. A production being made cannot be cancelled.

POST/v1/productions/{id}/cancel

API key with the productions scope.

Parameters

FieldInTypeDescription
idrequiredpathuuidThe production id.

Responses

200The cancelled production.
400Invalid request.
401Missing, invalid or revoked key.
403The key lacks the scope, or the key's owner has view-only access to the workspace (code forbidden).
404Not found.
409The production is being made (code stage).
429Rate limited, or a monthly cap reached.

200 response body

FieldTypeDescription
productionrequiredobject
production.idrequireduuid
production.workspaceIdrequireduuid
production.stagerequiredenumOne of: queued, writing_pitch, pitch_ready, greenlit, making, exporting, delivered, skipped, declined, cancelled, failed
production.sourcerequiredobject
production.source.kindrequiredenumOne of: app, api, mcp
production.source.externalIdrequiredstring | null
production.source.originobject | nullDefault null
production.source.origin.providerrequiredstring
production.source.origin.labelrequiredstring
production.source.origin.urlurl | nullDefault null
production.source.origin.refstring | nullDefault null
production.source.origin.requestedBystring | nullDefault null
production.briefrequiredobject
production.brief.intentrequiredstring
production.brief.contextstring | nullDefault null
production.brief.mediaobject[]
production.brief.media[].idrequiredstring
production.brief.media[].kindrequiredenumOne of: image, video
production.brief.media[].urlrequiredurl
production.brief.media[].namerequiredstring
production.brief.media[].descriptionstring | nullDefault null
production.brief.codeobject[]
production.brief.code[].pathrequiredstring
production.brief.code[].sourcerequiredstring
production.brief.code[].statusenum | nullOne of: added, modified, removed, renamedDefault null
production.brief.code[].additionsintegerDefault 0
production.brief.code[].deletionsintegerDefault 0
production.brief.code[].patchstring | nullDefault null
production.brief.code[].digeststring | nullDefault null
production.brief.code[].scorenumberDefault 0
production.brief.code[].sourceOmittedboolean
production.brief.formatobject
production.brief.format.templateenumOne of: changelog, launch, feature, digest, customDefault changelog
production.brief.format.durationMsintegerDefault 10000
production.brief.format.aspectenumOne of: 16:9, 4:3, 3:2, 21:9, 1:1, 9:16, 3:4, 2:3, 4:5Default 16:9
production.brief.format.soundobject
production.brief.format.sound.voiceoverbooleanDefault true
production.brief.format.sound.musicbooleanDefault true
production.brief.format.sound.sfxbooleanDefault true
production.brief.brandobject
production.brief.brand.namestring | nullDefault null
production.brief.brand.logoUrlurl | nullDefault null
production.brief.brand.primaryColorstring | nullDefault null
production.brief.brand.backgroundColorstring | nullDefault null
production.brief.brand.fontFamilystring | nullDefault null
production.brief.brand.tonestring | nullDefault null
production.pitchrequiredobject | null
production.pitch.versionrequiredinteger
production.pitch.verdictenumOne of: video, skipDefault video
production.pitch.verdictReasonstring | nullDefault null
production.pitch.titlerequiredstring
production.pitch.summaryrequiredstring
production.pitch.shotsrequiredobject[]
production.pitch.shots[].indexrequiredinteger
production.pitch.shots[].titlerequiredstring
production.pitch.shots[].durationMsrequiredinteger
production.pitch.shots[].beatstring | nullDefault null
production.pitch.shots[].visualrequiredstring
production.pitch.shots[].textstring | nullDefault null
production.pitch.shots[].voiceoverstring | nullDefault null
production.pitch.shots[].mediaIdsstring[]
production.pitch.shots[].codePathsstring[]
production.pitch.musicstring | nullDefault null
production.pitch.estimatedCreditsrequiredinteger
production.pitch.createdAtrequireddatetime
production.greenlightrequiredobject | null
production.greenlight.moderequiredenumOne of: manual, auto
production.greenlight.actorrequiredstring
production.greenlight.actorNamestring | null
production.greenlight.atrequireddatetime
production.greenlight.pitchVersionrequiredinteger
production.greenlightModerequiredenumOne of: manual, auto
production.deliveryrequiredobject | null
production.delivery.shareUrlrequiredurl
production.delivery.projectIdrequireduuid
production.delivery.editUrlrequiredurl
production.delivery.exportIdrequireduuid
production.delivery.deliveredAtrequireddatetime
production.projectIdrequireduuid | null
production.creditsChargedrequiredinteger
production.errorrequiredstring | nullWhy the production failed, in words you can show a person. Never the render machine's own diagnostics.
production.createdAtrequireddatetime
production.updatedAtrequireddatetime
production.terminalbooleanTrue once the stage is one the production never leaves (delivered, skipped, declined, cancelled, failed, or a terminal stage added later). Stop polling when it is true; it is computed by the server, so it stays right for stages your client does not know yet. Absent from payloads stored before the field existed.
production.pageUrlurlThe production's page in the Raylight app. Absent from payloads stored before the field existed.

Example

curl
curl -X POST https://api.raylight.app/v1/productions/$ID/cancel \  -H "Authorization: Bearer $RAYLIGHT_API_KEY"