Search documentation
Search pages, API reference sections, and guide headings.
Summary
Webhooks deliver VideoVector events to your HTTPS endpoint for review operations, export handoff, import monitoring, and media processing automation.
Webhook endpoints
| Method | Path | Purpose |
|---|---|---|
POST | /api/v2/webhooks | Create a webhook |
GET | /api/v2/webhooks | List webhooks |
GET | /api/v2/webhooks/events | List supported event names |
GET | /api/v2/webhooks/{webhook_id} | Retrieve one webhook |
PATCH | /api/v2/webhooks/{webhook_id} | Update a webhook |
DELETE | /api/v2/webhooks/{webhook_id} | Delete a webhook |
POST | /api/v2/webhooks/{webhook_id}/rotate-secret | Rotate the signing secret |
POST | /api/v2/webhooks/{webhook_id}/test | Send a test event |
GET | /api/v2/webhooks/{webhook_id}/deliveries | List deliveries |
GET | /api/v2/webhooks/deliveries/{delivery_id} | Retrieve one delivery |
POST | /api/v2/webhooks/deliveries/{delivery_id}/retry | Retry a failed delivery |
Event model
The public SDK lists these supported event names:
media.createdmedia.processing.startedmedia.processing.completedmedia.processing.failedprompt_run.startedprompt_run.completedprompt_run.failedprompt_run.cancelledprompt_run.partial_completedprompt_run.progressexport.readyexport.failedimport_job.startedimport_job.completedimport_job.failedimport_job.partial_completedimport_job.progress
Example: create a webhook
curl -X POST /api/v2/webhooks \
-H "X-API-Key: sk_live_..." \
-H "Content-Type: application/json" \
-H "Idempotency-Key: webhook-review-events" \
-d '{
"name": "Review operations",
"url": "https://example.com/webhooks/videovector",
"events": ["prompt_run.completed", "export.ready"],
"index_ids": ["idx_archive"],
"metadata": {"owner":"review-ops"}
}'
Delivery headers and signature verification
Webhook deliveries include:
X-Webhook-SignatureX-Webhook-IDX-Delivery-IDX-Event-Type
The delivery worker signs the canonical JSON payload with HMAC-SHA256 and sends the header as sha256=<hex-digest>.
import hashlib
import hmac
import json
payload_json = json.dumps(payload, sort_keys=True)
expected = hmac.new(secret.encode("utf-8"), payload_json.encode("utf-8"), hashlib.sha256).hexdigest()
assert received_signature == f"sha256={expected}"
Delivery status and recovery
The delivery worker treats response classes differently:
2xx: success4xx: permanent failure, no automatic retry5xxand network failures: retryable failure
Use POST /api/v2/webhooks/deliveries/{delivery_id}/retry when the downstream issue is resolved.
Secret rotation
POST /api/v2/webhooks/{webhook_id}/rotate-secret returns a new secret. Update the receiving system before you depend on the next production delivery.
SDK equivalents
client.webhooks.createclient.webhooks.updateclient.webhooks.rotate_secretclient.webhooks.testclient.webhooks.list_deliveriesclient.webhooks.retry_delivery
Delivery inspection includes the payload, attempt counts, response status code, response body, error message, and retry scheduling fields.
Related documentation
This guide shows how to scope webhook events, validate signed deliveries, monitor delivery history, control downstream delivery, and maintain signing trust.
VideoVector exposes a public workflow layer for storage integration and downstream delivery. This page explains connectors, jobs, automations, exports, and event delivery as one model.
This page groups the supported public endpoints that do not fit cleanly into a primary workflow resource page but are still part of the public non-billing API surface.
