Skip to content
Webhooks

Create a webhook endpoint

POST/api/v1alpha1/webhooks

Registers an endpoint of yours and subscribes it to video.indexed, video.failed and run.completed events.

  • Store the secret now. The signing secret is returned in this response and never again. You need it to verify every delivery.
  • Access: an alpha-enabled API key with the MANAGE_WEBHOOKS permission.
  • URL rules: the endpoint must be HTTPS, must carry no credentials, and must resolve to a public address. Private, loopback, link-local and unique-local destinations are rejected.
  • Retries: send an Idempotency-Key. It still stops a retry from registering the endpoint twice, but this one operation cannot replay its response, because the secret is never written to the idempotency record. Repeating a completed call returns 409, and you should retry with a new key only if you did not store the secret. Reusing the key while the first call is still running returns 409, and reusing it with a different body returns 422.

After creating it, watch GET /api/v1alpha1/webhooks/{webhook_id}/deliveries to see whether deliveries are arriving.

AuthorizationBearer <token>

In: header

Header Parameters

Idempotency-Key?string

Optional key for safe retry of this POST. The key is retained for 24 hours and compared with the request payload and concrete path parameters.

Lengthlength <= 255

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X POST "https://example.com/api/v1alpha1/webhooks" \  -H "Authorization: Bearer $DEEPFRAME_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "description": "Warehouse review pipeline",    "events": [      "video.indexed",      "run.completed"    ],    "url": "https://hooks.example.com/deepframe"  }'
{  "created_at": "2026-08-08T10:00:00.000Z",  "description": "Warehouse review pipeline",  "enabled": true,  "events": [    "video.indexed",    "run.completed"  ],  "id": "wh_0190b5d4-7e1f-7a2b-9c3d-1234567890ab",  "secret": "whsec_c2RrX3Rlc3Q",  "updated_at": "2026-08-08T10:09:00.000Z",  "url": "https://hooks.example.com/deepframe"}