RaylightAPI

Productions

Read a production

The production with its full brief, its timeline (events and comments, each with actorName), and its place in the render queue.

GET/v1/productions/{id}

API key with the productions scope.

Parameters

FieldInTypeDescription
idrequiredpathuuidThe production id.

Responses

200The production with its timeline.
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.
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.
eventsrequiredobject[]
events[].idrequireduuid
events[].productionIdrequireduuid
events[].kindrequiredenumOne of: created, stage, pitch, comment, greenlit, declined, cancelled, delivered, failed, note
events[].actorrequiredstring
events[].actorNamestring | nullThe name a person reads for actor: the user's name or email, the email behind a link, "Auto-greenlight", "Raylight", or null when unknown.
events[].payloadrequiredobjectThe fields that kind of event carries for a reader: the stage, the comment, the credits charged or refunded, the error, your own externalId on created, and on a progress note the phase the production moved to. Nothing else is included.
events[].createdAtrequireddatetime
queuerequiredobject | null
queue.phaseenum | anyDefault null
queue.startedAtrequireddatetime | null
queue.retryingbooleanDefault false
queue.lastProgressrequiredstring | null
pitchMarkdownrequiredstring | null

Example

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