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