GET
/
api
/
v1
/
automation
/
get-project-status
Get Project Status
curl --request GET \
  --url https://public.reap.video/api/v1/automation/get-project-status \
  --header 'Authorization: Bearer <token>'
{
  "projectId": "<string>",
  "projectType": "<string>",
  "source": "<string>",
  "status": "<string>",
  "processing": {},
  "completed": {},
  "failed": {},
  "cancelled": {},
  "clipping": {},
  "captions": {},
  "reframe": {},
  "dubbing": {}
}

Overview

Get the current processing status of a video project. This is a lightweight endpoint that returns essential status information for monitoring project progress without fetching full project details.

Query Parameters

projectId
string
required
Unique identifier of the project to check

Response

projectId
string
The unique identifier of the project
projectType
string
Type of project (“clipping”, “captions”, “reframe”, or “dubbing”)
source
string
Source of the original video (“youtube”, “user_upload”, or “external”)
status
string
Current processing status of the project

Project Status Values

processing
status
Project is currently being processed by our AI systems
completed
status
Project has finished processing successfully - clips are ready
failed
status
Project processing failed due to an error
cancelled
status
Project was cancelled before completion

Project Type Values

clipping
project-type
AI-powered short clip generation from long-form videos
captions
project-type
Caption generation and styling for videos
reframe
project-type
Video reframing for different aspect ratios
dubbing
project-type
Voice dubbing and translation services

Example Request

curl -X GET "https://public.reap.video/api/v1/automation/get-project-status?projectId=65f1a2b3c4d5e6f7a8b9c0d1" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"

Example Response

Polling for Status Updates

For real-time monitoring, you can poll this endpoint at regular intervals:
async function waitForCompletion(projectId) {
  const pollInterval = 5000; // 5 seconds
  
  while (true) {
    const response = await fetch(`https://public.reap.video/api/v1/automation/get-project-status?projectId=${projectId}`, {
      headers: {
        'Authorization': 'Bearer YOUR_API_KEY',
        'Content-Type': 'application/json'
      }
    });
    
    const status = await response.json();
    
    if (status.status === 'completed') {
      console.log('Project completed successfully!');
      break;
    } else if (status.status === 'failed') {
      console.log('Project failed');
      break;
    }
    
    console.log('Still processing...');
    await new Promise(resolve => setTimeout(resolve, pollInterval));
  }
}

Processing Times

Typical processing times by project type:

Clipping Projects

5-15 minutes depending on video length and complexity

Caption Projects

2-5 minutes for most video lengths

Reframe Projects

3-8 minutes depending on video length

Dubbing Projects

10-20 minutes depending on video length and language pair

Rate Limiting

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

Best Practices

Polling Guidelines:
  • Poll every 5-10 seconds for active monitoring
  • Use exponential backoff for long-running projects
  • Handle rate limits gracefully in your polling logic
  • Consider using webhooks for production applications

Common Use Cases

Progress Monitoring

Track project progress in real-time user interfaces

Automated Workflows

Build automated systems that wait for project completion

Status Dashboards

Create monitoring dashboards for multiple projects

Error Handling

Detect and handle failed projects in your applications

Next Steps

Based on the project status: