Skip to content

Webhooks

Slicer API webhook endpoints — add an endpoint and get its signing secret, update, delete, send a test event and view the delivery log.

On this page

Webhooks notify your server about events: an upload is ready, a montage or export has finished, a video was published. Requires the webhooks scope. The event format, the signature and how to verify it — in the guide Webhooks.

Add a webhook

POST/v1/webhooks
Scopes
webhooks
Rate limit
default

Request body CreateWebhookRequest

Field Type Description
urlrequiredstring (uri)≤ 2048
eventsrequiredstring[]
descriptionstring≤ 200

Request

curl
JavaScript
Python
curl -X POST "https://api.slicer.media/v1/webhooks" \
  -H "Authorization: Bearer $SLICER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/hook","events":["upload.ready"]}'

Response

Response fields: CreatedWebhook (2)
Field Type Description
webhookrequiredWebhook
secretrequiredstringSigning secret whsec_… — shown once
Response example
{
  "ok": true,
  "data": {
    "webhook": {
      "id": "6f1c2a4e-8b3d-4c1a-9e2f-3b5d7a9c1e20",
      "url": "https://example.com/hook",
      "events": [
        "upload.ready"
      ],
      "description": "string",
      "enabled": true,
      "disabledReason": "string",
      "failures": 1,
      "lastDeliveryAt": "2026-10-16T09:30:00Z",
      "createdAt": "2026-10-16T09:30:00Z"
    },
    "secret": "whsec_…"
  }
}

List webhooks

GET/v1/webhooks
Scopes
webhooks
Rate limit
default

Request

curl
JavaScript
Python
curl "https://api.slicer.media/v1/webhooks" \
  -H "Authorization: Bearer $SLICER_TOKEN"

Response

Response example
{
  "ok": true,
  "data": [
    {
      "id": "6f1c2a4e-8b3d-4c1a-9e2f-3b5d7a9c1e20",
      "url": "https://example.com/hook",
      "events": [
        "upload.ready"
      ],
      "description": "string",
      "enabled": true,
      "disabledReason": "string",
      "failures": 1,
      "lastDeliveryAt": "2026-10-16T09:30:00Z",
      "createdAt": "2026-10-16T09:30:00Z"
    }
  ]
}

Webhook

GET/v1/webhooks/{id}
Scopes
webhooks
Rate limit
default

Path parameters

Field Type Description
idrequiredstring (uuid)

Request

curl
JavaScript
Python
curl "https://api.slicer.media/v1/webhooks/6f1c2a4e-8b3d-4c1a-9e2f-3b5d7a9c1e20" \
  -H "Authorization: Bearer $SLICER_TOKEN"

Response

Response fields: Webhook (9)
Field Type Description
idrequiredstring (uuid)
urlrequiredstring (uri)
eventsrequiredstring[]
descriptionrequiredstring | null
enabledrequiredboolean
disabledReasonrequiredstring | null
failuresrequiredintegerFailed deliveries in a row
lastDeliveryAtrequiredstring | null
createdAtrequiredstringISO 8601 date-time, UTC
Response example
{
  "ok": true,
  "data": {
    "id": "6f1c2a4e-8b3d-4c1a-9e2f-3b5d7a9c1e20",
    "url": "https://example.com/hook",
    "events": [
      "upload.ready"
    ],
    "description": "string",
    "enabled": true,
    "disabledReason": "string",
    "failures": 1,
    "lastDeliveryAt": "2026-10-16T09:30:00Z",
    "createdAt": "2026-10-16T09:30:00Z"
  }
}

Change a webhook

PATCH/v1/webhooks/{id}
Scopes
webhooks
Rate limit
default

Path parameters

Field Type Description
idrequiredstring (uuid)

Request body UpdateWebhookRequest

Field Type Description
urlstring (uri)≤ 2048
eventsstring[]
descriptionstring | null≤ 200
enabledboolean

Request

curl
JavaScript
Python
curl -X PATCH "https://api.slicer.media/v1/webhooks/6f1c2a4e-8b3d-4c1a-9e2f-3b5d7a9c1e20" \
  -H "Authorization: Bearer $SLICER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/hook","events":["upload.ready"]}'

Response

Response fields: Webhook (9)
Field Type Description
idrequiredstring (uuid)
urlrequiredstring (uri)
eventsrequiredstring[]
descriptionrequiredstring | null
enabledrequiredboolean
disabledReasonrequiredstring | null
failuresrequiredintegerFailed deliveries in a row
lastDeliveryAtrequiredstring | null
createdAtrequiredstringISO 8601 date-time, UTC
Response example
{
  "ok": true,
  "data": {
    "id": "6f1c2a4e-8b3d-4c1a-9e2f-3b5d7a9c1e20",
    "url": "https://example.com/hook",
    "events": [
      "upload.ready"
    ],
    "description": "string",
    "enabled": true,
    "disabledReason": "string",
    "failures": 1,
    "lastDeliveryAt": "2026-10-16T09:30:00Z",
    "createdAt": "2026-10-16T09:30:00Z"
  }
}

Delete a webhook

DELETE/v1/webhooks/{id}
Scopes
webhooks
Rate limit
default

Path parameters

Field Type Description
idrequiredstring (uuid)

Request

curl
JavaScript
Python
curl -X DELETE "https://api.slicer.media/v1/webhooks/6f1c2a4e-8b3d-4c1a-9e2f-3b5d7a9c1e20" \
  -H "Authorization: Bearer $SLICER_TOKEN"

Response

Response fields: object (2)
Field Type Description
idrequiredstring (uuid)
deletedrequiredboolean
Response example
{
  "ok": true,
  "data": {
    "id": "6f1c2a4e-8b3d-4c1a-9e2f-3b5d7a9c1e20",
    "deleted": true
  }
}

Send a test `ping` event

POST/v1/webhooks/{id}/test
Scopes
webhooks
Rate limit
default

Path parameters

Field Type Description
idrequiredstring (uuid)

Request

curl
JavaScript
Python
curl -X POST "https://api.slicer.media/v1/webhooks/6f1c2a4e-8b3d-4c1a-9e2f-3b5d7a9c1e20/test" \
  -H "Authorization: Bearer $SLICER_TOKEN"

Response

Response fields: WebhookDelivery (9)
Field Type Description
idrequiredinteger
eventIdrequiredstring
typerequiredstring
statusrequiredstringpending · succeeded · failed
attemptsrequiredinteger
responseStatusrequiredinteger | null
errorrequiredstring | null
createdAtrequiredstringISO 8601 date-time, UTC
deliveredAtrequiredstring | null
Response example
{
  "ok": true,
  "data": {
    "id": 42,
    "eventId": "string",
    "type": "string",
    "status": "pending",
    "attempts": 1,
    "responseStatus": 1,
    "error": "string",
    "createdAt": "2026-10-16T09:30:00Z",
    "deliveredAt": "2026-10-16T09:30:00Z"
  }
}

Last 100 deliveries

GET/v1/webhooks/{id}/deliveries
Scopes
webhooks
Rate limit
default

Path parameters

Field Type Description
idrequiredstring (uuid)

Request

curl
JavaScript
Python
curl "https://api.slicer.media/v1/webhooks/6f1c2a4e-8b3d-4c1a-9e2f-3b5d7a9c1e20/deliveries" \
  -H "Authorization: Bearer $SLICER_TOKEN"

Response

Response example
{
  "ok": true,
  "data": [
    {
      "id": 42,
      "eventId": "string",
      "type": "string",
      "status": "pending",
      "attempts": 1,
      "responseStatus": 1,
      "error": "string",
      "createdAt": "2026-10-16T09:30:00Z",
      "deliveredAt": "2026-10-16T09:30:00Z"
    }
  ]
}

Schemas

Webhook

Field Type Description
idrequiredstring (uuid)
urlrequiredstring (uri)
eventsrequiredstring[]
descriptionrequiredstring | null
enabledrequiredboolean
disabledReasonrequiredstring | null
failuresrequiredintegerFailed deliveries in a row
lastDeliveryAtrequiredstring | null
createdAtrequiredstringISO 8601 date-time, UTC

CreatedWebhook

Field Type Description
webhookrequiredWebhook
secretrequiredstringSigning secret whsec_… — shown once

WebhookDelivery

Field Type Description
idrequiredinteger
eventIdrequiredstring
typerequiredstring
statusrequiredstringpending · succeeded · failed
attemptsrequiredinteger
responseStatusrequiredinteger | null
errorrequiredstring | null
createdAtrequiredstringISO 8601 date-time, UTC
deliveredAtrequiredstring | null