POST
/
api
/
v1
/
automation
/
get-upload-url
Get Upload URL
curl --request POST \
  --url https://public.reap.video/api/v1/automation/get-upload-url \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "filename": "<string>"
}'
{
  "uploadUrl": "<string>",
  "id": "<string>",
  "fileName": "<string>",
  "fileType": "<string>",
  "fileSize": 123,
  "contentType": "<string>",
  "status": "<string>",
  "createdAt": 123,
  "updatedAt": 123
}

Overview

Generate a secure, time-limited upload URL for video files. This endpoint creates a presigned URL that allows you to upload files directly to our storage service. After uploading, you can immediately use the upload ID in project creation - validation happens automatically when the file is first used.

Request Body

filename
string
required
Name of the file to upload (must include file extension)

File Requirements

Supported Formats

MP4 and MOV files only

File Size

Maximum: 5 GB per file

Filename Length

Maximum: 1000 characters

Content Validation

Files are validated when first used in a project

Response

uploadUrl
string
Presigned URL for uploading the file (expires after a limited time)
id
string
Unique identifier for this upload
fileName
string
Name of the file as it will be stored
fileType
string
Type of file (“video”, “audio”, or “image”)
fileSize
integer
Size of the file in bytes (null until upload completes)
contentType
string
MIME type of the file (null until upload completes)
status
string
Current status of the upload (“upload”, “verified”, or “rejected”)
createdAt
integer
Unix timestamp when the upload record was created
updatedAt
integer
Unix timestamp when the upload record was last updated

Example Request

curl -X POST "https://public.reap.video/api/v1/automation/get-upload-url" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "filename": "my-presentation.mp4"
  }'

Example Response

Upload Process

After receiving the upload URL, follow these steps:

1. Upload Your File

Use the provided uploadUrl to upload your video file:
curl -X PUT "UPLOAD_URL_FROM_RESPONSE" \
  -H "Content-Type: video/mp4" \
  --data-binary @/path/to/your/video.mp4
The upload URL expires after a limited time. Upload your file immediately after receiving the URL.

2. Use in Projects

After uploading, you can immediately use the upload ID in project creation endpoints like:

File Validation

Files are validated when first used in a project. The validation process checks:

File Format

Must be MP4 or MOV format with valid video streams

File Size

Maximum size of 5 GB per file

Duration Limits

Varies by project type (see individual project endpoints)

Video Quality

Must contain valid video and audio streams

Upload Status Flow

  • “upload” - Initial status after file upload
  • “verified” - File validated successfully when first used in a project
  • “rejected” - File failed validation when first used in a project
Files remain in “upload” status until they are used in a project for the first time. Only then are they validated and marked as “verified” or “rejected”.

Rate Limiting

This endpoint is subject to the standard rate limit of 10 requests per minute.

Best Practices

  • You can use upload IDs immediately after uploading - no need to wait for verification
  • Use descriptive filenames to help identify uploads later
  • Keep track of upload IDs for future reference
  • Handle upload failures gracefully by requesting new upload URLs
  • To reuse files, use uploads with “verified” status from the Get All Uploads endpoint

Next Steps

After uploading your file:
  1. Create a project using the upload ID (validation happens automatically):
  2. For reusing files, check Get All Uploads for uploads with “verified” status