WebSockets

Step 1: Connect

Your API keys allow multiple simultaneous connections. Connect to:

wss://my.webhookrelay.com/v1/socket

Step 2: Authenticate

You must authenticate before you can make any other requests. Generate a new key & secret pair in your tokens page (https://my.webhookrelay.com/tokens). To authenticate, send:

{
"action":"auth",
"key":"YOUR_KEY",
"secret":"YOUR_SECRET"
}

Once authenticated, you will receive the following message:

{
"type": "status",
"status": "authenticated",
"message": "connected successfully, subscribe to buckets"
}

Step 3: Subscribe to webhooks stream

Once authenticated, you can request a stream. Buckets (https://my.webhookrelay.com/buckets) are used for grouping and routing. You can request multiple bucket streams. To subscribe, send:

{
"action":"subscribe",
"buckets": [ "my-1-bucket-name", "my-2-bucket-id" ]
}

Field buckets works as a filter, checking for bucket ID or bucket name. To subscribe to all buckets in your account, send only {"action":"subscribe"} message.

Once subscribed, you will receive the following message, confirming your stream:

{
"type": "status",
"status": "subscribed",
"message": "subscribed to buckets: my-1-bucket-name, my-2-bucket-id"
}

Schema

All incoming webhooks will have event type set to webhook and attached meta field with additional information such as bucket ID, bucket name, input ID, input name:

{
"type": "webhook", // event type
"meta": { // bucket, input and output information
"bucked_id": "1593fe5f-45f9-45cc-ba23-675fdc7c1638",
"bucket_name": "my-1-bucket-name",
"input_id": "b90f2fe9-621d-4290-9e74-edd5b61325dd",
"input_name": "Default public endpoint",
"output_name": "111",
"output_destination": "http://localhost:8080"
},
"headers": { // request headers
"Content-Type": [
"application/json"
]
},
"query": "foo=bar", // query (ie: /some-path?foo=bar)
"body": "{\"hi\": \"there\"}", // request body
"method": "PUT" // request method
}