List Webhook Events

This API retrieves webhook delivery history including successful and failed webhook events. It can be used to identify failed webhook deliveries and monitor webhook health.

GEThttps://api.100ms.live/v2/analytics/webhooks
curl --location --request GET \ 'https://api.100ms.live/v2/analytics/webhooks?start_time=2025-12-28T00:00:00Z&status=failed&limit=20' \ --header 'Authorization: Bearer <management_token>'

Allowed Filters

To be specified as query parameters

NameTypeDescriptionRequired
start_timestringStart of time range in RFC3339 format (Default: 24 hours ago). Must be within the last 30 days.no
end_timestringEnd of time range in RFC3339 format (Default: Now). Must be within 14 days after start_time.no
room_idstringUnique identifier of the room you wish to fetch webhook events forno
statusstringFilter by delivery status: all, failed, success (Default: all)no
event_namesstringFilter by original event types (e.g., session.open.success).

Can be specified multiple times to include more than one event (for example event_names=session.open.success& event_names=peer.join.success). (Default: all events)
no
limitintItems per page (Default: 50, Min: 1, Max: 100)no
pageintPage number (Default: 1)no

Response

RESPONSE
Status: 200 OK
{ "events": [ { "event_id": "abc123-def456", "event_name": "reporter.webhook.delivery.failed", "room_id": "room-123", "event_timestamp": "2025-12-29T10:30:00Z", "payload": { "event_data": { "session_id": "63f73bf05223403c9671c5c9", "peer_id": "c8e85ab4-d533-4de0-ba7c-4c58a4de6c74", "user_id": "187a1a92-150f-4506-83b7-d8a1cd716fb0" }, "webhook_url": "https://example.com/webhook", "original_event_name": "session.open.success", "error_reason": "timeout" } } ], "pagination": { "current_page": 1, "page_size": 50, "total_pages": 10, "total_items": 500, "has_next": true, "has_prev": false }, "summary": { "total_events": 500 } }

Note: The error_reason field is only present for failed webhook events.

Supported Event Types

You can filter webhooks by the following event types:

Event TypeDescription
session.open.successSession started
session.close.successSession ended
peer.join.successPeer joined the room
peer.leave.successPeer left the room
recording.successRecording completed
recording.failedRecording failed
transcription.successTranscription completed
beam.started.successRTMP/HLS streaming started
beam.stopped.successRTMP/HLS streaming stopped
beam.recording.successBrowser recording completed
hls.recording.successHLS recording completed
stream.recording.successStream recording completed

Error Responses

Error CodeMessageDescription
400start_time must be within the last 30 daysInvalid time range parameters
400end_time must be within 14 days after start_timeInvalid time range parameters
403insufficient permissionsUnauthorized access or invalid management token
429rate limit exceeded, retry after 45 secondsToo many requests, rate limit exceeded

Why would you use this API?

  • Debug webhook issues: Retrieve delivery history to analyze failures, identify patterns, and determine when issues occurred

Postman collection

You can use our Postman collection to start exploring 100ms APIs.

Run in Postman

Refer to the Postman guide to get started with 100ms API collection.


Have a suggestion? Recommend changes ->

Run in postman

Was this helpful?

1234