What is inside a WhatsApp chat export? The format explained
A WhatsApp export is a plain text transcript, sometimes packed in a ZIP with photos and voice notes. Its format is simple once you know the patterns, and those patterns differ between Android and iPhone. This guide goes through the files, then every kind of line you will meet.

The files: TXT, ZIP, and _chat.txt
The transcript is always UTF-8 plain text, so emoji and every language come through intact. Any text editor opens it. On iPhone, unzip the archive first: _chat.txt is the conversation.
| Exported from | Without media | With media |
|---|---|---|
| Android | One text file, usually named WhatsApp Chat with followed by the contact or group name. | The text file plus the photos, videos, and voice notes, often packed together in a ZIP. |
| iPhone | A ZIP named after the chat, holding one file called _chat.txt. | A ZIP holding _chat.txt plus the media files. |
How a message line is built
Every message starts on a new line with a timestamp, the sender, a colon, and the text. The two apps write the timestamp differently:
Android: 31/12/2025, 21:41 - Asha: Happy new year!
iPhone: [31/12/2025, 21:41:05] Asha: Happy new year!
Android separates the timestamp from the sender with a dash; iPhone puts it in square brackets and adds seconds. The sender is named as your phone names them: by the name in your contacts, or by phone number for people you have not saved.
Dates, times, and time zones
- The date order follows your phone’s region: 31/12/2025 in most countries, 12/31/25 in the United States, and other separators such as dots in some languages.
- Times use your phone’s 12 or 24 hour setting. On 12 hour phones, recent exports often put a narrow, invisible special space before AM or PM, which can trip up spreadsheet formulas and scripts.
- Times are as your phone showed them when you exported. The file does not say which time zone that was.
Messages with line breaks
A message with line breaks continues on the following lines, with no timestamp of its own. Anything that does not start with a timestamp belongs to the message above it. This is the most common reason a spreadsheet or script splits a chat wrongly.
Photos, voice notes, and other media
With media, the named file sits next to the transcript in the export, so you can match each photo or voice note to the moment it was sent. Voice notes are .opus audio files. Without media, Android does not say what kind of file was sent; iPhone does.
| Situation | Android writes | iPhone writes |
|---|---|---|
| Exported without media | <Media omitted> | image omitted, video omitted, audio omitted, sticker omitted, GIF omitted, or document omitted |
| Exported with media | The file name, then (file attached), for example IMG-20251231-WA0001.jpg (file attached) | <attached: followed by the file name>, for example <attached: 00000012-PHOTO-2025-12-31-21-41-05.jpg> |
Deleted messages and notices
- A message deleted for everyone appears as This message was deleted, or You deleted this message if you deleted it.
- Notices from WhatsApp, such as the end-to-end encryption notice, someone joining or leaving a group, or the group name changing, appear as lines without a sender on Android. iPhone writes some of them under the chat’s name, starting with an invisible character.
- Recent versions may mark an edited message, showing its final text.
What an export leaves out
- Reactions, read receipts, and the ticks next to each message.
- Which message a reply was answering. Replies appear as ordinary messages.
- View once photos, videos, and voice messages.
- Messages that disappeared, were cleared, or were sent before you joined a group.
- Older messages and media beyond what WhatsApp includes in one export.
Reading it without decoding it yourself
Knowing the format helps when you work with the file directly. For everyday reading, a chat viewer does the decoding: it turns each line back into a message bubble with the sender and time, and joins multi-line messages back together.