# WhatsApp Channel & Group Search - Find & Export Links (`clearpath/whatsapp-channel-group-search`) Actor

Find public WhatsApp groups and channels by topic. Export group invite links, channel followers, bios, pictures and verified badges where available. Check links you already have and flag unavailable invites. Choose channels, groups or both.

- **URL**: https://apify.com/clearpath/whatsapp-channel-group-search.md
- **Developed by:** [ClearPath](https://apify.com/clearpath) (community)
- **Categories:** Social media, Lead generation, Automation
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.49 / 1,000 channels

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

[![Find WhatsApp channels and groups by topic. Group invite links, channel followers and bios.](https://api.apify.com/v2/key-value-stores/rfpznBPgVbyLYqNaQ/records/whatsapp-search-refresh-53d36530ddb7.png)](https://console.apify.com/actors/b7X9FESB6oSY6dQoI/input)

From **Clearpath**, creators of [WhatsApp Number Validator](https://apify.com/clearpath/whatsapp-phone-number-validator-api), used in 13,000+ runs, and [WhatsApp Message Export](https://apify.com/clearpath/whatsapp-message-export-api).

### Find groups and channels about your topic

- **Search by topic.** Enter a keyword and find public channels and group invite links together, or choose either kind of result.
- **Get useful details.** Export channel followers, bios, pictures and verified-badge status where available, plus group names and invite links. Follower counts belong to channels.
- **Check links you already have.** Add channel or group links to `startUrls`. Unavailable and invalid links get a status row and are not charged.

<a href="https://console.apify.com/actors/b7X9FESB6oSY6dQoI/input" data-demo-cta="true"><img src="https://api.apify.com/v2/key-value-stores/rfpznBPgVbyLYqNaQ/records/whatsapp-search-refresh-e855f518d136.svg" width="268" height="48" alt="Search WhatsApp channels and groups by topic"></a>

#### Start with a topic

Open the [input page](https://console.apify.com/actors/b7X9FESB6oSY6dQoI/input), switch to JSON and replace the current input with:

```json
{
  "queries": [
    "crypto"
  ],
  "searchFor": "both",
  "maxItems": 25
}
```

Replace `crypto` with any topic or keyword. Change `maxItems` to request more results, or remove it for as many as can be found. Set `"searchFor": "channels"` or `"groups"` when you want only one kind of result. Download as JSON, CSV or Excel.

The image shows saved `crypto` results: the Bitcoin Trading channel and the CRYPTO NEWS group. Channel follower counts are rounded, and invite availability can change.

<table><tr><td style="padding:10px 14px;background:#25D366;border:none;border-radius:4px 4px 0 0"><span style="color:#10281C;font-size:14px;font-weight:700">Clearpath WhatsApp Tools</span><span style="color:#10281C;font-size:13px">&nbsp;&nbsp;&bull;&nbsp;&nbsp;Find, check and export WhatsApp data</span></td></tr><tr><td style="padding:6px;border:1px solid #B8DFC6;border-top:none;border-radius:0 0 4px 4px;background:#E7F8EC"><span style="display:inline-block;vertical-align:top;margin:3px;padding:6px 8px;border:1px solid #B8DFC6;border-radius:4px;background:#CFF3DD"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-b7X9FESB6oSY6dQoI-Ex1TN7egCL-icon-512.png" width="20" height="20" alt="" style="vertical-align:middle">&nbsp;&nbsp;<a href="https://apify.com/clearpath/whatsapp-channel-group-search" style="color:#163B24;text-decoration:none;font-weight:700;font-size:13px">Channel &amp; Group Search</a></span><br><span style="color:#163B24;font-size:12px;font-weight:600">&#10148; You are here</span></span><span style="display:inline-block;vertical-align:top;margin:3px;padding:6px 8px;border:1px solid #B8DFC6;border-radius:4px;background:#E7F8EC"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-5VRd0yDjFG6Ocsoga-FL7gTGa0Qu-whatsapp-message-export-api-logo.png" width="20" height="20" alt="" style="vertical-align:middle">&nbsp;&nbsp;<a href="https://apify.com/clearpath/whatsapp-phone-number-validator-api" style="color:#163B24;text-decoration:none;font-weight:700;font-size:13px">Number Validator</a></span><br><span style="color:#345842;font-size:12px">Bulk number checks</span></span><span style="display:inline-block;vertical-align:top;margin:3px;padding:6px 8px;border:1px solid #B8DFC6;border-radius:4px;background:#E7F8EC"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-spae6psFHel5wvUw2-GlofGipqSp-whatsapp-icon-logo-svgrepo-com.svg.png" width="20" height="20" alt="" style="vertical-align:middle">&nbsp;&nbsp;<a href="https://apify.com/clearpath/whatsapp-profile-avatar-age-gender-api" style="color:#163B24;text-decoration:none;font-weight:700;font-size:13px">Profile Avatar</a></span><br><span style="color:#345842;font-size:12px">Age &amp; gender from photos</span></span><span style="display:inline-block;vertical-align:top;margin:3px;padding:6px 8px;border:1px solid #B8DFC6;border-radius:4px;background:#E7F8EC"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-DpAPQshXpRzgM66fy-7b1aSq3zDt-whatsapp-message-export-api-logo.png" width="20" height="20" alt="" style="vertical-align:middle">&nbsp;&nbsp;<a href="https://apify.com/clearpath/whatsapp-message-export-api" style="color:#163B24;text-decoration:none;font-weight:700;font-size:13px">Message Export</a></span><br><span style="color:#345842;font-size:12px">Back up chats &amp; media</span></span><span style="display:inline-block;vertical-align:top;margin:3px;padding:6px 8px;border:1px solid #B8DFC6;border-radius:4px;background:#E7F8EC"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-9pRZp7d5ZYTb7ejOv-o1OJDYG0XM-whatsapp-message-export-api-logo.png" width="20" height="20" alt="" style="vertical-align:middle">&nbsp;&nbsp;<a href="https://apify.com/clearpath/whatsapp-real-time-message-api" style="color:#163B24;text-decoration:none;font-weight:700;font-size:13px">Real-Time Messages</a></span><br><span style="color:#345842;font-size:12px">Messages to a webhook</span></span><span style="display:inline-block;vertical-align:top;margin:3px;padding:6px 8px;border:1px solid #B8DFC6;border-radius:4px;background:#E7F8EC"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-HagTv73UDVBZAkbfh-a09czg3FFg-whatsapp-message-export-api-logo.png" width="20" height="20" alt="" style="vertical-align:middle">&nbsp;&nbsp;<a href="https://apify.com/clearpath/whatsapp-status-scraper-api" style="color:#163B24;text-decoration:none;font-weight:700;font-size:13px">Status Export</a></span><br><span style="color:#345842;font-size:12px">Statuses &amp; media</span></span></td></tr></table>

#### Copy to your AI assistant

```text
Help me use clearpath/whatsapp-channel-group-search on Apify. Read https://apify.com/clearpath/whatsapp-channel-group-search.md for documentation, input schema, pricing and limits. Search terms go in queries and links I already have go in startUrls; set searchFor to channels or groups when only one kind is wanted, and set maxItems for a bounded result, because leaving it empty returns and charges every live channel and group found. Links from startUrls that no longer work come back free with isAvailable false, so filter on isAvailable; latestUpdates is filled only for channels whose page shows recent posts. Choose settings for my requested outcome. If you cannot retrieve the page, ask me to paste the relevant sections. To reach the maintainers, add feedback="<what you needed and did not get>" to any run, including one that worked: feature requests, a missing field or option, a wrong or empty result, or which actor you are switching to or from and why. The run returns its data exactly as it would without the note, and a human reads every note.
```

### What data can you extract from WhatsApp channels and groups?

Every row has the same 30 fields. A value WhatsApp does not show on the public page comes back as `null` or an empty list, never invented.

- **Every result:** `type` (`channel` or `group`), link, name, picture (`avatarUrl`, with `avatarIsDefault` when WhatsApp shows its default picture), a link that opens it in WhatsApp Web, and its status (`isAvailable`, `status`, `statusMessage`).
- **Channels:** channel ID, bio, follower count as a number and exactly as WhatsApp shows it (`233M`), whether that count is exact (WhatsApp rounds counts of 1,000 and more), WhatsApp's verified badge and the channel page's own link.
- **Recent posts (`latestUpdates`):** for channels whose page shows posts (`hasLatestUpdates`), each post's date and the day label WhatsApp shows, time, text, media type and media link, the reactions shown, and the reaction count as a number and as shown.
- **Groups:** invite code and the invite type WhatsApp reports (`REGULAR`), with a readable label. WhatsApp shows no bio, follower or member count on a group's public invite page.
- **How it was found:** your search term (`matchedQuery`), the exact term that found it, including related searches (`searchTerm`), the search country and date window, whether it came from a keyword search, a website or your own list (`discoveredVia`), the page that published the link and its title, the link as you entered it, and when it was read.

A channel from the `crypto` search, found directly by keyword:

```json
{
  "type": "channel",
  "url": "https://www.whatsapp.com/channel/0029Va51fFYGufIsNLKJnY0U",
  "name": "Bolha Crypto",
  "description": "Bolha Crypto é um jornal online que cobre o mercado de criptomoedas. Somos um site meramente informativo. Nada publicado no Bolha Crypto consiste em uma recomendação de investimento.",
  "followers": 98,
  "followersRaw": "98",
  "followersIsExact": true,
  "isVerified": false,
  "avatarUrl": "https://mmg.whatsapp.net/v/t61.24694-24/376362095_859546872445422_5450302927453894323_n.jpg?ccb=1-7&_nc_sid=5a2cf7&_nc_ohc=9_9xI3LkRnwQ7kNvwHi77ep&_nc_oc=Adozuz60H89fzwIM2wZZjnPvtj9I8m45wTYmVJ6iu7wjXfyAwsRXd8i1K2wpzss8pzA&_nc_zt=3&_nc_ht=mmg.whatsapp.net&_nc_gid=kfGAybosL4PyaOTQe6eDGQ&_nc_ss=79289&oh=01_Q5Aa6AGLYvxXYm5rSC2vqPLdUPrOZ-Af4eYQte_C-rY9lAs6wQ&oe=6B12B8FC",
  "avatarIsDefault": false,
  "channelId": "0029Va51fFYGufIsNLKJnY0U",
  "inviteCode": null,
  "inviteLinkType": null,
  "inviteLinkTypeLabel": null,
  "webJoinUrl": "https://web.whatsapp.com/accept?channel_invite_code=0029Va51fFYGufIsNLKJnY0U",
  "canonicalUrl": "https://www.whatsapp.com/channel/0029Va51fFYGufIsNLKJnY0U/",
  "hasLatestUpdates": false,
  "latestUpdates": [],
  "isAvailable": true,
  "status": "available",
  "statusMessage": "Live public channel.",
  "matchedQuery": "crypto",
  "searchTerm": "crypto",
  "searchCountry": "BR",
  "searchDateWindow": "any",
  "discoveredVia": "keyword_search",
  "foundOnUrl": null,
  "foundOnTitle": null,
  "inputUrl": null,
  "scrapedAt": "2026-11-04T13:56:33Z"
}
```

A group from the same topic, published on a website about crypto trading signals:

```json
{
  "type": "group",
  "url": "https://chat.whatsapp.com/GTzbTuFAVTX7qBNV3QkLHe",
  "name": "CRYPTO HUNTER SPOT FUTURE BINANCE",
  "description": null,
  "followers": null,
  "followersRaw": null,
  "followersIsExact": null,
  "isVerified": null,
  "avatarUrl": "https://pps.whatsapp.net/v/t61.24694-24/319753753_1118488282101985_5331020798040707391_n.jpg?ccb=11-4&oh=01_Q5Aa6AF080k5nHWPCP4TWG0vGzCSLoEIFAg4Vb0NbVfcGXYxNQ&oe=6AF85384&_nc_sid=5e03e0&_nc_cat=111",
  "avatarIsDefault": false,
  "channelId": null,
  "inviteCode": "GTzbTuFAVTX7qBNV3QkLHe",
  "inviteLinkType": "REGULAR",
  "inviteLinkTypeLabel": "Group chat invite",
  "webJoinUrl": "https://web.whatsapp.com/accept?code=GTzbTuFAVTX7qBNV3QkLHe",
  "canonicalUrl": null,
  "hasLatestUpdates": null,
  "latestUpdates": null,
  "isAvailable": true,
  "status": "available",
  "statusMessage": "Live public group.",
  "matchedQuery": "crypto",
  "searchTerm": "crypto",
  "searchCountry": "US",
  "searchDateWindow": "any",
  "discoveredVia": "web_page",
  "foundOnUrl": "https://coinweb.com/crypto-trading-signals-on-whatsapp/",
  "foundOnTitle": "The Best Trading Signals Group on WhatsApp in 2026",
  "inputUrl": null,
  "scrapedAt": "2026-11-04T14:16:17Z"
}
```

WhatsApp's own channel, checked from a link, with its recent posts. `latestUpdates` is shortened here to two of the four posts the run returned; every post has the same keys.

```json
{
  "type": "channel",
  "url": "https://www.whatsapp.com/channel/0029Va4K0PZ5a245NkngBA2M",
  "name": "WhatsApp",
  "description": "WhatsApp’s official channel. Follow for our latest feature launches, updates, exclusive drops and more.",
  "followers": 233000000,
  "followersRaw": "233M",
  "followersIsExact": false,
  "isVerified": true,
  "avatarUrl": "https://mmg.whatsapp.net/m1/v/t24/AQOEOzNAdKzqOT6drrSTU8P2zxLvekfjqazmc7vG_XyBqK5mChkngOOURTlOrws_0BFCX3fUwl645DCuRFRsgEKvp_qXxDH8ihjkqMY0V_8wBaOWV7B57HVk5JPnuia6Yj3lMjT1CmgLPds3CBn902rNbxhU9J1j?_nc_gid=60y3y8qjyEML6DUp_XOF5w&_nc_oc=AdpHBrJed6IRBSFjGTXjXnFkrQDr6D3hl6IzGGTMwj3XWTegng1E0OjXXOdvuwdEgcE&ccb=10-5&oh=01_Q5Aa6AEigHmukZfVKXW9Gw_zydRI5UOokXkvN_xHhg4npaK0HQ&oe=6B12B7C8&_nc_sid=471a72",
  "avatarIsDefault": false,
  "channelId": "0029Va4K0PZ5a245NkngBA2M",
  "inviteCode": null,
  "inviteLinkType": null,
  "inviteLinkTypeLabel": null,
  "webJoinUrl": "https://web.whatsapp.com/accept?channel_invite_code=0029Va4K0PZ5a245NkngBA2M",
  "canonicalUrl": "https://www.whatsapp.com/channel/0029Va4K0PZ5a245NkngBA2M/",
  "hasLatestUpdates": true,
  "latestUpdates": [
    {
      "date": "2026-11-01",
      "dateLabel": "SUNDAY",
      "time": "05:29 PM",
      "text": "*Get in on the game-day smack talk*  🏈\nWWE stars The Bella Twins and LA Knight are watching Philadelphia vs. Washington _right now_, and they've got plenty to say. Jump into The Chat for live reactions, big opinions and a few friendly jabs.",
      "mediaType": null,
      "mediaUrl": null,
      "reactions": [
        "👍",
        "❤️",
        "🙏",
        "😮"
      ],
      "reactionCount": 7600,
      "reactionCountRaw": "7.6K"
    },
    {
      "date": "2026-10-27",
      "dateLabel": "10/27/2026",
      "time": "10:42 AM",
      "text": "Sometimes the wrong chat becomes the right chat.",
      "mediaType": "gif",
      "mediaUrl": "https://mmg.whatsapp.net/m1/v/t24/AQOySSaE7ExDw8o3_8WEkeKNVmNg2lDjEcw1SW1gzATayvIeqE75UVPgtRNk4tgzA2Ngx1Zbmqg7zadUABINOoNmaOPlTsOCtWayBm0GlDkJ-bN5wH_ogwVU_Rkd4tC4noR38jg5xe8?_nc_gid=60y3y8qjyEML6DUp_XOF5w&_nc_oc=AdoCxV1tzcwdwx6U4IEn2N1c10z_Z0uKAuqdFKtbd0UXAz9O3_OAhCu6hO3eB6cbgok&ccb=10-5&oh=01_Q5Aa6AGDhsMJAZ_nZdqI8YacnANQ-b0-CsWeJ7n6Ncjh6gZY5g&oe=6B12C178&_nc_sid=471a72",
      "reactions": [
        "👍",
        "❤️",
        "😂",
        "❤"
      ],
      "reactionCount": 126000,
      "reactionCountRaw": "126K"
    }
  ],
  "isAvailable": true,
  "status": "available",
  "statusMessage": "Live public channel.",
  "matchedQuery": null,
  "searchTerm": null,
  "searchCountry": null,
  "searchDateWindow": null,
  "discoveredVia": "start_url",
  "foundOnUrl": null,
  "foundOnTitle": null,
  "inputUrl": "https://www.whatsapp.com/channel/0029Va4K0PZ5a245NkngBA2M",
  "scrapedAt": "2026-11-04T13:56:15Z"
}
```

Picture and media links are WhatsApp's own and stop working after some time, so download what you want to keep.

### How to search WhatsApp channels and groups

Add search terms, links, or both. All options are on the [input page](https://console.apify.com/actors/b7X9FESB6oSY6dQoI/input).

| Parameter | Type | Default | Meaning |
|---|---|---|---|
| `queries` | list of text | empty | Topics, names or keywords. Each term is searched on its own, up to 200 per run. |
| `startUrls` | list of text | empty | Channel links, group invite links, bare channel IDs or invite codes to check, up to 20,000 per run. |
| `maxItems` | number | empty | The most channels and groups in the whole run. Empty returns as many as can be found. |
| `searchFor` | text | `both` | `both`, `channels` or `groups`. |
| `maxResultsPerQuery` | number | empty | The most results for each search term. |
| `countries` | list of codes | empty | Two-letter codes such as `IN`, `BR` or `US`, from 36 supported countries. Empty searches the largest WhatsApp markets worldwide. |
| `expandQueries` | true or false | `true` | Also search closely related terms, such as `crypto news` for `crypto`. Finds many more results. |
| `includeWebPages` | true or false | `true` | Also collect links that blogs, forums and link lists publish about your topic. Most public groups are found this way. |
| `includeLatestUpdates` | true or false | `true` | Add the recent posts a channel shows publicly. No extra charge. |

#### Channels and groups in one country

```json
{
  "queries": [
    "cricket"
  ],
  "countries": [
    "IN"
  ],
  "maxItems": 40
}
```

Every result from this run carries `"searchCountry": "IN"`. Add several countries to cover a region.

#### Check links you already have

```json
{
  "startUrls": [
    "https://www.whatsapp.com/channel/0029Va4K0PZ5a245NkngBA2M",
    "https://chat.whatsapp.com/0LEIJmpjWst8tx27aCC9QR",
    "0029Va4pVQ4002TGh9ltN20Z"
  ]
}
```

The first link returns the WhatsApp channel shown above. The second is an invite that was revoked, so its row says so and costs nothing:

```json
{
  "type": "group",
  "url": "https://chat.whatsapp.com/0LEIJmpjWst8tx27aCC9QR",
  "name": null,
  "description": null,
  "followers": null,
  "followersRaw": null,
  "followersIsExact": null,
  "isVerified": null,
  "avatarUrl": null,
  "avatarIsDefault": null,
  "channelId": null,
  "inviteCode": "0LEIJmpjWst8tx27aCC9QR",
  "inviteLinkType": "REGULAR",
  "inviteLinkTypeLabel": null,
  "webJoinUrl": null,
  "canonicalUrl": null,
  "hasLatestUpdates": null,
  "latestUpdates": null,
  "isAvailable": false,
  "status": "unavailable",
  "statusMessage": "This invite link was revoked, has expired or never existed.",
  "matchedQuery": null,
  "searchTerm": null,
  "searchCountry": null,
  "searchDateWindow": null,
  "discoveredVia": "start_url",
  "foundOnUrl": null,
  "foundOnTitle": null,
  "inputUrl": "https://chat.whatsapp.com/0LEIJmpjWst8tx27aCC9QR",
  "scrapedAt": "2026-11-04T13:56:14Z"
}
```

An entry that is not a WhatsApp link at all gets a row with `"status": "invalid_link"`, also free. A link that could not be read in this run is marked `fetch_failed`, free, and can be checked again in the next run.

### How many channels and groups will I get?

A search returns the public channels and groups that are visible on the public web for your topic. An uncapped search for `crypto` returned 115 relevant channels and 195 groups in about 90 seconds. With a limit of 100, a channels-only search returned 100 live channels in 54 seconds and a groups-only search returned 100 live groups in 40 seconds.

Popular topics usually bring more groups than channels, because group invite links are widely shared on websites. Brand-new channels, private channels and groups whose links were never published do not appear. For more results, use several related search terms, keep `expandQueries` and `includeWebPages` on, and add the countries your audience lives in.

A run stops shortly before its run time limit and keeps everything found so far. For many search terms without a result limit, allow a longer run time in the run options.

### Integrations and scheduling

Schedule the same search weekly to collect new channels and groups as they appear, and compare runs by `url`. Schedule a link check daily or weekly to see which of your group invites have been revoked. Each finished run can call a webhook or feed n8n, Make, Zapier, Google Sheets or your own code through Apify's integrations and client libraries, and AI agents can run it through Apify's MCP server.

### Pricing

You pay for each live channel or group saved to your dataset. The Free plan pays $4.99 per 1,000 channels or groups, Bronze $4.59, Silver $4.19, Gold and above $3.49.

Recent channel posts are included in that price. Links you supply that no longer work, entries that are not WhatsApp links and links that could not be read are saved free. Found links that no longer work are skipped and never charged.

The 25-result starter run above costs about $0.12 on the Free plan.

### FAQ

**Do I need a WhatsApp account, phone number or QR code?** No. The actor reads WhatsApp's public channel and invite pages, the same pages anyone can open in a browser. Nothing is linked to your WhatsApp.

**How do I find WhatsApp groups to join on a topic?** Enter the topic in `queries` and set `searchFor` to `groups`. Each group comes with its invite link and a WhatsApp Web link that opens it.

**Can I search WhatsApp groups or channels by name?** Yes. Enter the name as a search term. Channels must mention it in their name or bio; groups must carry it in their name or come from a page about it.

**Can I find channels and groups for one country?** Yes. Set `countries`, for example `["IN"]` or `["KE", "NG", "ZA"]`. 36 countries are supported.

**How do I check whether a group invite link still works?** Paste your links into `startUrls`. Live groups come back with `"isAvailable": true` and their name and picture; revoked or expired invites come back with `"status": "unavailable"`, free of charge.

**What is the difference between a channel and a group in the results?** A channel is a one-way broadcast with followers, a bio, a verified badge and public posts. A group is a chat you join with an invite link; its public page shows only the name and picture.

**Does it show the verified badge and follower count?** Yes. `isVerified` is WhatsApp's verified badge. `followers` is the count WhatsApp shows, as a number; WhatsApp rounds counts of 1,000 and more (`233M`, `7.2K`), and `followersIsExact` tells you when a count is exact.

**Can I get a channel's posts?** You get the recent posts WhatsApp shows on the channel's public page, with text, media links and reactions, when the channel shows any. The full post history is only available in the WhatsApp app.

**Why did my search return only a few channels?** Fewer channels than groups are visible on the public web for most topics. Add related terms, try the topic in the local language, add countries, or paste channel links you already know into `startUrls`.

**Can it read private chats, group members or phone numbers?** No. It returns only what WhatsApp shows publicly on channel and invite pages. To check whether phone numbers use WhatsApp, use [WhatsApp Number Validator](https://apify.com/clearpath/whatsapp-phone-number-validator-api); to back up your own chats, use [WhatsApp Message Export](https://apify.com/clearpath/whatsapp-message-export-api).

**How current is the data?** Every run reads the channel and invite pages live. Nothing is cached between runs.

**Can I export to CSV or Excel?** Yes. Download the dataset as JSON, CSV, Excel, XML or HTML. JSON keeps `latestUpdates` as a nested list; CSV and Excel flatten it into columns.

**Can I use it from an AI agent?** Yes, through Apify's MCP server or client libraries. The copy-to-AI block above gives an agent what it needs.

**Is it legal to collect this data?** The actor reads only public pages and joins nothing. You are responsible for how you use the results, including WhatsApp's terms and the data protection rules that apply to you.

### More Clearpath WhatsApp tools

- [WhatsApp Number Validator](https://apify.com/clearpath/whatsapp-phone-number-validator-api): check which phone numbers use WhatsApp, 10,000 per run.
- [WhatsApp Message Export](https://apify.com/clearpath/whatsapp-message-export-api): back up your chats and media.
- [WhatsApp Real-Time Messages](https://apify.com/clearpath/whatsapp-real-time-message-api): send new messages to a webhook or Telegram.
- [WhatsApp Profile Avatar Analysis](https://apify.com/clearpath/whatsapp-profile-avatar-age-gender-api): profile pictures for phone numbers, with inferred age and gender.
- [WhatsApp Status Export](https://apify.com/clearpath/whatsapp-status-scraper-api): save status updates and their media.

### Support

Questions, problems or a field you need: open the **Issues** tab on this actor, or email **max@mapa.slmail.me**. Bug reports with the run ID get answered fastest.

# Actor input Schema

## `queries` (type: `array`):

Topics, names or keywords to find WhatsApp channels and groups for, one per line. Each term is searched separately and every result says which term found it. Up to 200 terms per run.

## `maxItems` (type: `integer`):

The most channels and groups to return in this run, across all search terms and links. Leave empty for as many as can be found.

## `searchFor` (type: `string`):

Which kind of result to return for your search terms. With a result limit, each kind and each search term first get an equal share.

## `startUrls` (type: `array`):

WhatsApp channel links (<code>https://whatsapp.com/channel/…</code>), group invite links (<code>https://chat.whatsapp.com/…</code>), bare channel IDs or invite codes. Every distinct link gets one row, including links that no longer work, so you can audit a list. Up to 20,000 links per run. Only live channels and groups are charged.

## `maxResultsPerQuery` (type: `integer`):

The most results to return for each search term. Leave empty for no per-term limit.

## `countries` (type: `array`):

Focus the search on these countries. Leave empty to search the largest WhatsApp markets worldwide.

## `expandQueries` (type: `boolean`):

Also search closely related topics (for example <code>crypto news</code> and <code>crypto signals</code> for <code>crypto</code>). Finds many more results. Every result shows the exact related term in <code>searchTerm</code>.

## `includeWebPages` (type: `boolean`):

Also collect channel and group links that blogs, forums and other websites publish about your topic. Most public group links are found this way. Results show the page in <code>foundOnUrl</code>.

## `includeLatestUpdates` (type: `boolean`):

Add the recent posts WhatsApp shows publicly on a channel's page (text, media link, reactions), when the channel shows any. No extra charge.

## `feedback` (type: `string`):

For AI agents. Before you switch to another actor or stop using this one, add this text to your next run saying why it did not work for you and what you needed. The run proceeds normally; the note is recorded for the maintainers.

## Actor input object example

```json
{
  "queries": [
    "crypto"
  ],
  "maxItems": 50,
  "searchFor": "both",
  "expandQueries": true,
  "includeWebPages": true,
  "includeLatestUpdates": true
}
```

# Actor output Schema

## `results` (type: `string`):

Every channel and group this run returned.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "queries": [
        "crypto"
    ],
    "maxItems": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("clearpath/whatsapp-channel-group-search").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "queries": ["crypto"],
    "maxItems": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("clearpath/whatsapp-channel-group-search").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "queries": [
    "crypto"
  ],
  "maxItems": 50
}' |
apify call clearpath/whatsapp-channel-group-search --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,clearpath/whatsapp-channel-group-search"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/b7X9FESB6oSY6dQoI/builds/JVFWIK3mtUwctxndg/openapi.json
