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: