List default webhooks
curl --request GET \
--url https://api.omni.z-api.io/v1/default-instance-webhooks \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.omni.z-api.io/v1/default-instance-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.omni.z-api.io/v1/default-instance-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.omni.z-api.io/v1/default-instance-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.omni.z-api.io/v1/default-instance-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.omni.z-api.io/v1/default-instance-webhooks")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.omni.z-api.io/v1/default-instance-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": "5B7E3A90C2D14F6A8E1B2C3D4E5F6A7B",
"channelId": null,
"instanceId": null,
"url": "https://app.yourcompany.com/webhooks/omni-zapi",
"description": "Events from all channels",
"events": [
"MESSAGE_RECEIVED",
"MESSAGE_STATUS",
"DISCONNECTED"
],
"status": "ENABLED",
"signing": false,
"auth": {
"type": "NONE",
"configured": false
},
"payloadFormat": "DEFAULT",
"customAttributes": {},
"createdAt": "2026-10-22T15:00:00.000+00:00",
"updatedAt": "2026-10-22T15:00:00.000+00:00"
}
]Default webhook
List default webhooks
List the workspace’s default webhooks
GET
/
v1
/
default-instance-webhooks
List default webhooks
curl --request GET \
--url https://api.omni.z-api.io/v1/default-instance-webhooks \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.omni.z-api.io/v1/default-instance-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.omni.z-api.io/v1/default-instance-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.omni.z-api.io/v1/default-instance-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.omni.z-api.io/v1/default-instance-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.omni.z-api.io/v1/default-instance-webhooks")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.omni.z-api.io/v1/default-instance-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": "5B7E3A90C2D14F6A8E1B2C3D4E5F6A7B",
"channelId": null,
"instanceId": null,
"url": "https://app.yourcompany.com/webhooks/omni-zapi",
"description": "Events from all channels",
"events": [
"MESSAGE_RECEIVED",
"MESSAGE_STATUS",
"DISCONNECTED"
],
"status": "ENABLED",
"signing": false,
"auth": {
"type": "NONE",
"configured": false
},
"payloadFormat": "DEFAULT",
"customAttributes": {},
"createdAt": "2026-10-22T15:00:00.000+00:00",
"updatedAt": "2026-10-22T15:00:00.000+00:00"
}
]Overview
Returns the default webhooks of the secret key’s workspace, enabled and disabled. Channel webhooks and template webhooks are not in this list. Theauth.configured field tells whether an authentication credential is configured, but the credential itself is not returned. The HMAC signing secret is not returned either: it only appears in the response that generated it.Authorizations
Secret Key generated in the Omni Z-API Security panel
Response
The workspace's default webhooks
Default webhook ID
Example:
"5B7E3A90C2D14F6A8E1B2C3D4E5F6A7B"
Always null: the default webhook does not belong to a channel
Example:
null
Always null. Legacy field, kept for compatibility
Example:
null
Example:
"https://app.yourcompany.com/webhooks/omni-zapi"
Example:
"Events from all channels"
Available options:
MESSAGE_RECEIVED, MESSAGE_DELIVERY, MESSAGE_STATUS, RECEIVED_STATUS, RECEIVED_AND_DELIVERY, CONNECTED, DISCONNECTED, PRESENCE_CHAT, INITIAL_DATA, BLOCK ENABLED or DISABLED
Available options:
ENABLED, DISABLED true when HMAC signing is on
Summary of the configured authentication. Credentials are not returned.
Show child attributes
Show child attributes
Available options:
DEFAULT, Z_API Creation date
Last update date