For AI agents: a documentation index is at /llms.txt. Every page is also available as markdown, just append .md to the URL.
Overview
Webhooks let Reap push status updates to your server the moment a video project reaches a final state — no more polling. When a project completes, fails, or expires, Reap sends a POST request to your configured endpoint with the project’s status.How It Works
1
Create a Project
Use the API to create a clipping, captions, transcription, reframe, or dubbing project as usual.
2
Processing Begins
Reap processes your video in the background.
3
Project Reaches Final State
The project finishes with a status of
completed or invalid.4
Reap Sends a Webhook
A POST request with the project status is sent to every active webhook URL configured in your studio.
5
Your Server Processes the Event
Your endpoint receives the payload, returns HTTP 200 with an empty body, and handles the event.
Webhook Payload
Every webhook delivery sends a JSON POST request with this structure:Unique identifier of the project.
Type of project:
clipping, captions, reframe, dubbing, or transcription.Source of the original video:
Youtube, Upload, or Generic.The final status that triggered the webhook.
Statuses That Trigger Webhooks
Webhooks are only sent when a project reaches a final state. You will not receive webhooks for intermediate states like
processing.Setting Up a Webhook
Webhooks are configured from the Reap dashboard, not via the API.The documentation is public. Dashboard links require a Reap account and are only needed for account setup, API key management, integrations, or webhook configuration.
1
Open Webhook Settings
Log in to your Reap dashboard and navigate to Profile > Settings > Webhooks.
2
Create a New Webhook
Click Create Webhook. Provide a descriptive name and your HTTPS endpoint URL.
3
Validation
Reap sends a test POST request to your URL with the following dummy payload. Your endpoint must return HTTP 200 with an empty response body within 5 seconds.
4
Webhook is Active
Once the test passes, the webhook is saved and active. All future project status changes in your studio will be delivered to this endpoint.
Endpoint Requirements
Your webhook endpoint must meet these requirements:HTTPS Only
The URL must use HTTPS. HTTP, localhost, and private IP addresses are not allowed.
Accept POST with JSON
Your endpoint must accept POST requests with a
Content-Type: application/json body.Return 200 Empty
Respond with HTTP status 200 and an empty response body. Any other status code is treated as a failure.
Respond Within Timeout
Respond within 5 seconds during webhook creation/validation, and within 10 seconds for live deliveries. Exceeding the timeout counts as a failure.
URL Restrictions
Your webhook URL must pass these validation checks:- Must use the
https://scheme - Cannot point to
localhost,127.0.0.1, or0.0.0.0 - Cannot point to private or reserved IP address ranges
Example Webhook Receiver
Managing Webhooks
All webhook management is done from the Reap dashboard under Profile > Settings > Webhooks. You can:- Update the name or URL of an existing webhook. Changing the URL triggers a new test request.
- Disable/Enable a webhook. Re-enabling a disabled webhook triggers a test request to verify your endpoint is working.
- Delete a webhook to stop receiving notifications permanently.
- View delivery history for each webhook, including response codes and delivery times.
Auto-Disable on Failures
Reap tracks consecutive delivery failures for each webhook:- Each failed delivery (non-200 response, timeout, or unreachable endpoint) increments the failure counter.
- After 5 consecutive failures, the webhook is automatically disabled and you are notified via email.
- Any successful delivery resets the failure counter back to 0.
- Fix the issue with your endpoint
- Go to Profile > Settings > Webhooks in the dashboard
- Toggle the webhook back on (this triggers a test request)
Plan Limits
Best Practices
Respond Fast
Return 200 immediately and process the event asynchronously. Don’t do heavy work before responding.
Handle Duplicates
Design your handler to be idempotent. In rare cases, you may receive the same event more than once.
Monitor Deliveries
Check webhook delivery history in your dashboard regularly to catch issues before the auto-disable threshold.
Have a Fallback
Use Get Project Status as a fallback for critical workflows in case a webhook delivery is missed.
Next Steps
- Get Project Status — fallback polling endpoint
- Get Project Details — fetch full project data after a
completedwebhook - Get Project Clips — retrieve generated clips after completion