Search Channels by Text

Search for channels using a text query.

GET
https://api.wawp.net/v2/channels/search/text?access_token=123456789&categories=ENTERTAINMENT&instance_id=123456789&limit=10&startCursor=value&text=Tesla

Authentication Required

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

Log In
Test /v2/channels/search/text endpoint
GET
GET

No query parameters required

This endpoint doesn't expect data in the URL.

The Global Directory: Searching WhatsApp Channels

The /v2/channels/search/text endpoint provides programmatic access to WhatsApp's global directory of public channels. This is the same search engine used by the WhatsApp mobile app in the "Updates" tab.


🔍 How Search Works

The search engine performs a fuzzy match against the Channel Name and Description. It uses an internal relevance score to rank results, prioritizing Verified (Green Tick) channels and those with high follower counts in the requested region.

The "Cursor" Pagination Model

Unlike SQL databases that use OFFSET/LIMIT, tips: [ { type: 'info', title: 'Keywords', content: 'Searches channel titles and descriptions.' }, { type: 'positive', title: 'Filters', content: 'Combine with country or category filters for better results.' } ], recommendations: [ "Debounce search inputs to avoid hitting rate limits.", "Highlight matching keywords in the search results UI.", "Cache common search terms locally." ]

WhatsApp Search uses an opaque cursor string for pagination to handle millions of records efficiently.

The Workflow:

  1. First Request: Send startCursor="" (empty string).
  2. Response: You receive a list of channels and a nextCursor string (e.g., "cursor_Au9s...").
  3. Next Page: Send the exact nextCursor string as the startCursor parameter in your next request.
  4. End of Results: When nextCursor is null or empty, you have reached the end of the query results.

🎯 Filtering Strategies

Refine your search to cut through the noise.

1. By Category (categories)

You can filter results to specific topics. This is useful for building niche discovery tools.

  • Available Values:
    • ENTERTAINMENT: Celebrity and media channels.
    • SPORTS: Teams, leagues, and athletes.
    • LIFESTYLE: Fashion, cooking, and hobbies.
    • BUSINESS: Companies and brands.
    • NEWS: Global and local news outlets.
    • ORGANIZATIONS: Non-profits and government bodies.

2. By Text Query (text)

  • Broad Match: Searching "Foo" will return "Foo Fighters", "Foodies", and "Football".
  • No Wildcards: You do not need * characters; the fuzzy matching is automatic.

💡 Use Case: The "Trend Watcher" Bot

Imagine you want to monitor the cryptocurrency market sentiment on WhatsApp.

  1. Script Loop: Run a cron job every 24 hours.
  2. Search: Query for terms like "Bitcoin", "Crypto", "Trading".
  3. Filter: Iterate through the results and check the subscribers_count.
  4. Action: If a new channel appears with >10,000 followers, automatically trigger the Follow API and alert your team via Slack.

This allows you to detect emerging influencers before they become mainstream.


⚠️ Important Notes

  • Region Locking: The results are global but may be biased towards the region of the phone number connected to the instance.
  • Rate Limits: Searching is expensive. Do not use this endpoint for high-frequency autocomplete (typing) features. Debounce your requests by at least 1-2 seconds.

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

The search query text

Example:
array[string]

Filter by categories. e.g. ENTERTAINMENT,SPORTS

Example:
number

Maximum number of results

Example:
string

Cursor for pagination. Leave as empty string for the first page.

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/search/text";
3const params = new URLSearchParams({
4 "instance_id": "123456789",
5 "access_token": "123456789",
6 "text": "Tesla",
7 "categories": "ENTERTAINMENT",
8 "limit": "10",
9 "startCursor": ""
10}).toString();
11
12
13fetch(`${baseUrl}${endpoint}${params ? '?' + params : ''}`, {
14 method: "GET",
15 headers: { "Content-Type": "application/json" },
16
17})
18 .then(async (response) => {
19 if (response.ok) {
20 const data = await response.json();
21 console.log("Success:", data);
22 return data;
23 }
24
25 // Error Handling
26 if (response.status === 401) {
27 console.error("Error 401: Unauthorized - Invalid or Missing Access Token");
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.

Channels retrieved successfully
application/json
array *
string *

Example

{
"channels": {
  },
"nextCursor": "cursor_456"
}
Unauthorized - Invalid or Missing Access Token
Internal Server Error - Unexpected Failure
Previous TopicSearch Channels by View
Next TopicGet Channel Views

Command Palette

Search for a command to run...