API Documentation
Channels
Use channel APIs to list, create, search, preview, and read channel messages. Sending text, media, voice, and poll messages to channels uses the existing message APIs with a channel ID ending in @newsletter.
Common rules
Authentication
Send Authorization: Bearer YOUR_API_KEY with every request.
Session
Use the dashboard session name or session ID as {session}.
Channel ID
Use channel IDs like {channel_id}@newsletter. URL-encode @ as needed in path values.
Endpoints
https://chatflow.zeltacode.com/api/v1/channels
Return owned and subscribed channels for a connected session. Add role to filter by OWNER, ADMIN, or SUBSCRIBER.
https://chatflow.zeltacode.com/api/v1/channels
Create a new channel from a connected session.
https://chatflow.zeltacode.com/api/v1/channels/{channel_id}
Return channel details by channel ID.
https://chatflow.zeltacode.com/api/v1/channels/{invite_code}
Return channel details by invite code from the channel URL.
https://chatflow.zeltacode.com/api/v1/channels/search/by-view
Search public channels by a catalog view such as RECOMMENDED.
https://chatflow.zeltacode.com/api/v1/channels/search/by-text
Search public channels by text.
https://chatflow.zeltacode.com/api/v1/channels/search/views
Return available channel search views.
https://chatflow.zeltacode.com/api/v1/channels/search/countries
Return available countries for channel search.
https://chatflow.zeltacode.com/api/v1/channels/search/categories
Return available categories for channel search.
https://chatflow.zeltacode.com/api/v1/channels/{invite_code}/messages/preview
Return preview messages for a public channel by invite code or channel ID.
https://chatflow.zeltacode.com/api/v1/channels/{channel_id}/messages
Return messages from a channel by channel ID.
1. Get all channels
Return owned and subscribed channels for a connected session. Add role to filter by OWNER, ADMIN, or SUBSCRIBER.
API name
Get all channels
Purpose
Return owned and subscribed channels for a connected session. Add role to filter by OWNER, ADMIN, or SUBSCRIBER. Use it when your application needs channel data without opening the dashboard.
Endpoint
GET https://chatflow.zeltacode.com/api/v1/channels
curl -X GET "https://chatflow.zeltacode.com/api/v1/channels?session={session}&role=OWNER" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
{
"session": "{session}",
"role": "OWNER"
}
{
"success": true,
"message": "Channel action completed.",
"data": {
"action": "list",
"session": "{session}",
"channel_id": null,
"channel_response": [
{
"id": "{channel_id}@newsletter",
"name": "Company Updates",
"description": "Latest announcements",
"invite": "https://whatsapp.com/channel/{invite_code}",
"picture": null,
"verified": false,
"role": "OWNER"
}
]
}
}
2. Create channel
Create a new channel from a connected session.
API name
Create channel
Purpose
Create a new channel from a connected session. Use it when your application needs channel data without opening the dashboard.
Endpoint
POST https://chatflow.zeltacode.com/api/v1/channels
curl -X POST "https://chatflow.zeltacode.com/api/v1/channels" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"session": "{session}",
"name": "Company Updates",
"description": "Latest announcements",
"picture": {
"mimetype": "image/jpeg",
"filename": "channel.jpg",
"url": "https://example.com/channel.jpg"
}
}'
{
"session": "{session}",
"name": "Company Updates",
"description": "Latest announcements",
"picture": {
"mimetype": "image/jpeg",
"filename": "channel.jpg",
"url": "https://example.com/channel.jpg"
}
}
{
"success": true,
"message": "Channel action completed.",
"data": {
"action": "create",
"session": "{session}",
"channel_id": null,
"channel_response": {
"id": "{channel_id}@newsletter",
"name": "Company Updates",
"description": "Latest announcements",
"invite": "https://whatsapp.com/channel/{invite_code}",
"role": "OWNER"
}
}
}
3. Get channel by id
Return channel details by channel ID.
API name
Get channel by id
Purpose
Return channel details by channel ID. Use it when your application needs channel data without opening the dashboard.
Endpoint
GET https://chatflow.zeltacode.com/api/v1/channels/{channel_id}
curl -X GET "https://chatflow.zeltacode.com/api/v1/channels/{channel_id}@newsletter?session={session}" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
{
"session": "{session}"
}
{
"success": true,
"message": "Channel action completed.",
"data": {
"action": "get",
"session": "{session}",
"channel_id": "{channel_id}@newsletter",
"channel_response": {
"id": "{channel_id}@newsletter",
"name": "Company Updates",
"description": "Latest announcements",
"invite": "https://whatsapp.com/channel/{invite_code}",
"verified": false,
"role": "OWNER",
"subscribersCount": 120
}
}
}
4. Get channel by invite code
Return channel details by invite code from the channel URL.
API name
Get channel by invite code
Purpose
Return channel details by invite code from the channel URL. Use it when your application needs channel data without opening the dashboard.
Endpoint
GET https://chatflow.zeltacode.com/api/v1/channels/{invite_code}
curl -X GET "https://chatflow.zeltacode.com/api/v1/channels/{invite_code}?session={session}" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
{
"session": "{session}"
}
{
"success": true,
"message": "Channel action completed.",
"data": {
"action": "get",
"session": "{session}",
"channel_id": null,
"channel_response": {
"id": "{channel_id}@newsletter",
"name": "Company Updates",
"description": "Latest announcements",
"invite": "https://whatsapp.com/channel/{invite_code}",
"verified": false,
"role": "SUBSCRIBER"
}
}
}
5. Search channels by view
Search public channels by a catalog view such as RECOMMENDED.
API name
Search channels by view
Purpose
Search public channels by a catalog view such as RECOMMENDED. Use it when your application needs channel data without opening the dashboard.
Endpoint
POST https://chatflow.zeltacode.com/api/v1/channels/search/by-view
curl -X POST "https://chatflow.zeltacode.com/api/v1/channels/search/by-view" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"session": "{session}",
"view": "RECOMMENDED",
"countries": [
"US"
],
"categories": [],
"limit": 50,
"startCursor": ""
}'
{
"session": "{session}",
"view": "RECOMMENDED",
"countries": [
"US"
],
"categories": [],
"limit": 50,
"startCursor": ""
}
{
"success": true,
"message": "Channel action completed.",
"data": {
"action": "search-by-view",
"session": "{session}",
"channel_id": null,
"channel_response": {
"page": {
"startCursor": null,
"endCursor": "next_cursor",
"hasNextPage": true
},
"channels": [
{
"id": "{channel_id}@newsletter",
"name": "Public Channel",
"invite": "https://whatsapp.com/channel/{invite_code}",
"verified": true,
"subscribersCount": 1200
}
]
}
}
}
6. Search channels by text
Search public channels by text.
API name
Search channels by text
Purpose
Search public channels by text. Use it when your application needs channel data without opening the dashboard.
Endpoint
POST https://chatflow.zeltacode.com/api/v1/channels/search/by-text
curl -X POST "https://chatflow.zeltacode.com/api/v1/channels/search/by-text" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"session": "{session}",
"text": "news",
"categories": [],
"limit": 50,
"startCursor": ""
}'
{
"session": "{session}",
"text": "news",
"categories": [],
"limit": 50,
"startCursor": ""
}
{
"success": true,
"message": "Channel action completed.",
"data": {
"action": "search-by-text",
"session": "{session}",
"channel_id": null,
"channel_response": {
"page": {
"endCursor": null,
"hasNextPage": false
},
"channels": [
{
"id": "{channel_id}@newsletter",
"name": "News Channel",
"invite": "https://whatsapp.com/channel/{invite_code}"
}
]
}
}
}
7. Get search views
Return available channel search views.
API name
Get search views
Purpose
Return available channel search views. Use it when your application needs channel data without opening the dashboard.
Endpoint
GET https://chatflow.zeltacode.com/api/v1/channels/search/views
curl -X GET "https://chatflow.zeltacode.com/api/v1/channels/search/views?session={session}" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
{
"session": "{session}"
}
{
"success": true,
"message": "Channel action completed.",
"data": {
"action": "search-views",
"session": "{session}",
"channel_id": null,
"channel_response": [
{
"value": "RECOMMENDED",
"name": "Explore"
}
]
}
}
8. Get search countries
Return available countries for channel search.
API name
Get search countries
Purpose
Return available countries for channel search. Use it when your application needs channel data without opening the dashboard.
Endpoint
GET https://chatflow.zeltacode.com/api/v1/channels/search/countries
curl -X GET "https://chatflow.zeltacode.com/api/v1/channels/search/countries?session={session}" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
{
"session": "{session}"
}
{
"success": true,
"message": "Channel action completed.",
"data": {
"action": "search-countries",
"session": "{session}",
"channel_id": null,
"channel_response": [
{
"code": "US",
"name": "United States"
}
]
}
}
9. Get search categories
Return available categories for channel search.
API name
Get search categories
Purpose
Return available categories for channel search. Use it when your application needs channel data without opening the dashboard.
Endpoint
GET https://chatflow.zeltacode.com/api/v1/channels/search/categories
curl -X GET "https://chatflow.zeltacode.com/api/v1/channels/search/categories?session={session}" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
{
"session": "{session}"
}
{
"success": true,
"message": "Channel action completed.",
"data": {
"action": "search-categories",
"session": "{session}",
"channel_id": null,
"channel_response": [
{
"value": "BUSINESS",
"name": "Business"
}
]
}
}
10. Get channel preview messages
Return preview messages for a public channel by invite code or channel ID.
API name
Get channel preview messages
Purpose
Return preview messages for a public channel by invite code or channel ID. Use it when your application needs channel data without opening the dashboard.
Endpoint
GET https://chatflow.zeltacode.com/api/v1/channels/{invite_code}/messages/preview
curl -X GET "https://chatflow.zeltacode.com/api/v1/channels/{invite_code}/messages/preview?session={session}&downloadMedia=0&limit=100" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
{
"session": "{session}",
"downloadMedia": false,
"limit": 100
}
{
"success": true,
"message": "Channel action completed.",
"data": {
"action": "preview-messages",
"session": "{session}",
"channel_id": null,
"channel_response": [
{
"reactions": {
"like": 10
},
"viewCount": 100,
"message": {
"id": "false_{channel_id}@newsletter_MESSAGE_ID",
"body": "Preview message"
}
}
]
}
}
11. Get channel messages
Return messages from a channel by channel ID.
API name
Get channel messages
Purpose
Return messages from a channel by channel ID. Use it when your application needs channel data without opening the dashboard.
Endpoint
GET https://chatflow.zeltacode.com/api/v1/channels/{channel_id}/messages
curl -X GET "https://chatflow.zeltacode.com/api/v1/channels/{channel_id}@newsletter/messages?session={session}&downloadMedia=1&limit=100&offset=0" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
{
"session": "{session}",
"downloadMedia": true,
"limit": 100,
"offset": 0
}
{
"success": true,
"message": "Channel action completed.",
"data": {
"action": "messages",
"session": "{session}",
"channel_id": "{channel_id}@newsletter",
"channel_response": [
{
"id": "false_{channel_id}@newsletter_MESSAGE_ID",
"from": "{channel_id}@newsletter",
"fromMe": true,
"body": "Channel message"
}
]
}
}