Registers a URL to receive the events you subscribe to. Duplicated
event ids are collapsed; an unknown one is refused with
warning-invalid-events listing the valid ids.
This is the only response that carries the signing secret. Store it
now: every later read omits it, and you need it to verify the
X-ShortFast-Signature header. A workspace can hold at most 25
endpoints.
Authorization
bearerAuth An API key created under Settings > API & Webhooks. Keys start with sf_live_.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/webhooks" \ -H "Content-Type: application/json" \ -d '{ "url": "https://hooks.example.com/shortfast", "events": [ "video.render_completed", "video.published", "automation.stopped" ] }'{ "data": { "id": "wh8Kd2mR5tQ9vN3xz", "url": "https://hooks.example.com/shortfast", "events": [ "video.render_completed", "video.published", "automation.stopped" ], "enabled": true, "createdAt": "2026-08-06T11:00:00.000Z", "updatedAt": "2026-08-06T11:00:00.000Z", "lastDeliveryAt": null, "failureCount": 0, "disabledReason": null, "secret": "whsec_3nQv8Kd2mR5tQ9vN3xzLp7Yc1Wb4Ae6F" }}Edit a video's brief PATCH
Edits the parts of the brief that still mean something once a video exists: `title`, `aspectRatio`, `showSubtitles`, `description`, `descriptionPrompt`, `prompt`, `subType`, `targetDuration`, `characterImageUrl` and `characterDescription`. Any other brief field is generation-time only and is refused with a `400` naming it, rather than silently dropped. Editing does not requeue anything: run `POST /videos/{id}/process` or `POST /videos/{id}/render` afterwards if the change should be applied.
Delete a webhook endpoint DELETE
Removes the endpoint and drops any deliveries still queued for it.