curl --request GET \
--url https://api.hubmessage.io/v1/channels/{channelId}/webhooks \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.hubmessage.io/v1/channels/{channelId}/webhooks"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.hubmessage.io/v1/channels/{channelId}/webhooks', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hubmessage.io/v1/channels/{channelId}/webhooks",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.hubmessage.io/v1/channels/{channelId}/webhooks"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.hubmessage.io/v1/channels/{channelId}/webhooks")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubmessage.io/v1/channels/{channelId}/webhooks")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body[
{
"id": "A1B2C3D4E5F6789012345678901234AB",
"channelId": "019E4C54B1B375A28970B605CA9B03C3",
"instanceId": "019E4C54B1B375A28970B605CA9B03C3",
"url": "https://app.yourcompany.com/webhooks/hubmessage",
"description": "Main production webhook",
"events": [
"MESSAGE_RECEIVED",
"MESSAGE_STATUS"
],
"status": "ENABLED",
"signing": true,
"auth": {
"type": "BEARER",
"configured": true
},
"payloadFormat": "DEFAULT",
"customAttributes": {},
"createdAt": "2025-01-15T10:30:00.000+0000",
"updatedAt": "2025-01-15T10:30:00.000+0000"
},
{
"id": "B2C3D4E5F6789012345678901234AB12",
"channelId": "019E4C54B1B375A28970B605CA9B03C3",
"instanceId": "019E4C54B1B375A28970B605CA9B03C3",
"url": "https://app.yourcompany.com/webhooks/connection-events",
"description": "Connection events",
"events": [
"CONNECTED",
"DISCONNECTED"
],
"status": "ENABLED",
"signing": false,
"auth": {
"type": "NONE",
"configured": false
},
"payloadFormat": "DEFAULT",
"customAttributes": {},
"createdAt": "2025-01-16T08:00:00.000+0000",
"updatedAt": "2025-01-16T08:00:00.000+0000"
}
]{
"error": 401,
"message": "Unauthorized"
}{
"error": 422,
"message": "This action requires ENTERPRISE role"
}List webhooks
List all webhooks for a channel
curl --request GET \
--url https://api.hubmessage.io/v1/channels/{channelId}/webhooks \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.hubmessage.io/v1/channels/{channelId}/webhooks"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.hubmessage.io/v1/channels/{channelId}/webhooks', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hubmessage.io/v1/channels/{channelId}/webhooks",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.hubmessage.io/v1/channels/{channelId}/webhooks"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.hubmessage.io/v1/channels/{channelId}/webhooks")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubmessage.io/v1/channels/{channelId}/webhooks")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body[
{
"id": "A1B2C3D4E5F6789012345678901234AB",
"channelId": "019E4C54B1B375A28970B605CA9B03C3",
"instanceId": "019E4C54B1B375A28970B605CA9B03C3",
"url": "https://app.yourcompany.com/webhooks/hubmessage",
"description": "Main production webhook",
"events": [
"MESSAGE_RECEIVED",
"MESSAGE_STATUS"
],
"status": "ENABLED",
"signing": true,
"auth": {
"type": "BEARER",
"configured": true
},
"payloadFormat": "DEFAULT",
"customAttributes": {},
"createdAt": "2025-01-15T10:30:00.000+0000",
"updatedAt": "2025-01-15T10:30:00.000+0000"
},
{
"id": "B2C3D4E5F6789012345678901234AB12",
"channelId": "019E4C54B1B375A28970B605CA9B03C3",
"instanceId": "019E4C54B1B375A28970B605CA9B03C3",
"url": "https://app.yourcompany.com/webhooks/connection-events",
"description": "Connection events",
"events": [
"CONNECTED",
"DISCONNECTED"
],
"status": "ENABLED",
"signing": false,
"auth": {
"type": "NONE",
"configured": false
},
"payloadFormat": "DEFAULT",
"customAttributes": {},
"createdAt": "2025-01-16T08:00:00.000+0000",
"updatedAt": "2025-01-16T08:00:00.000+0000"
}
]{
"error": 401,
"message": "Unauthorized"
}{
"error": 422,
"message": "This action requires ENTERPRISE role"
}Overview
Returns all webhooks registered on a channel. Theauth.configured field indicates whether authentication credentials are set, but the credentials themselves are not returned for security reasons.
The secret field (HMAC signing) is also not returned in the list — it is only available at the time of creation or when updating with signing: true.
Authorizations
Secret Key generated in the Hub Message Security panel
Path Parameters
Channel ID
"019E4C54B1B375A28970B605CA9B03C3"
Response
List of channel webhooks
Unique webhook ID
"A1B2C3D4E5F6789012345678901234AB"
ID of the channel this webhook belongs to
"019E4C54B1B375A28970B605CA9B03C3"
Deprecated — use channelId instead
"019E4C54B1B375A28970B605CA9B03C3"
Event destination URL
"https://app.yourcompany.com/webhooks/hubmessage"
Webhook description
"Main production webhook"
Configured event types
["MESSAGE_RECEIVED", "MESSAGE_STATUS"]
Current webhook status
ENABLED, DISABLED "ENABLED"
Indicates whether HMAC signing is enabled
true
Summary of configured authentication — credentials are not returned for security
Show child attributes
Show child attributes
Delivered payload format
DEFAULT "DEFAULT"
Configured extra attributes
{}
Creation date
"2025-01-15T10:30:00.000+0000"
Last update date
"2025-01-15T10:30:00.000+0000"