Get up and running with the Reap Automation API in minutes
Get Upload URL
Upload Video
Create Project
Monitor Progress
Retrieve Results
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-video.mp4" }'
{ "uploadUrl": "https://upload.reap.video/...", "id": "65f1a2b3c4d5e6f7a8b9c0d1", "fileName": "my-video.mp4", "fileType": "video", "status": "upload" }
uploadUrl
curl -X PUT "UPLOAD_URL_FROM_STEP_1" \ -H "Content-Type: video/mp4" \ --data-binary @/path/to/your/video.mp4
curl -X POST "https://public.reap.video/api/v1/automation/create-clips" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "uploadId": "65f1a2b3c4d5e6f7a8b9c0d1", "genre": "talking", "exportResolution": 1080, "exportOrientation": "portrait", "reframeClips": true, "captionsPreset": "system_beasty", "enableEmojies": true, "enableHighlights": true, "language": "en" }'
{ "id": "65f1a2b3c4d5e6f7a8b9c0d2", "title": "my-video.mp4", "status": "processing", "projectType": "clipping", "billedDuration": 300.5, "createdAt": 1710345600 }
curl -X GET "https://public.reap.video/api/v1/automation/get-project-status?projectId=65f1a2b3c4d5e6f7a8b9c0d2" \ -H "Authorization: Bearer YOUR_API_KEY"
{ "projectId": "65f1a2b3c4d5e6f7a8b9c0d2", "projectType": "clipping", "source": "user_upload", "status": "completed" }
curl -X GET "https://public.reap.video/api/v1/automation/get-project-clips?projectId=65f1a2b3c4d5e6f7a8b9c0d2" \ -H "Authorization: Bearer YOUR_API_KEY"
{ "clips": [ { "id": "65f1a2b3c4d5e6f7a8b9c0d3", "projectId": "65f1a2b3c4d5e6f7a8b9c0d2", "clipUrl": "https://cdn.reap.video/clips/...", "title": "Engaging Moment 1", "duration": 30.5, "viralityScore": 8.7 } ], "totalClips": 5 }
const files = ['video1.mp4', 'video2.mp4', 'video3.mp4']; for (const file of files) { // Get upload URL const uploadResponse = await fetch('/automation/get-upload-url', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY' }, body: JSON.stringify({ filename: file }) }); // Upload and create project... }
try { const response = await fetch('/automation/create-clips', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY' }, body: JSON.stringify(projectData) }); if (!response.ok) { throw new Error(`API error: ${response.status}`); } const project = await response.json(); console.log('Project created:', project.id); } catch (error) { console.error('Failed to create project:', error.message); }