API reference
Webhooks API
7 operations · https://app.makeaivideo.ai/api/v1
What the webhooks endpoints are for
Manage the subscriptions that let you stop polling. Renders take minutes, and a webhook turns waiting into an event you receive rather than a loop you run.
Every delivery is signed, so a handler must verify the HMAC before trusting the body. Two endpoints exist specifically for the debugging you will otherwise do blind: POST /webhooks/{id}/test sends a signed ping from our servers so you can check your endpoint and your signature check without waiting for a real render, and GET /webhooks/{id}/deliveries returns the last 50 attempts when deliveries start failing.
The verification code and the retry schedule are on the webhooks guide.
curl -X POST https://app.makeaivideo.ai/api/v1/webhooks \
-H "Authorization: Bearer $MAV_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/hooks/makeaivideo",
"events": ["video.ready"]
}'/webhooksreadList webhooks
GET https://app.makeaivideo.ai/api/v1/webhooks
Responses
200Webhooks
/webhookswriteCreate a webhook (secret returned once)
POST https://app.makeaivideo.ai/api/v1/webhooks
Responses
201Created; `secret` appears only here400Bad URL or unknown eventErrorEnvelope
/webhooks/{id}readWebhook detail
GET https://app.makeaivideo.ai/api/v1/webhooks/{id}
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| idrequired | path | string | Webhook id, e.g. wh_abc123 |
Responses
200WebhookWebhook
/webhooks/{id}writeUpdate URL, events, name, or re-enable
PATCH https://app.makeaivideo.ai/api/v1/webhooks/{id}
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| idrequired | path | string | Webhook id, e.g. wh_abc123 |
Responses
200WebhookWebhook
/webhooks/{id}writeDelete a webhook
DELETE https://app.makeaivideo.ai/api/v1/webhooks/{id}
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| idrequired | path | string | Webhook id, e.g. wh_abc123 |
Responses
200Deleted
/webhooks/{id}/testwriteSend a signed test ping (data.test = true)
POST https://app.makeaivideo.ai/api/v1/webhooks/{id}/test
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| idrequired | path | string | Webhook id, e.g. wh_abc123 |
Responses
200Result
/webhooks/{id}/deliveriesreadLast 50 delivery attempts
GET https://app.makeaivideo.ai/api/v1/webhooks/{id}/deliveries
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| idrequired | path | string | Webhook id, e.g. wh_abc123 |
Responses
200Deliveries
Webhooks API questions
- How do I test a webhook without rendering a video?
- POST /webhooks/{id}/test sends a signed test ping from our servers. The payload carries data.test = true, so a handler can tell it from a real event.
- Why did my webhook stop receiving events?
- Twenty consecutive delivery failures disable a subscription. Check GET /webhooks/{id}/deliveries for the failures, fix the endpoint, then re-enable it with PATCH is_active true.
- How do I verify a webhook came from MakeAIVideo?
- Compare the X-MakeAIVideo-Signature header against an HMAC-SHA256 of the raw request body keyed with your webhook secret, in constant time. Verify before parsing the JSON, because re-serialising a parsed object changes the bytes.
Related
- Quickstart — the create, poll and download loop end to end.
- Authentication — what the read, write scope on this page mean.
- Agents — calling these endpoints from an autonomous agent.