API reference
MakeAIVideo Webhooks API
7 operations · https://app.makeaivideo.ai/api/v1
When to use the Webhooks API
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.
MakeAIVideo API guides
- 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.
Get an API key
The API and MCP server use the same credits and the same balance as the app, with no separate API plan. Create a key under Settings, Advanced, API keys.
7-day free trial with 350 credits, then plans from $9/mo. Cancel anytime before the trial ends.