List channels (Partner)
curl --request GET \
--url https://api.omni.z-api.io/v1/channels \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.omni.z-api.io/v1/channels"
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/channels', 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/channels",
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/channels"
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/channels")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.omni.z-api.io/v1/channels")
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{
"total": 37,
"totalPage": 2,
"pageSize": 20,
"page": 0,
"content": [
{
"id": "AA0C61D24A6549A3BF83239847DE1CC2",
"name": "Suporte",
"token": "F1B29C3D4E5A6B7C8D9E0F1A2B3C4D5E",
"tenant": "01A090B7FB82798CB38AB259C0B65FBE",
"type": "META_WHATSAPP",
"created": "2026-03-11T14:02:00.000Z",
"due": 1774915200000,
"paymentStatus": "PAID",
"phoneConnected": true,
"whatsappConnected": true,
"phoneNumberConnected": "5585999999999",
"businessId": "102938475610293",
"whatsappCoexistence": false,
"webhooksCount": 2
}
]
}
Channels
List channels
List the channels in your workspace via API
GET
/
v1
/
channels
List channels (Partner)
curl --request GET \
--url https://api.omni.z-api.io/v1/channels \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.omni.z-api.io/v1/channels"
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/channels', 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/channels",
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/channels"
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/channels")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.omni.z-api.io/v1/channels")
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{
"total": 37,
"totalPage": 2,
"pageSize": 20,
"page": 0,
"content": [
{
"id": "AA0C61D24A6549A3BF83239847DE1CC2",
"name": "Suporte",
"token": "F1B29C3D4E5A6B7C8D9E0F1A2B3C4D5E",
"tenant": "01A090B7FB82798CB38AB259C0B65FBE",
"type": "META_WHATSAPP",
"created": "2026-03-11T14:02:00.000Z",
"due": 1774915200000,
"paymentStatus": "PAID",
"phoneConnected": true,
"whatsappConnected": true,
"phoneNumberConnected": "5585999999999",
"businessId": "102938475610293",
"whatsappCoexistence": false,
"webhooksCount": 2
}
]
}
Overview
Returns the channels in the workspace of your Secret Key, newest first. Deleted channels are not listed, and neither are channels from other workspaces — the scope is always the account that owns the key.Pagination
| Parameter | Default | Limit |
|---|---|---|
page | 0 | — |
pageSize | 20 | 100 |
total (channels matching the filter), totalPage, pageSize and page, with the channels in content.
Filters
| Parameter | Effect |
|---|---|
query | Part of the channel name, case-insensitive, or the beginning of the identifier |
type | Channel technology: META_WHATSAPP, Z_API_WHATSAPP, META_INSTAGRAM, META_MESSENGER, BOT_TELEGRAM |
middleware | Alias of type. If both are sent, type wins |
In Z-API,
middleware tells whether the instance runs on web or mobile. Omni has no such distinction: the field holds the channel technology, the same value accepted in Create channel. The middleware parameter exists for those who migrated from Z-API and kept the old name in their code.Channel webhooks
Each channel carrieswebhooksCount, the number of webhook endpoints registered on it. To see the URLs and events of each one, use Get channel or List webhooks.Authorizations
Secret Key generated in the Omni Z-API Security panel
Query Parameters
Page to retrieve, starting at 0
Required range:
x >= 0Channels per page (1 to 100)
Required range:
1 <= x <= 100Filters by part of the channel name or by the beginning of the identifier
Example:
"suporte"
Filters by channel technology
Available options:
META_WHATSAPP, Z_API_WHATSAPP, META_INSTAGRAM, META_MESSENGER, BOT_TELEGRAM Alias of type, for those coming from Z-API. If both are sent, type wins
Available options:
META_WHATSAPP, Z_API_WHATSAPP, META_INSTAGRAM, META_MESSENGER, BOT_TELEGRAM