Webhook Events

Sync completed

A sync you started (adding or refreshing accounts or videos, in the dashboard or through the API) finished, and what it brought in is live in the dashboard and the API. sync.id is the syncRequestId the add or refresh call returned. One event per sync, also when some or all of its items failed (status). Scheduled syncs are not reported here. Opt-in: endpoints subscribed to all events (*) do not receive it; subscribe to it by name.

postWebhooksync.completed

Headers

webhook-idstring required
Example:whevt_A1b2C3d4E5f6

The event id; the same on every retry of this event. Dedupe on it.

webhook-timestampstring required
Example:1790332496

Unix seconds of this delivery attempt (re-signed on every retry). Reject values more than 5 minutes off.

webhook-signaturestring required
Example:v1,K5oZfzN95Z9UVu1EsfQmfVNQhnkZ2pj9o9NDN/H/pI4=

Space-separated v1,<base64 HMAC-SHA256 of "<webhook-id>.<webhook-timestamp>.<body>"> signatures, one per active signing secret (two during a rotation). Verify with any Standard Webhooks library.

Payload

idstring required

Event id; the webhook-id header. The same on every retry: dedupe on it.

type'sync.completed' required
timestampstring date-time required

When the change happened

organizationIdstring required

Response

Any 2xx within 15 seconds acknowledges the event. Anything else, a timeout or a redirect is retried (10 attempts over about 3 days); 410 disables the endpoint.

Changes

Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.