Skip to main content
POST
/
automation
/
cancel-project
Cancel Project
curl --request POST \
  --url https://public.reap.video/api/v1/automation/cancel-project \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "projectId": "<string>"
}
'
{
  "id": "<string>",
  "title": "<string>",
  "thumbnail": "<string>",
  "billedDuration": 123,
  "genre": "talking",
  "topics": [
    "<string>"
  ],
  "clipDurations": [
    [
      123
    ]
  ],
  "selectedStart": 123,
  "selectedEnd": 123,
  "reframeClips": true,
  "exportResolution": 123,
  "captionsPreset": "<string>",
  "enableCaptions": true,
  "enableEmojis": true,
  "enableHighlights": true,
  "language": "<string>",
  "dubbingLanguage": "<string>",
  "translateTranscription": true,
  "translationLanguages": [
    "<string>"
  ],
  "transcriptionScript": "native",
  "metadata": {
    "width": 123,
    "height": 123,
    "aspectRatio": "<string>",
    "size": 123,
    "bitrate": 123,
    "fps": 123,
    "duration": 123,
    "rotation": 123,
    "resolution": 123,
    "codec": "<string>",
    "codecFullName": "<string>",
    "codecTag": "<string>",
    "format": "<string>",
    "formatFullName": "<string>"
  },
  "urls": {},
  "createdAt": 123,
  "updatedAt": 123
}
For AI agents: a documentation index is at /llms.txt. Every page is also available as markdown, just append .md to the URL.

Overview

Cancel a project that is still processing. On cancel, the project moves to a cancelled status and its credits are refunded automatically — there’s no separate call to make. A cancelled project stays in your workspace and remains fully readable, but it can no longer be edited, published, or scheduled.

Rate Limiting

This endpoint is rate limited to 10 requests per minute per API key.

When a project can be cancelled

You can cancel a project only while it’s still processing, in either of these cases:
  • Just after you start it — while Reap is still preparing your video, before any clips or outputs have been generated.
  • If it looks stuck — it’s been processing for more than ~8 hours without finishing.
Once a project has finished (completed or failed) — or has already been cancelled — it can’t be cancelled again, and the API responds with 400.
Cancelling refunds the project’s credits automatically. There’s no separate call to make, and credits are refunded only once.

After cancelling

A cancelled project stays in your workspace and remains fully readable, but it’s locked for edits. Still available No longer available (these return 400)

Response

id
string
Unique project identifier
title
string
Project title
thumbnail
string
Thumbnail URL for the project
billedDuration
number
Duration in seconds that was billed for this project
status
string
Current processing status. After a successful cancel, this is cancelled.
projectType
string
Type of project
source
string
Source of the video content
genre
string
Video genre used for AI analysis
topics
array
Array of identified topics in the video
clipDurations
array
Array of clip duration preferences
selectedStart
number
Start time in seconds for processing (null if entire video)
selectedEnd
number
End time in seconds for processing (null if entire video)
reframeClips
boolean
Whether clips are automatically reframed
exportResolution
integer
Output resolution for the project
exportOrientation
string
Output orientation
captionsPreset
string
Caption style preset ID (null if captions disabled)
enableCaptions
boolean
Whether captions are enabled
enableEmojis
boolean
Whether emojis are added to captions
enableHighlights
boolean
Whether keyword highlighting is enabled
language
string
Primary language of the video content
dubbingLanguage
string
Target dubbing language (null if not applicable)
translateTranscription
boolean
Whether transcription is translated
translationLanguages
array
Array of languages for translation
transcriptionScript
string
Script format for transcription (“native” or “roman”)
metadata
object
Video file metadata including duration, resolution, format, etc.
urls
object
Project URLs and assets
createdAt
integer
Unix timestamp when the project was created
updatedAt
integer
Unix timestamp when the project was last updated

Example Request

curl -X POST "https://public.reap.video/api/v1/automation/cancel-project" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "projectId": "65f1a2b3c4d5e6f7a8b9c0d2"
  }'

Example Response

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
projectId
string
required

ID of the project to cancel

Response

200 - application/json

Successful response

id
string
title
string
thumbnail
string
billedDuration
number
status
enum<string>
Available options:
queued,
prepped,
draft,
processing,
finalizing,
completed,
invalid,
expired,
failed,
error
projectType
enum<string>
Available options:
clipping,
captions,
reframe,
dubbing,
transcription
source
enum<string>
Available options:
Upload,
Youtube,
Vimeo,
TwitchVod,
Twitter,
RumbleEmbed,
Generic
genre
enum<string>
default:talking
Available options:
talking,
screenshare,
gaming
topics
string[]
clipDurations
integer[][]
selectedStart
number | null
selectedEnd
number | null
reframeClips
boolean
exportResolution
integer
exportOrientation
enum<string>
Available options:
landscape,
portrait,
square
captionsPreset
string | null
enableCaptions
boolean
enableEmojis
boolean
enableHighlights
boolean
language
string | null
dubbingLanguage
string | null
translateTranscription
boolean
translationLanguages
string[]
transcriptionScript
enum<string>
default:native
Available options:
native,
roman
metadata
object
urls
object
createdAt
integer
updatedAt
integer