# WhatsApp Group Links Scraper (`socialdataapi/whatsapp-group-links-scraper`) Actor

WhatsApp Group Links Scraper finds public WhatsApp group and channel invite links shared in posts on Facebook, Instagram, TikTok, LinkedIn, X, YouTube, Pinterest and Reddit by keyword and country. Only live links are kept. Export to JSON, CSV or Excel, or use the API.

- **URL**: https://apify.com/socialdataapi/whatsapp-group-links-scraper.md
- **Developed by:** [Social Data API](https://apify.com/socialdataapi) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.46 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
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

### WhatsApp Group Links Scraper — Invite Links, Sources and Snippets

WhatsApp Group Links Scraper finds public WhatsApp group and channel invite links shared in posts on Facebook, Instagram, TikTok, LinkedIn, X, YouTube, Pinterest and Reddit, by keyword and country: the invite link, the post that shares it, its title, snippet and date. Every response is structured JSON — ready to pass directly to an LLM, index into a vector store, or feed a community research or lead generation pipeline. **Only links that open a live group or channel are kept.** Start with one keyword, then map whole niches.

![WhatsApp Group Links Scraper output as JSON: invite links, source post, snippet and date](https://api.apify.com/v2/key-value-stores/WYkyEfqs10huyXYxr/records/a-whatsapp-group-links-hero.webp)

***

### What data can I extract with WhatsApp Group Links Scraper?

Using this WhatsApp group links API, you will be able to extract the following data:

| 💬 WhatsApp group or channel link | 🔗 Post that shares it | 📝 Post title | 🧾 Snippet text |
|---|---|---|---|
| 🕒 Snippet date | 📆 Age in days | ♻️ Duplicate-link flag | 🔎 Keyword that found it |
| 🌐 Platform | 📍 Country | ✅ Success / reason | 📅 Time collected |

***

### How to use WhatsApp Group Links Scraper

Built for marketers, community managers and researchers: one run turns a list of keywords into a table of live WhatsApp groups and channels people share on social media.

**Copy to your AI assistant:**

```text
This actor (Apify Actor ID: socialdataapi/whatsapp-group-links-scraper, https://apify.com/socialdataapi/whatsapp-group-links-scraper) is an Apify Actor that finds public WhatsApp group and channel invite links shared in posts on one social network and returns them as structured JSON: keyword, platform, country, post title, snippet text, snippet date as shown and its age in days, source post URL, the WhatsApp links in that post that open a live group or channel (chat.whatsapp.com/... or whatsapp.com/channel/...), a duplicate-link flag, the time collected, and success / failureReason. Use it whenever someone needs WhatsApp groups for a topic - finding communities in a niche, building a list of job, crypto or real-estate groups, or checking which groups are promoted on a platform. Inputs: keywords (array of strings, required), platform (required: facebook.com, linkedin.com, instagram.com, twitter.com, youtube.com, reddit.com, pinterest.com or tiktok.com; default youtube.com), country (required, a code from the input list such as us, uk, in, gm for Germany, sp for Spain; default us), limit (integer >= 1, total rows across all keywords shared evenly, empty = no limit; default 10), proxyConfiguration (object, optional; keep the default). Every result is one row charged as the row_result event; a keyword that finds no live link gets one uncharged row with success false and a failureReason. A per-run summary is saved under the key RUN_SUMMARY
```

#### WhatsApp Group Links Scraper MCP Server: use these Actors from ChatGPT, Claude or Cursor

Point your AI assistant at Apify and it can find WhatsApp groups on its own: live invite links for a topic, the posts that share them and where they came from. No glue code, no scraping logic in your prompts.

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=socialdataapi/whatsapp-group-links-scraper"
```

#### Step by step

1. [Create a free Apify account](https://console.apify.com/sign-up).
2. Open [WhatsApp Group Links Scraper](https://apify.com/socialdataapi/whatsapp-group-links-scraper) in the Apify Store.
3. Add your keywords, one per line, then pick the social network and the country.
4. Click **Start** (or send your API request).
5. Download or stream your results in JSON, CSV or Excel.

#### How to scale WhatsApp Group Links Scraper to bulk

Put many keywords in one run: they are searched at the same time, and `limit` applies to each keyword on its own — every keyword is searched until it reaches `limit` or runs out of live links. Each result is saved the moment its links are checked, so the dataset fills while the run is going. Each keyword usually turns up a few to a few dozen live links, so cover a niche with many related keywords rather than one broad one. A recorded run with four keywords on Instagram in India and `limit` 6 saved 20 rows in 51 seconds; another with two keywords on Facebook in the US and `limit` 20 saved 31 rows in 45 seconds. To export WhatsApp group links for a whole niche, run the same keywords on each platform, then download the datasets as CSV or Excel.

***

### ✨ Features

WhatsApp Group Links Scraper turns public social posts into a clean list of live WhatsApp groups ⚡. It's ideal for community research, niche discovery, lead generation and moderation — a WhatsApp group link finder, WhatsApp group search and WhatsApp channel finder in one, built to find WhatsApp groups by keyword on eight networks. It extracts, per result:

- **Live links only** – every WhatsApp link is opened once; dead, expired or revoked invites are left out
- **Groups and channels** – `chat.whatsapp.com` group invites and `whatsapp.com/channel` channels, cleaned of tracking parameters
- **Source** – the post or page that shares the link, with its title and snippet text
- **Date** – the snippet date as shown ("1 day ago", "Sep 6, 2026") and its age in days
- **Duplicates flagged** – a link already saved in the run is marked, never silently dropped
- **Clear empty results** – a keyword with no live link gets one row saying why, free of charge

⚡ Filters: platform (Facebook, LinkedIn, Instagram, X, YouTube, Reddit, Pinterest, TikTok) and 101 countries.

***

### Use cases 💡

- **Marketer** — find the WhatsApp communities your audience already joins.
- **Community manager** — see which groups in your niche are promoted on Facebook or TikTok.
- **Recruiter** — collect WhatsApp job groups by city or industry.
- **Researcher** — map WhatsApp groups and channels around a topic and how recently they were shared.
- **AI engineer** — feed post titles and snippets into an LLM to classify groups by topic.

Building an AI agent? [Connect WhatsApp Group Links Scraper over MCP](#mcp-integration-for-ai-agents) and let it call the actor on its own.

***

### Why choose this actor?

1. **Only live groups.** In a recorded run, 16 WhatsApp links were found and 11 opened a live group or channel; only those 11 were saved.
2. **Fair across keywords.** A recorded run with four keywords and `limit` 6 returned 2, 2, 1 and 1 links — every keyword got its share.
3. **Fast first results.** Rows are saved one by one as their links are checked; recorded runs saved the first row after 4.6 to 21 seconds.

***

### ⬇️ Input

![Input fields of the WhatsApp Group Links Scraper](https://api.apify.com/v2/key-value-stores/WYkyEfqs10huyXYxr/records/a-whatsapp-group-links-input.webp)

`keywords`, `platform` and `country` are required.

| Parameter | Required | Type | Description | Example value |
|---|---|---|---|---|
| `keywords` | Yes | array | Search terms, one per line. Each keyword is searched on its own; repeated keywords are searched once. | `["jobs", "marketing"]` |
| `platform` | Yes | string | `facebook.com`, `linkedin.com`, `instagram.com`, `twitter.com`, `youtube.com`, `reddit.com`, `pinterest.com` or `tiktok.com`. Default `youtube.com`. | `"instagram.com"` |
| `country` | Yes | string | Country the search results come from, as a code from the input list (for example `us`, `uk`, `in`, `gm` for Germany, `sp` for Spain). Default `us`. | `"in"` |
| `limit` | No | integer | Most rows for each keyword, at least 1. Empty = no limit. Default `10`. | `50` |
| `proxyConfiguration` | No | object | Optional — keep the default. Requests go through Apify residential proxy in the selected country. Other Apify proxy groups or your own proxy URLs are used instead; if they cannot be used, the run switches to Apify residential proxy. | `{"useApifyProxy": true, "apifyProxyGroups": ["GOOGLE_SERP"]}` |

#### Free plan limits

Free plan: up to 20 results per run (all keywords together) and 200 per month; paid plans have no limit. A free-plan run with several keywords shares that same 20-result ceiling across all of them, not 20 per keyword — the Actor stops the whole run once the run total is reached and tells you so in the log and status message. Paid plans, local `apify run`s and Apify's own test runs are never limited.

#### Example input

```json
{
  "keywords": ["jobs", "marketing"],
  "platform": "facebook.com",
  "country": "us",
  "limit": 50
}
```

***

### ⬆️ Output

![Output fields of the WhatsApp Group Links Scraper](https://api.apify.com/v2/key-value-stores/WYkyEfqs10huyXYxr/records/a-whatsapp-group-links-output.webp)

Every result is one typed, normalized JSON item with the same thirteen fields on every run; values a result does not have are `null`. Export the dataset as JSON (default), CSV or Excel. A run summary (rows, unique links, rows per keyword, keywords with no results) is saved in the key-value store under `RUN_SUMMARY`.

#### Example output

Two recorded rows from the keyword "jobs" on Facebook — a group invite and a channel — and one recorded row for a keyword that found nothing:

```json
[
  {
    "keyword": "jobs",
    "platform": "facebook.com",
    "country": "us",
    "title": "Jobs vacancies in Lebanon - Facebook",
    "desc": "Help peoples to find the right job as well as for the company to find the right candidatures. https:// chat.whatsapp. com /GFGSdiY1IJ3G6H0IfPTfhX",
    "snippetDate": "1 day ago",
    "snippetAgeDays": 1,
    "url": "https://www.facebook.com/groups/jobsvacanciesinlebanon/",
    "groupUrl": ["https://chat.whatsapp.com/GFGSdiY1IJ3G6H0IfPTfhX"],
    "isDuplicateGroupUrl": false,
    "scrapedAt": "2026-10-14T10:31:24.633056+00:00",
    "success": true,
    "failureReason": null
  },
  {
    "keyword": "jobs",
    "platform": "facebook.com",
    "country": "us",
    "title": "VACANCIES IN ZIMBABWE 2026 ... - Facebook",
    "desc": "VACANCIES IN ZIMBABWE 2026 Join Our WhatsApp Group for more vacancy Notices https:// whatsapp . com /channel/0029VawZAua8KMqqd6E1cj",
    "snippetDate": "Sep 6, 2026",
    "snippetAgeDays": 38.4386,
    "url": "https://www.facebook.com/61577469417336/posts/vacancies-in-zimbabwe-2026join-our-whatsapp-group-for-more-vacancy-notices-/122123867312915647/",
    "groupUrl": ["https://whatsapp.com/channel/0029VawZAua8KMqqd6E1cj"],
    "isDuplicateGroupUrl": false,
    "scrapedAt": "2026-10-14T10:31:31.568025+00:00",
    "success": true,
    "failureReason": null
  },
  {
    "keyword": "jobs",
    "platform": "tiktok.com",
    "country": "ch",
    "title": null,
    "desc": null,
    "snippetDate": null,
    "snippetAgeDays": null,
    "url": null,
    "groupUrl": [],
    "isDuplicateGroupUrl": false,
    "scrapedAt": "2026-10-14T10:29:56.426149+00:00",
    "success": false,
    "failureReason": "search failed for this keyword after retries"
  }
]
```

`desc` is the snippet text as it appears in the search results, so links in it can contain spaces; `groupUrl` always holds the clean link. `snippetDate` and `snippetAgeDays` are `null` when the snippet has no date. Rows with `success: false` are not charged; filter on `success` to keep only results.

***

### How does it work?

For each keyword, the actor searches public web results for posts on the chosen platform that share a WhatsApp invite link, in the chosen country. Every WhatsApp group or channel link found is opened once, and only links that open a live group or channel are saved, one row per post. Requests go through Apify residential proxy, and a request that is refused is retried on new connections, then again after short pauses. It returns only publicly visible data, and the output fields stay the same from run to run, so your code and spreadsheets keep working when the sources change their pages.

***

### How do you integrate WhatsApp Group Links Scraper into your stack?

It works with what you already use: the REST API from any language, MCP for AI agents, and no-code tools.

#### MCP integration for AI agents

Add the Apify MCP server to your AI client with one command:

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=socialdataapi/whatsapp-group-links-scraper"
```

This registers WhatsApp Group Links Scraper as a tool your agent can call directly: the agent finds it through the server's search, adds it and runs it, then reads the links back as JSON. Ask for "live WhatsApp job groups shared on Facebook in the US" and it does the rest. It works in Claude Code, Cursor and Windsurf.

#### No-code tools (n8n, Make)

**n8n:** add the Apify node and choose "Run an Actor", or use the HTTP Request node pointed at the run-sync endpoint with your token. Send new group links to a Google Sheet or Slack in the next node.

**Make:** use the Apify app's "Run an Actor" module, then "Get Dataset Items" to pull the links into the rest of your scenario.

***

### Is it legal to scrape WhatsApp group links?

This actor returns only publicly available data: posts and invite links people shared publicly, as anyone can find them without logging in. It never joins groups, reads messages or member lists, or uses any account. GDPR: scraping public data is generally permissible, but storing and using it must comply with local data-protection law; snippets can contain names or phone numbers people posted. Consult legal counsel if your use case involves bulk storage of personal data.

***

### Frequently asked questions

#### What fields does WhatsApp Group Links Scraper return?

It returns the keyword, platform and country, the post's title, snippet, URL and snippet date with its age in days, the live WhatsApp group or channel links, a duplicate-link flag, the time collected, and success with a failure reason. See [the data fields section](#what-data-can-i-extract-with-whatsapp-group-links-scraper) for the full list.

#### Does WhatsApp Group Links Scraper require a WhatsApp or social media account?

No. Only public data is read, and no login, cookies or API key are needed. The actor never joins a group.

#### How many WhatsApp group links can I extract in one run?

Up to `limit` for each keyword, or everything found when `limit` is empty. Each keyword usually finds a few to a few dozen live links, so more keywords bring more WhatsApp group invite links.

#### What happens if a keyword finds no live links?

You get one row for that keyword with `success: false` and a `failureReason` (no results, no WhatsApp links in the results, or no live link), and it is not charged. Its share of `limit` goes to the other keywords.

#### Can I search multiple keywords at once?

Yes. List any number of keywords; they are searched at the same time and each one gets up to `limit` rows. The same post found by two keywords is saved once.

#### Does WhatsApp Group Links Scraper work with Claude, ChatGPT, and other AI agent tools?

Yes — WhatsApp Group Links Scraper (Apify Actor ID: socialdataapi/whatsapp-group-links-scraper, https://apify.com/socialdataapi/whatsapp-group-links-scraper) is available as an MCP tool. Register it in Claude Code, Cursor or Windsurf with `claude mcp add --transport http apify "https://mcp.apify.com?tools=socialdataapi/whatsapp-group-links-scraper"`. Any agent that can call an HTTP endpoint can use the REST API directly.

#### Does WhatsApp Group Links Scraper return data in a format LLMs can use directly?

Yes. Each row is typed, normalized JSON with consistent field names, so there is no HTML parsing and no selectors. Pass it straight to an LLM, index it into a vector store, or feed it to an agent tool — no transformation step.

#### What happens when the sources change their layout or anti-bot system?

The actor is maintained, and when the sources change, it is updated so your calls keep returning the same JSON fields with no changes on your end.

#### Can I use WhatsApp Group Links Scraper without managing proxies or browser infrastructure?

Yes. A default run already uses Apify residential proxy, with retries handled on the actor's side, and no browser is needed. You send one request and get structured JSON back, with no proxy accounts and no maintenance.

#### Which fields work best for AI training data and RAG indexing?

For RAG, use the post title and the snippet text — they describe what each group is about. For filtering and analytics, use `groupUrl`, `keyword`, `platform`, `snippetAgeDays` and `success`. All fields are plain strings, numbers, booleans and lists, so no normalization is needed.

***

### Your feedback

Found a bug or missing a field? Let us know in the actor's Issues tab. Every report is read, and fixes ship as new versions of the actor.

# Changelog

This Actor's version history is a separate document: https://apify.com/socialdataapi/whatsapp-group-links-scraper/changelog.md

# Actor input Schema

## `keywords` (type: `array`):

One or more search terms, for example "marketing", "crypto jobs" or "real estate". Each keyword is searched on its own and every row names the keyword that found it. Repeated keywords are searched once.

## `platform` (type: `string`):

The platform whose public posts are searched for WhatsApp invite links.

## `country` (type: `string`):

Country the search results are taken from.

## `limit` (type: `integer`):

Most rows saved for each keyword: every keyword is searched until it reaches this number or runs out of live links. Leave empty for no limit. Each keyword usually finds a few to a few dozen live links. Free plan: up to 20 results per run (all keywords together) and 200 per month; paid plans have no limit.

## `proxyConfiguration` (type: `object`):

Optional – keep the default. Requests go through Apify residential proxy in the selected country, with a new address for every connection. Other Apify proxy groups or your own proxy URLs selected here are used instead; if they cannot be used, the run switches to Apify residential proxy.

## Actor input object example

```json
{
  "keywords": [
    "jobs"
  ],
  "platform": "youtube.com",
  "country": "us",
  "limit": 10,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "GOOGLE_SERP"
    ]
  }
}
```

# Actor output Schema

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

All result rows in the Actor's default dataset.

## `runSummary` (type: `string`):

Totals for the run (rows, unique WhatsApp links, rows per keyword, keywords with no results) saved under the RUN_SUMMARY key.

# 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 = {
    "keywords": [
        "jobs"
    ],
    "platform": "youtube.com",
    "country": "us",
    "limit": 10,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "GOOGLE_SERP"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("socialdataapi/whatsapp-group-links-scraper").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 = {
    "keywords": ["jobs"],
    "platform": "youtube.com",
    "country": "us",
    "limit": 10,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["GOOGLE_SERP"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("socialdataapi/whatsapp-group-links-scraper").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 '{
  "keywords": [
    "jobs"
  ],
  "platform": "youtube.com",
  "country": "us",
  "limit": 10,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "GOOGLE_SERP"
    ]
  }
}' |
apify call socialdataapi/whatsapp-group-links-scraper --silent --output-dataset

```

## MCP server setup

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

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/ZaoC2aVsQnHTvNTgP/builds/8owx9sczU4OOTdaXt/openapi.json
