Remakes
Resume a stopped remake
Reopens a remake that failed with cli_stopped or tab_lost within the last 24 hours: the project goes back to blank, every shot back to skeleton, and the project is held again. Rebuild from the local run, then attach.
POST
/v1/remakes/{id}/resumeAPI key with the remake scope.
Parameters
| Field | In | Type | Description |
|---|---|---|---|
idrequired | path | uuid | The remake id. |
Responses
200The reopened remake.
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 remake cannot be resumed (code
stage), or another remake of yours is running (code remake_running).429Rate limited, or a monthly cap reached.
200 response body
| Field | Type | Description |
|---|---|---|
remakerequired | object | |
remake.idrequired | uuid | |
remake.statusrequired | enum | The furthest stage reached: studying (the study runs on your machine), building (shots land in the project as they are built; overlaps studying), polishing (the film-wide pass), needs_repair (the CLI is running the repair session), then done, failed or canceled. New values may be added; treat unknown ones as opaque.One of: studying, building, polishing, needs_repair, done, failed, canceled |
remake.projectIdrequired | uuid | null | |
remake.projectUrlrequired | url | null | |
remake.shotsrequired | object[] | |
remake.shots[].indexrequired | integer | |
remake.shots[].startMsrequired | number | |
remake.shots[].durationMsrequired | number | |
remake.shots[].staterequired | enum | One of: skeleton, building, built, failed |
remake.repairrequired | object | null | |
remake.repair.requestedrequired | boolean | |
remake.repair.uncoveredrequired | object[] | |
remake.repair.uncovered[].segmentIdrequired | string | |
remake.repair.uncovered[].firstMsrequired | number | |
remake.repair.uncovered[].lastMsrequired | number | |
remake.repair.uncovered[].boxrequired | object | |
remake.repair.uncovered[].box.xrequired | number | |
remake.repair.uncovered[].box.yrequired | number | |
remake.repair.uncovered[].box.wrequired | number | |
remake.repair.uncovered[].box.hrequired | number | |
remake.repair.uncovered[].samplesrequired | integer | |
remake.reportrequired | object | null | |
remake.report.glitchesrequired | any[] | |
remake.report.gapsrequired | any[] | |
remake.report.notesrequired | string[] | |
remake.errorrequired | string | null | |
remake.errorCoderequired | enum | null | One of: cli_stopped, tab_lost, study_error, build_error |
remake.libraryEligiblerequired | boolean | Whether this remake (the video, the study and the plan applied) may feed Raylight's motion library. False once the owner or the workspace turns data sharing off (Settings, Improve Raylight); that switch is the only opt-out. |
remake.sourcerequired | object | |
remake.source.fileNamerequired | string | |
remake.source.durationMsrequired | integer | |
remake.source.widthrequired | integer | |
remake.source.heightrequired | integer | |
remake.source.fpsrequired | number | |
remake.agentrequired | enum | One of: claude, codex |
remake.builderrequired | object | |
remake.builder.attachedrequired | boolean | |
remake.builder.lastSeenAtrequired | string | null | |
remake.createdAtrequired | string | |
remake.updatedAtrequired | string |
Example
curl -X POST https://api.raylight.app/v1/remakes/$ID/resume \ -H "Authorization: Bearer $RAYLIGHT_API_KEY"