Cutsio pushes signed events when videos finish, fail, or produce transcripts — so automations, alerts, and CMS updates trigger themselves. No polling.
Included with the Studio and Enterprise plans. Managed in Settings → Webhooks.
One catalog, versioned. Subscribe to what your pipeline needs — the event id stays stable across retries so duplicates collapse into one.
video.readyA video finished processing and is ready to play — including the no-audio and track-error recovery paths.
video.failedAn upload or processing job errored, was cancelled, or timed out. Deletions are deliberately excluded.
transcript.readyThe original subtitles or captions track is ready. Translations and premium-caption tracks are excluded.
transcript.failedA transcript track errored with no ready text remaining, or the asset has no audio track at all.
Point a webhook at any HTTPS endpoint — an automation platform, a chat channel, your CRM. No code required to get the first workflow live.
Make
video.ready → download the master, post the review link to the client channel.
n8n
transcript.ready → pull the transcript, summarize it, file it in your docs.
Zapier
video.failed → open a ticket with the error stage before anyone complains.
HubSpot
video.ready → attach the delivery link to the deal record automatically.
Airtable
video.ready → create the delivery row with title, duration, and link.
monday.com
transcript.failed → flag the item for a manual transcript pass.
Slack
video.ready → drop the playable link in #deliveries the second it lands.
Discord
video.failed → ping the on-call channel with the error stage.
Telegram
video.ready → message the client group that their cut is ready.
Signed with Standard Webhooks, delivered by Svix. Payloads carry Cutsio ids only, and error messages are sanitized.
{
"id": "evt_…",
"type": "video.ready",
"api_version": "2026-11-01",
"created_at": "2026-11-07T12:34:56.000Z",
"workspace_id": "org_…",
"video": {
"id": "vid_…",
"title": "Launch day crowd",
"duration_ms": 12345,
"collection_id": null,
"storage_folder_id": null
}
}Failure events add error: { stage, message }. Transcript events add transcript: { language_code, text_type }.
import { Webhook } from "standardwebhooks";
const wh = new Webhook(process.env.CUTSIO_WEBHOOK_SECRET);
const seen = new Set(); // dedupe: delivery is at-least-once
// rawBody is the raw request text — never JSON.parse it before
// verifying. Disable your framework's body parser on this route.
const event = wh.verify(rawBody, {
"webhook-id": headers["webhook-id"],
"webhook-timestamp": headers["webhook-timestamp"],
"webhook-signature": headers["webhook-signature"],
});
if (seen.has(event.id)) return new Response("ok");
seen.add(event.id);
await handle(event);Deduplicate on webhook-id or the payload id — delivery is at-least-once, unordered. Retries run for ~27.5h before Svix can auto-disable a failing endpoint.
No portal account, no keys to copy. Endpoint management, signing secrets, delivery logs, replay, and test events all live in the Svix App Portal.
Open Settings → Webhooks
A workspace admin clicks Manage webhooks. Cutsio provisions your Svix application on first open.
Add your HTTPS endpoint
Subscribe it to the events your pipeline needs and copy the signing secret into your environment.
Send a test event
Fire one from the portal, verify the signature, then watch real video.ready deliveries land.

Webhooks push lifecycle events to your infrastructure. The MCP server lets an AI client pull search and transcripts in plain language, and the CLI lets agents materialize footage and transcripts on demand. Push triggers, pull answers.
A workspace admin opens Settings → Webhooks and adds an HTTPS endpoint in the Svix App Portal. Cutsio delivers signed events to that endpoint — endpoint management, signing secrets, delivery logs, replay, and test events all live in the portal.
Verify with any Standard Webhooks library. On Studio and Enterprise plans the headers are webhook-id, webhook-timestamp, and webhook-signature; on Free they are the equivalent svix-* headers. Deduplicate on webhook-id or the payload id — delivery is at-least-once and unordered.
Outbound webhooks are included with the Studio and Enterprise plans, the same gate as the MCP connector. New provisioning requires an eligible plan; already-provisioned workspaces keep delivering if billing is briefly unreachable.
Cutsio ids only — event id, type, api_version, workspace_id, and the video with title, duration, and collection or folder. Failure events add an error with stage and message; transcript events add language and text type. Error messages are sanitized to remove secrets and internal details.
Svix retries on a schedule — immediately, then 5s, 5m, 30m, 2h, 5h, 10h, and 10h, roughly 27.5 hours — and after repeated failures it can disable the endpoint and notify the account. Re-enable it in the portal.
Polling asks Cutsio what changed; webhooks tell your system the moment it happens. Use webhooks to trigger pipelines — transcode follow-ups, Slack alerts, CMS updates. The CLI is for agents pulling footage and transcripts on demand; webhooks push lifecycle events to your infrastructure.
Discover more ways Cutsio can help your team work with video.
Connect Claude, ChatGPT, Cursor, or VS Code to your Cutsio library — search assets and transcripts, browse collections and folders, and file videos into folders in plain language.
The footage backend for coding agents — semantic transcript search, one-command sync of mezzanine masters, and sidecar transcripts for RAG. One API key, JSON-first, idempotent.
Import, organize, search, and share your video library — with enterprise RAW pair backup for ARRI and RED workflows.
One searchable library for YouTube and studio teams — collaborate on footage, repurpose long-form into Shorts with AI, and hand off to DaVinci or Final Cut.
Four signed events, retries and replay built in, live in Settings in about five minutes.