API reference
Webhooks
Register an HTTPS endpoint and Video Intros tells your system when something happens, so you never have to poll.
Webhook endpoints
An endpoint is a URL on your server plus the event types it wants. Endpoints are per environment: a test endpoint receives test events only.
Endpoint management, signing and the retry schedule are part of the API that is not published yet. This page shows the shape of a delivery.
Event types
| Type | When |
|---|---|
touchpoint_event.processed | A touchpoint event became a Video Intro. |
touchpoint_event.failed | A touchpoint event could not be processed. |
video_intro.created | A Video Intro was created and is waiting for the member. |
video_intro.ready | The member recorded it. With delivery.responsibility = integration, this carries the link for you to send. |
video_intro.sent | It was delivered to the recipient. |
video_intro.opened | The recipient opened the page. |
video_intro.completed | The recipient watched the whole video. |
video_intro.cancelled | It was cancelled. |
video_intro.expired | It expired without being recorded. |
Receiving one
- Answer quicklyReturn a
2xxas soon as you have stored the event. Do the work afterwards. - Expect repeatsThe same event can arrive more than once. Use its
idto ignore one you have already handled. - Match it to your recordEvery event carries the
referenceyou sent.
{
"id": "whe_2d90b7",
"object": "webhook_event",
"type": "video_intro.ready",
"created_at": "2026-10-05T18:02:11Z",
"environment": "test",
"data": {
"id": "vi_5b0e7c1e-2a64-4d0f-9b1c-7d2f6a8e9c10",
"object": "video_intro",
"status": "ready",
"reference": {
"source": "your_app",
"type": "order",
"id": "order_981"
},
"delivery": {
"responsibility": "integration",
"recipient_url": "https://app.videointros.com/your-company/v/…"
}
}
}