Copy a WhatsApp group member list by hand

The free method, written out properly — including the cleanup formulas, the reason it does not work on your phone, and the one piece of data it can never recover no matter how much time you spend on it.

The honest summary first

This works. It costs nothing. For a group of twenty or thirty people it is genuinely the right answer, and you will be done in ten minutes.

For a group of four hundred it is an afternoon, and it comes with a hard limitation that most write-ups of this method leave out: for anyone already saved in your contacts, the phone number is not in the copied text at all. WhatsApp Web renders their name, not their number, so there is nothing to copy. You end up with a list that has numbers for the strangers and names-without-numbers for the people you know.

That is worth knowing before you start rather than an hour in. Everything below assumes you have decided the trade is worth it.

Why this cannot be done on your phone

In the mobile app, the participant list is not text you can select. There is no long-press-to-copy on the list, no select-all, no share option. It is drawn, not laid out as selectable content.

WhatsApp Web is different: it is a web page, and the participant list is ordinary HTML you can drag a cursor across. That is the entire reason this method exists, and why every version of it starts with “open a desktop browser”.

The method

  1. STEP 01

    Open Group info on WhatsApp Web

    Go to web.whatsapp.com in Chrome, Edge or Firefox on a computer and link your phone if you have not already. Open the group, then click the group name in the header to open the Group info panel on the right. The participant list is at the bottom of it.

  2. STEP 02

    Scroll to the very bottom — this is the step people skip

    WhatsApp Web only keeps a window of the list in the page and loads more as you scroll. A member you have not scrolled past is not in the document yet, so no amount of selecting will copy them. Scroll until the list stops growing and you can see the last participant. On a large group this alone takes a minute of steady scrolling.

  3. STEP 03

    Select the whole list

    Click just above the first participant, scroll back down to the end, and Shift-click just after the last one. That selects the range without you having to drag through hundreds of rows. Then copy with Ctrl+C (Cmd+C on a Mac).

  4. STEP 04

    Paste into a spreadsheet

    Google Sheets handles this better than Excel, because it will not try to convert anything that looks like a number. Paste into cell A1 and look at what you have before doing anything else.

Cleaning up the paste

What lands in column A is one long alternating column — each member contributes two rows, their name and their status line:

A1  Priya S.
A2  Group admin
A3  Rahul M.
A4  Hey there! I am using WhatsApp
A5  +91 98765 43210
A6  Not in your contacts
A7  Aisha K.
A8  Available

Two rows per person, reliably. That regularity is what makes it recoverable. In C1 and D1, put:

C1:  =INDEX($A:$A,(ROW()-1)*2+1)     <- the name row
D1:  =INDEX($A:$A,(ROW()-1)*2+2)     <- the status row

Drag both down for half as many rows as your paste has, and you have two clean columns: identifier on the left, status on the right.

Check the alternation before you trust it. A member whose status line is empty contributes one row instead of two, and from that point on every formula below it is off by one — names paired with the wrong status, silently. Scan column C after dragging; the moment you see a phone number or a status message in the name column, you have found the break. Split the paste at that row and run the formulas separately on each half.

Separating the numbers from the names

Column C now holds a mix: names for saved contacts, phone numbers for everyone else. Split them with a test on the first character:

E1:  =IF(LEFT(C1,1)="+",C1,"")        <- numbers
F1:  =IF(LEFT(C1,1)="+","",C1)        <- names

Then strip the spaces out of the numbers so they are in usable E.164 form — =SUBSTITUTE(E1," ","") turns +91 98765 43210 into +919876543210, which is what any CRM or dialler actually wants. The CSV guide covers why that formatting matters.

Finally: paste values and delete the formulas

Select everything, copy, and Paste special → Values only over the top. Then delete columns A to D. Formulas that reference a raw paste you are about to tidy up are a recipe for a sheet full of #REF! an hour later.

What this method cannot give you

You now have a decent list of the numbers of people you had not saved. For everyone you had saved, you have a name and an empty number cell, because their number was never on the screen to copy.

There is no formula for this. The options are to look each one up in your own address book by hand, or to accept a partial list. In a group where you know a lot of the members — a work group, a family group, a society block — that gap can be most of the roster, and it is the reason the manual method quietly fails for exactly the groups people most want to export.

An extension reads the participant roster itself rather than the rendered text, so it gets the number for every member regardless of whether you have saved them. That is the actual difference between the two approaches — not speed, but completeness. The three methods compared.

Do not paste console snippets

Searching for this problem will eventually turn up a JavaScript snippet to paste into the browser’s developer console. Do not.

Code pasted into the console of a signed-in WhatsApp Web session runs with the full authority of your account. It can read every message you have, send messages as you, and pull your entire contact list — and you have no way to read a minified snippet and tell whether it does. This is a well-known attack pattern; it is precisely why browsers print a large warning in the console telling you not to paste things into it.

A copy-paste into a spreadsheet is safe. A published extension, reviewed by the Chrome Web Store and running in a declared, inspectable sandbox, is a considered risk. An anonymous snippet from a forum, running unsandboxed inside your messaging session, is not in the same category as either.

When it is worth doing

SituationManual method
Under 30 membersYes — about ten minutes, no reason to install anything
Mostly unsaved numbersWorkable — the numbers are on screen, so they copy
Several hundred membersAn afternoon, and the scroll step is easy to get wrong
Mostly saved contactsThe numbers are not in the page; you get names only
Needs to be repeated monthlyThe whole job again, every time

Or read the roster directly

Every member, saved or not, in about ninety seconds. Scanning is free — check the count before you pay for anything.

Add to Chrome

Frequently asked questions

Can I copy a WhatsApp group member list on my phone?

No. The participant list in the mobile app is not selectable text and offers no copy option. You need WhatsApp Web in a desktop browser, where the list is ordinary HTML.

Why does copying only give me some of the members?

The list was not fully scrolled. WhatsApp Web loads participants in batches, so anyone you have not scrolled past is not in the page and cannot be selected. Scroll to the bottom until the list stops growing, then select.

Why do my saved contacts have no number?

Because WhatsApp Web shows their name instead of their number. The number is never rendered, so it is not in the copied text. No cleanup step can recover it — this is the method’s hard limit.

Is there a free browser extension that does this?

There are several, and the thing to check before installing any of them is where the contact list goes. An extension that uploads the roster to a server is giving away other people’s phone numbers to a third party. Read the permissions, and prefer anything that states plainly that extraction happens locally.

How long does the manual method take?

Ten minutes for 20 to 30 people. A couple of hours for several hundred, most of it spent splitting the paste and reconciling the members whose numbers never came through.

Keep reading