{
"id": "evt_9d2c1a3e-1c0f-4b6a-9f1e-2a7c8d5b4e11",
"event": "video.ready",
"accountId": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"data": {
"videoId": "<string>",
"title": "<string>",
"duration": 123,
"size": 123,
"url": "<string>",
"thumbnailUrl": "<string>"
}
}Event delivery
PN Player sends a POST to your configured HTTPS endpoint whenever a subscribed event occurs.
Verifying the signature. The X-PN-Signature header has the form t=<unix seconds>,v1=<hex HMAC>. Compute HMAC-SHA256(secret, "<t>.<raw request body>") and compare it to v1 using a constant-time comparison. Reject deliveries whose t is older than your tolerance to prevent replays.
Retries. Delivery is attempted up to three times (immediately, after 2 seconds, after 8 seconds) with a 5 second timeout per attempt. A 2xx response stops retries. A 4xx response other than 429 is treated as a permanent rejection and is not retried. Respond quickly and process the event asynchronously.
{
"id": "evt_9d2c1a3e-1c0f-4b6a-9f1e-2a7c8d5b4e11",
"event": "video.ready",
"accountId": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"data": {
"videoId": "<string>",
"title": "<string>",
"duration": 123,
"size": 123,
"url": "<string>",
"thumbnailUrl": "<string>"
}
}Authorizations
API key created in the dashboard or via POST /v1/api/api-keys. Keys are prefixed pn_ and do not expire until revoked.
Headers
Event name
video.ready, video.deleted, caption.added, caption.updated, caption.removed, chapters.updated, tag.created, tag.deleted, video.tags.attached, video.tags.detached Unique per delivery. Use it to de-duplicate retries.
Timestamped HMAC-SHA256 signature
"t=1756900000,v1=5f1d...9ab2"
"PNPlayer-Webhooks/1.0"
Body
Event ID, prefixed evt_
"evt_9d2c1a3e-1c0f-4b6a-9f1e-2a7c8d5b4e11"
One of the WebhookEvent values, or webhook.test for test deliveries
"video.ready"
Event-specific payload
- video.ready
- video.deleted
- caption.added / caption.updated / caption.removed
- chapters.updated
- tag.created / tag.deleted
- video.tags.attached / video.tags.detached
- webhook.test
Show child attributes
Show child attributes
Response
Return any 2xx status to acknowledge the event
