Listen to events on your resources with webhooks.
POST
request will be sent to all the registered endpoints with the event data.
Property | Description |
---|---|
id | The webhook endpoint identifier |
url | The URL where the events will be sent. Accepted protocols: HTTP , HTTPS |
events | The list of event types the endpoint is listening to. Check the avaiable event types here |
enabled | Indicates if the webhook is enabled. You can disable an endpoint to temporarily stop receiving requests to the endpoint |
description | An optional description of the webhook |
url
Property | Description |
---|---|
id | The event identifier |
type | The event type. Check the avaiable event types here |
webhookEndpointId | The webhook endpoint identifier |
timestamp | The event timestamp in milliseconds since epoch. Use this to prevent replay attacks |
payloadSchema | The fully qualified name of the payload schema |
payload | The event payload |
Event type | Supports dynamic webhooks | Description |
---|---|---|
stream.ready | yes | The stream has just been created and is ready to receive data |
stream.completed | yes | The stream completed successfully |
stream.failed | yes | The stream failed |
stream.expired | yes | The stream storage time expired and it was deleted |
group.created | yes | A new group has been created |
group.completed | yes | All the streams in the group completed successfully. This event will be emitted again if a new stream joins the group and completes |
group.failed | yes | All the streams in the group finished and at least one stream failed. This event will be emitted again if a new stream joins the group and fails |
group.expired | yes | The group storage time expired and it was deleted. A group will expire only after all the streams in the group had expired |
group.stream-joined | yes | A new stream has joined the group |
gateway.connected | no | A client connected to the stream gateway |
gateway.disconnected | no | The client disconnected from the stream gateway |
gateway.closed | no | The gateway of the stream is permanently closed |
gateway.error | no | The gateway of the stream is permanently closed due to an error |
processor.running | no | The stream processor has been assigned to stream and it is running |
processor.completed | no | The stream processor has been completed successfully |
processor.error | no | The stream processor has failed |
Europe
: 52.59.67.134
2xx
status code, the event redelivery will be retried for the next three hours with an exponential backoff strategy.
Setup steps
Install ngrok
Install Nginx
Configure Nginx
Prepare the tunnel
Create/update the webhook
/200
/400
/500
Monitor requests
webhook[.RESOURCE[.STATE]]=<url>
For example:
webhook.stream.completed=https://mydomain.com/success
will create a dynamic webhook the receives the stream.completed
event at the https://mydomain.com/success
URLwebhook.stream.completed=https://mydomain.com/success&webhook.stream.failed=https://mydomain.com/fail
will create two dynamic webhooks, one that will be triggered by the stream.completed
event at the https://mydomain.com/success
URL,
and the other that will receive the stream.failed
event at the https://mydomain.com/fail
URLwebhook.stream.completed=https://mydomain.com/status&webhook.stream.failed=https://mydomain.com/status
will create a single dynamic webhook that will be triggered by both stream.completed
and stream.failed
events
at the https://mydomain.com/status
URLwebhook.stream=https://mydomain.com/stream-event
is a wildcard dynamic webhook that be triggered by any stream-related event at the https://mydomain.com/stream-event
URLwebhook=https://mydomain.com/any-event
is a wildcard dynamic webhook that will be triggered by any event at the https://mydomain.com/any-event
URLWebSocket Gateway
can receive the dynamic webhooks configuration using the Configuration Message.
The general form of the webhook configuration is as follows:
stream
and group
resources can be used in dynamic webhookshttp
and https