DEV Community

Eli
Eli

Posted on

How to export WhatsApp Web group members and chats to CSV (without the API)

WhatsApp is great at holding your data hostage. There is no "export group members" button, no "download my contacts" option, and the one export it does give you (Export chat) spits out a plain text file for a single conversation. If you run a community, do recruiting, or use WhatsApp as an informal CRM, you have probably hit this wall and ended up copy pasting names into a spreadsheet at 1am.

I want to walk through what you can actually pull out of WhatsApp Web, what you cannot, and the different ways to get it into a CSV or JSON file you can work with.

First, set expectations: you can only export what you can see

This part matters, because a lot of "WhatsApp scraper" tools online promise things that are not real. You cannot export:

  • Phone numbers that WhatsApp hides from you
  • Deleted messages
  • Chats or groups you are not a member of
  • A full history without scrolling to load it

What you can export is the data already rendered in WhatsApp Web:

  • Group members: display name, phone number when the group shows it, admin or member role
  • Loaded messages from an open chat: text, sender when shown, timestamps, forwarded and reply markers
  • Recent contacts from your chat list: names, last message preview, unread counts, numbers when visible

If a tool claims more than that, it is either lying or doing something that will get your account banned. Stick to visible, user initiated exports.

Option 1: Export chat (built in, very limited)

Open a chat, tap the menu, choose Export chat. You get a .txt file of that one conversation, optionally with media. It is fine for archiving a single chat, useless for member lists, and not structured, so you will be writing regex to parse it if you want it in a table.

Option 2: The WhatsApp Business API (overkill for most people)

If you are a business with real volume, the Cloud API is the "correct" answer. It is also a project: you need a Meta developer account, a verified business, a phone number dedicated to the API, and you have to write code against it. For "I just need this group's members in a spreadsheet," it is wildly disproportionate.

Option 3: Read what is on screen with a browser extension

This is the pragmatic middle ground. WhatsApp Web renders the member list, the chat, and your recent conversations in the DOM. A browser extension can read that rendered data and hand you a clean file, entirely on your machine.

I have been using a Chrome extension called Mastros for this. It is a commercial tool with a free tier, and the reason I reach for it is that everything runs client side. It does not phone home with your contacts, which is the bare minimum I want from anything touching a messaging app. Full disclosure so nobody feels tricked: it is a paid product, though the free tier covers small jobs.

The workflow is boring in a good way:

  1. Install the extension and open web.whatsapp.com
  2. A sidebar shows up with three modes: Group Members, Current Chat Messages, Recent Contacts
  3. Open the group or chat you care about, scroll once to load the members or messages you want
  4. Pick a format and export

You get CSV for spreadsheets, JSON for feeding another system, or JSONL if the export is large and you want to stream it line by line. Group members and contacts count as "profiles," messages count as "messages," which is worth knowing if you are on a plan with monthly limits.

A concrete example

Say you manage a 400 person community group and want a roster. Open the group, tap the subject to open the member list, scroll to the bottom so all 400 render, then run the Group Members export. You end up with something like:

name,phone,role,source_group,exported_at
Giulia,+39 347 ...,admin,Founders Circle,2026-07-16T14:22:00Z
Marco,+39 348 ...,member,Founders Circle,2026-07-16T14:22:00Z
Studio Alfa,+39 076 ...,member,Founders Circle,2026-07-16T14:22:00Z
Enter fullscreen mode Exit fullscreen mode

Numbers only appear where WhatsApp itself shows them. For contacts already saved in your phone, you often see names but not numbers, which is expected.

Tips that save you time

  • Scroll before you export. The extension can only read what has rendered, so load the members or messages first.
  • Use JSONL for big pulls. CSV is friendlier for humans, but line delimited JSON is nicer when you are piping into a database or a script.
  • Deduplicate later. If you export the same group twice or overlap contacts, clean it in your spreadsheet or with a quick sort -u.
  • Respect the humans in the file. Exporting a group roster is not a license to cold blast everyone. Depending on where you and your contacts live, GDPR and similar laws apply, and consent matters. Use exports for record keeping, migration, and analysis, not spam.

So which one should you use

  • One chat to archive: built in Export chat is fine.
  • Serious business volume with engineering time: the Cloud API.
  • "I need this group or chat list in a spreadsheet, today, without writing code": a local browser extension is the least painful path.

The theme across all of them is the same. WhatsApp will not hand you a clean export, so you either parse a text dump, build against an API, or read what is already on your screen. Pick the one that matches how much time you have.

If you want to poke at the extension route, the WhatsApp exporter I mentioned lives here: https://www.mastros.online/whatsapp-scraper. There is a Telegram version too, which I will cover in a separate post because Telegram plays by very different rules.

Top comments (0)