All articles

How to Export WhatsApp Group Members to Excel or SharkSMS

The old console-script trick for scraping a WhatsApp group is broken. Here is what works now: a free browser extension that exports a group's phone numbers to Excel, CSV, or straight into SharkSMS contacts.

Exporting WhatsApp group members to a contact list on a laptop and phone

If you want to export WhatsApp group members - their phone numbers, in a list you can actually send to - the trick you probably remember no longer works. The old advice was to paste a snippet of JavaScript into the browser console on WhatsApp Web and scrape the member list. That approach is broken now, in two separate ways. This guide explains what changed, what works instead, and how to get a group's numbers into an Excel or CSV file, or straight into your SharkSMS contacts, with a free browser extension.

Why the old WhatsApp group scraper stopped working

The classic console script hooks into webpackChunkwhatsapp_web_client, a leftover from the days when WhatsApp Web was bundled with webpack. WhatsApp Web does not use webpack anymore. It moved to Meta's own internal module system (window.require and window.__d), so the thing those scripts reach for simply is not there. They fail quietly, or throw an error, and you get nothing.

Even a script that fixed the hook would hit a second, newer wall. WhatsApp has been moving group members away from being addressed by phone number and toward an opaque internal identifier called a LID. On the account this was tested against, every single group participant was addressed by a LID, not a number. A script that reads the visible identifier directly would recover exactly zero phone numbers. Not some. Zero.

So the honest pitch is not "here is an updated scraper." It is: the old approach is structurally broken twice over, and here is what actually works now.

What actually works now

WhatsApp Web hides each member's identity behind that LID, but the app still needs to know the real phone number for plenty of its own features. So it keeps a private, in-browser lookup table that maps each LID back to a phone number. The exporter uses that same lookup, the one WhatsApp's own interface quietly relies on, to resolve real numbers.

Here is what that produced in a real test, so you can judge it for yourself rather than take a marketing number on faith. On one logged-in account, across three groups and 59 participants, on 9 August 2026:

  • All 59 of 59 members were addressed only by a LID. Reading that alone recovered 0 phone numbers.
  • The lookup resolved 59 of 59 back to a real phone number.
  • Only 4 of those 59 were saved in the account's own address book. The other 55 resolved anyway, so this is not limited to your saved contacts - it works on strangers in the group too.
  • Names came from whatever WhatsApp already had cached: a self-chosen "push name" for 45 people, a verified WhatsApp Business name for 9, a saved contact name for 4, and 1 person with no name available at all.

Read that as what it is: a specific, dated result on one account, one day, three groups. It is not a universal guarantee. Results can vary by account, by region, and after any future WhatsApp update. The tool is built with exactly that humility, which is the next point.

Built to survive the next WhatsApp change

WhatsApp changes its internals often, which is why the old scripts died. The exporter tries three methods in order and then tells you, in a small line under the results, which one it actually used:

  1. named - the fast path, reading WhatsApp's internal data structures directly by name. This is what worked every time in testing.
  2. shape - if WhatsApp renames its modules, this looks for something shaped like group member data instead of relying on a specific name.
  3. dom - the last resort, reading the on-screen member list the way the old console scripts did, used only if both smarter methods fail.

The panel shows the tier it used ("Read via tier: named" in the screenshot below), so if WhatsApp shifts and the tool falls back, you can see it happen rather than wonder why a number looks off.

What the extension does, and does not, do

It reads only. It never sends a WhatsApp message, and never adds or removes anyone from a group. It reads what WhatsApp Web has already loaded into your browser, and nothing else. From there you have two choices, picked per export:

  • Download a file - Excel (.xlsx) or CSV. Phone numbers are written as text, so Excel does not turn a leading + into a mangled number, which is a genuine and common annoyance with phone-number spreadsheets.
  • Push into SharkSMS - straight into an existing contact group or a new one you name on the spot. For anyone already using SharkSMS, that is one click from "here is a WhatsApp group" to "here is a campaign-ready contact list," with no manual import step.

Before you commit to anything, it shows you what it found: the total members, how many have a usable phone number, and how many could not be resolved (and therefore cannot be pushed to SharkSMS).

One quiet security detail is worth a sentence. Group member names are user-controlled - anyone can set their display name to anything, including text that looks like a spreadsheet formula. The exporter neutralizes any name that would otherwise run as a formula when the file is opened in Excel, which closes a real, documented class of attack known as CSV injection.

The exporter panel on WhatsApp Web showing 22 members found, all with a usable phone number, with Excel selected for download
The export panel in download mode. It reports what it found and lets you choose Excel or CSV. The small line reads the resolution tier it used.

Installing it (and why it is not in a store)

The extension is not on the Chrome Web Store, Edge Add-ons, or Firefox Add-ons. That is deliberate and worth understanding: the extension stores are aggressive about rejecting anything that touches WhatsApp Web internals, treating it as a policy risk regardless of what it does. So it is distributed as source you download and load manually. That is normal and safe for a tool like this, but it does mean there is no store button to click.

In a hurry? The WhatsApp Group Extractor page has the download buttons and screenshots up front.

Everything lives in the public repository, which holds several SharkSMS extensions; this one is in the whatsapp-group-exporter/ folder:

Versions move on. If you are reading this a while after publication, check the releases page for the current tag rather than assuming v0.2.2 is still the latest.

Chrome or Edge

  1. Download the Chrome/Edge zip above and unzip it.
  2. Open chrome://extensions (or edge://extensions).
  3. Turn on Developer mode.
  4. Click Load unpacked and select the unzipped folder.

Firefox

  1. Download the Firefox zip above and unzip it. This is a separate build, because Firefox rejects a manifest key that Chrome and Edge accept, so it needs its own package.
  2. Open about:debugging#/runtime/this-firefox.
  3. Click Load Temporary Add-on and select manifest.json inside the unzipped folder.

One Firefox caveat: a temporary add-on is removed every time Firefox restarts, so you reload it each session. And to be straight with you, the Firefox build has been checked as a package but has not yet been loaded into a real Firefox session, so treat Firefox support as provided-but-unverified for now. Chrome and Edge are the tested path.

Exporting a group, step by step

  1. Open the WhatsApp group you want to export, in WhatsApp Web.
  2. Open the group's Group info panel so the member list has actually loaded. This matters for the DOM fallback tier in particular.
  3. Click the floating Export members button in the bottom-right of the page.
  4. Read the summary: how many members were found, and how many have a usable phone number.
  5. Pick Excel or CSV to download, or switch to Push to SharkSMS.
A person working at a laptop reviewing a list of data
Photo by RDNE Stock project. Pexels.

Pushing a group straight into SharkSMS

The file export needs nothing but the extension itself. The Push to SharkSMS option is the shortcut for people who are going to send to the group anyway: it drops the resolved numbers into a SharkSMS contact group, ready for a campaign, without a download-then-import round trip.

Push does have requirements, because it writes to your account. You need a SharkSMS API key with the get_groups, create_group, and create_contact permissions, plus an active premium subscription with contact quota remaining. You set the site URL and key once on the extension's options page.

The extension options page with fields for the SharkSMS site URL and API key, noting the get_groups, create_group and create_contact permissions
The options page. The API key needs the get_groups, create_group and create_contact permissions, and push needs an active premium subscription with contact quota.

In push mode the panel is honest about what it can and cannot send. If some members had no recoverable number, it says so and pushes only the ones it resolved.

The exporter panel in Push to SharkSMS mode, showing 17 of 22 members have a usable number and a button to push 17 contacts to an existing Prospects group
Push mode. Here 17 of 22 members resolved, so the panel offers to push those 17 into a chosen contact group and is clear about the 5 it could not.

Once the contacts are in SharkSMS, the rest of the workflow is the usual one. You can send a bulk WhatsApp broadcast to the group, wire up WhatsApp automation such as an autoresponder, or message a WhatsApp group directly. If you are running support rather than campaigns, the same contacts feed WhatsApp customer service.

Use the list responsibly

A number being in a group is not the same as permission to market to that person. Before you send anything, make sure you have a lawful basis and a real reason the recipient would welcome the message, give people an easy way to opt out, and keep the content relevant. Cold-blasting a scraped list is the fastest way to get a WhatsApp number banned, quite apart from the trust you lose. Treat this exporter as a way to build a list you were entitled to build, not a way to skip consent.

Frequently asked questions

Does it work on people who are not saved in my contacts?

In testing, yes: 55 of the 59 resolved members were not in the account's address book. The lookup does not depend on your saved contacts. As always, this was one account on one day, so treat it as evidence rather than a promise.

Is it safe? Does it send anything?

It is read-only. It never sends a message and never changes group membership. It reads the member data WhatsApp Web already loaded in your browser.

Why is it not on the Chrome Web Store?

Extension stores reject tools that interact with WhatsApp Web internals on principle. That is why it ships as source you load unpacked, which is a standard and safe way to run a developer extension.

Do I need a SharkSMS account?

Only for the push feature, which writes into your SharkSMS contacts and needs an API key and an active plan. Plain Excel or CSV export needs nothing but the extension.

Does it work in Firefox?

A Firefox build is provided, but it has not yet been loaded into a real Firefox session, so it is unverified in practice. Chrome and Edge are the tested path today.

Get the numbers out

Download the extension from the release page, load it in Chrome or Edge, open a group, and export. If you want the one-click path into campaign-ready contacts, create a SharkSMS account, generate an API key with the three permissions above, and push the group straight in. For the full request reference behind that push, see what a web service SMS API is.

All articles

Comments

No comments yet. Be the first.

Sign in to comment

Comments come from SharkSMS accounts, so you always know who you are reading. Creating one is free and takes a minute.