Get Channels List

Retrieve a list of WhatsApp channels known to the instance, filtered by role if specified.

GET
https://api.wawp.net/v2/channels?access_token=123456789&instance_id=123456789&role=OWNER

Authentication Required

Login to swap the placeholders with your real Instance ID and Access Token.

Log In
Test /v2/channels endpoint
GET
GET

No query parameters required

This endpoint doesn't expect data in the URL.

Best practices

  • Filter the list to show only channels where you have admin rights.

  • Refresh this list periodically to sync with phone-initiated actions.

The Inventory: Listing Your Channels

The /v2/channels endpoint acts as your personal registry. It returns a list of all channels that your Wawp instance interacts with, whether as a Creator (Owner) or a Follower (Subscriber).


📋 Understanding Channel Roles

The response includes a role field for each channel, which dictates your permissions.

1. OWNER

  • Definition: You created this channel.
  • Capabilities:
    • Post updates (Text, Media, Polls).
    • Change settings (Name, Picture, Description).
    • Delete the channel.

2. ADMIN

  • Definition: You were promoted to admin by the Owner (Note: Admin promotion via API is currently limited).
  • Capabilities: similar to owner but usually cannot delete the channel.

3. SUBSCRIBER (GUEST)

  • Definition: You followed this channel from the directory.
  • Capabilities:
    • Read messages.
    • React with emojis.
    • Mute/Unmute.
    • Cannot post updates.

🛠️ Sync Strategies

The Startup Sync

When your application boots up, you should call this endpoint to populate your local state.

  1. Fetch: Call GET /v2/channels.
  2. Filter: Separate the list into "My Channels" (role=OWNER) and "Subscriptions" (role=SUBSCRIBER).
  3. Display:
    • Show "My Channels" in a "Broadcast Dashboard".
    • Show "Subscriptions" in a "News Feed" view.

The "Stale Data" Problem

Channel metadata (like name or picture) changes rarely.

  • Optimization: Do not call this endpoint on every page load. Cache the result for 10-60 minutes.
  • Invalidation: If you perform a create or follow action, manually add that new item to your local cache instead of re-fetching the entire list.

🔍 Advanced Filtering

You can server-side filter the results to save bandwidth.

  • role=OWNER: Useful for "Creator Studios" where you only want to see channels you can post to.
  • role=SUBSCRIBER: Useful for "Reader Apps" where you only want to see content consumption sources.

⚠️ Common Pitfalls

  • Missing Channels: If you just followed a channel but it doesn't appear here immediately, give it 1-2 seconds. The sync between the WhatsApp server and the Wawp instance is asynchronous.
  • Duplicate Names: Remember that multiple channels can have the name "Test Channel". Always use the id (@newsletter) as the unique key in your UI.

Request Parameters

Configure the parameters required to interact with this endpoint. All query and body arguments are listed below with their details.

URL Parameters

Passed in the URL query string
string

Your unique WhatsApp Instance ID

Example:
string

Your API Access Token

Example:
string

Filter by role. Available values: OWNER, ADMIN, SUBSCRIBER

Example:

Request Samples

Use these ready-to-go code snippets to integrate our API into your project quickly and efficiently. Choose your preferred language and library.

1const baseUrl = "https://api.wawp.net";
2const endpoint = "/v2/channels";
3const params = new URLSearchParams({
4 "instance_id": "123456789",
5 "access_token": "123456789",
6 "role": "OWNER"
7}).toString();
8
9
10fetch(`${baseUrl}${endpoint}${params ? '?' + params : ''}`, {
11 method: "GET",
12 headers: { "Content-Type": "application/json" },
13
14})
15 .then(async (response) => {
16 if (response.ok) {
17 const data = await response.json();
18 console.log("Success:", data);
19 return data;
20 }
21
22 // Error Handling
23 if (response.status === 401) {
24 console.error("Error 401: Unauthorized - Invalid or Missing Access Token");
25 }
26 if (response.status === 400) {
27 console.error("Error 400: Bad Request - Invalid Parameter Format");
28 }
29 if (response.status === 500) {
30 console.error("Error 500: Internal Server Error - Unexpected Failure");
31 }
32
33 const errorText = await response.text();
34 console.error(`Error ${response.status}: ${errorText}`);
35 })
36 .catch((error) => console.error("Network Error:", error));
Interactive Samples
Ln 36, Col 1javascript

Expected Responses

Explore all possible responses and outcomes from the server. We have documented each status code with data examples to make success and error handling easier.

List of channels retrieved successfully
application/json
object *

Example

{
"0": {
  "id": "1234567890@newsletter",
  "name": "Wawp Updates",
  "role": "OWNER",
  "description": "Official updates from Wawp"
  }
}
Bad Request - Invalid Parameter Format
Unauthorized - Invalid or Missing Access Token
Internal Server Error - Unexpected Failure
Previous TopicChannels Management
Next TopicCreate Channel

Command Palette

Search for a command to run...