Skip to content

Export Instagram DMs & Messenger Chats to JSON (2026)

Export Instagram DMs and Facebook Messenger history with Meta's Download Your Information tool - JSON format, encrypted chats, expiry windows, and pitfalls.

By Sami Ullah· Founder

If you need your Instagram DMs or your Facebook Messenger history out of Meta's ecosystem - for a dispute, a custody matter, an HR complaint, or simply a record you control - there is exactly one official route, and it covers both apps at once: Meta's "Download Your Information" tool inside Accounts Center. It works on mobile and desktop, needs no third-party software, and produces structured JSON with sender names, millisecond timestamps, reactions, and media references - everything a verifiable record needs.

But it is not instant, and it is easy to get wrong. The export is asynchronous: you request it, Meta builds the archive on its servers, and you get an email when it is ready - anywhere from a few minutes to three days later. Pick the wrong format on one screen and the entire archive becomes useless for import. And because Meta switched Messenger to end-to-end encryption by default, a large slice of your recent Messenger history is not even in this export - it lives behind a separate download most people never find. This guide covers all of it.

One request covers both apps - here's what comes back

The output is a ZIP archive per profile you select. Choose your Instagram account and you get an Instagram archive; choose your Facebook account and you get a Messenger archive; select both in a single pass and you get both, each as its own ZIP. Inside, every conversation is a folder containing one or more message_N.json files, with photos, videos, and voice messages in subfolders alongside them.

Instagram and Messenger share the same JSON schema - a participants list, then messages carrying sender_name, timestamp_ms (epoch milliseconds), content, reactions, and relative paths to any media. That shared schema is why the import path is identical for both apps: this "Meta Download Your Information JSON" is exactly the format [wachattopdf imports](/upload). You can upload the whole ZIP as-is, or just the individual message JSON files. Note that this schema has nothing in common with a [WhatsApp .txt or JSON export](/blog/whatsapp-json-export) - the formats are not interchangeable, even though all three apps belong to Meta.

Meta ‘Download Your Information’ flow1Accounts Centeraccountscenter.meta.com2Request MessagesMessages category,format JSON3Wait for emailminutes to 72h,Meta builds it4Download ZIPlink expiresin ~4 days5Upload to convertat wachattopdf.com/uploadOne request can cover Instagram and Facebook - each gives its own ZIP.

Requesting the archive from Accounts Center

Three settings that decide whether the export is usable

The final screen of the request flow has three settings. Two of them decide whether the export is usable at all, so it is worth understanding them before you start clicking.

  • Format: JSON, never HTML. This is the single most common mistake with Meta exports. HTML renders nicely in a browser, which tempts people into choosing it - but HTML is a one-way street that cannot be reliably converted back into structured data. If you exported HTML by mistake, there is no fix except re-requesting in JSON and waiting again.
  • Date range: All time by default, narrower if you can. If your matter only covers, say, March through June, set that window - a narrow range processes dramatically faster and produces a smaller ZIP. For a complete record, choose All time and accept the longer wait.
  • Media quality: High if the media is the evidence. Low and Medium recompress photos and voice notes, which shrinks the ZIP dramatically but degrades the files. If a photo itself matters - an injury, a screenshot someone sent, a document - choose High.

The step-by-step request

  1. Open Accounts Center. On the web, go straight to accountscenter.meta.com. In the Instagram app: Profile, then the hamburger menu, then Settings and privacy, then Accounts Center under the Meta section. In Facebook: profile picture, Settings & privacy, Settings, then Accounts Center at the top. In the Messenger app: the Settings gear, then Accounts Center. All four doors lead to the same room.
  2. Tap Your information and permissions, then Download your information, then Download or transfer information.
  3. Select which profile or profiles to export. Accounts Center lists every account linked to it - pick Instagram for DMs, Facebook for Messenger, or both. Each selected profile produces its own separate archive, and requesting both in one pass saves you a second multi-day wait later.
  4. Choose Some of your information, not All available information. A full export of an old account drags in years of likes, ad interactions, and activity logs - it can run to many gigabytes and take days to build. Scroll to the Messages category and check only that.
  5. Choose Download to device as the destination. (Transfer to another service sends the same archive to Google Drive or Dropbox instead - useful for huge exports on a phone with limited storage, but Download to device is the normal path.)
  6. Set the final options: date range, JSON format, media quality - as covered above. JSON is the one that cannot be walked back.
  7. Tap Create files and re-enter your password when prompted. If you have two-factor authentication, expect to complete that too.
  8. Wait. Small histories take minutes; active accounts take hours; very large ones can take 48 to 72 hours. Meta emails you when the archive is ready (subject line along the lines of "Your information is ready to download"), and the file also appears under Available files on the same Download your information screen.
  9. Download the ZIP promptly. Links expire after roughly four days - miss the window and you are back in the queue.

Plan around the wait. The build can take up to 72 hours and the download link then expires after about 4 days. Do not request the export the night before a filing deadline - request it the moment you know you might need it. And if a request is pending, resist re-requesting: Meta queues one archive per request, so check Available files instead of piling up duplicates.

Instagram DMs: inside the Instagram archive

The ZIP unpacks to a folder named instagram-<username>-<date>. Your DMs are at your_instagram_activity/messages/inbox/, with one folder per conversation. Each folder holds message_1.json - and, for long threads, message_2.json, message_3.json, and so on, split at roughly 10,000 messages per file. The numbering alone does not tell you which slice of the conversation is in which file, so treat the whole set as one thread rather than assuming any particular file holds the part you need. Photos, videos, and audio referenced by messages sit in subfolders inside the same conversation directory, so keep the folder structure intact if you extract.

Long thread? Grab every message_N.json, not just message_1.json. Each file holds only a slice of the conversation, so taking one file silently drops the rest of the history. Uploading the whole ZIP sidesteps this entirely - the importer walks every file for you.

Facebook Messenger: an export in two halves

The Facebook ZIP mirrors the Instagram layout under facebook-<username>-<date>/your_facebook_activity/messages/inbox/, using the identical JSON schema. But Messenger's archive has extra folders worth checking: archived_threads/ for conversations you archived, message_requests/ for people who messaged you without being connected, and filtered_threads/ for messages Meta filtered out of your inbox. If you are looking for a conversation with someone who was never a Facebook friend, it is very likely in message_requests/ or filtered_threads/, not inbox/.

The encryption gap - read this before you panic

Since Meta rolled out end-to-end encryption as the default for personal Messenger chats (starting December 2023), most recent one-to-one Messenger conversations are stored in encrypted "secure storage" - and the Download Your Information archive does not include them. This is the number one reason people open their Messenger export, find it strangely thin on recent messages, and wrongly conclude the messages were deleted.

Those chats need a separate, in-app download: open the Messenger app, go to Settings, then Privacy & safety, then End-to-end encrypted chats, then Message storage, and choose Download secure storage data. You may be asked for your Messenger PIN. Meta notes this feature is being introduced gradually and may not be available on every account yet - an honest limitation with no workaround other than waiting for the rollout to reach you.

Instagram and Messenger fail differently here. Instagram DMs come through fully in the standard DYI export. Messenger is split in two: older and group chats in the DYI archive, encrypted personal chats in the separate secure storage download. For a complete Messenger record you likely need both downloads.

When the JSON looks corrupt - it isn't

Open a message_1.json in Notepad and you will probably see garbage where emoji and accented characters should be - sequences like 😂 instead of a laughing face. This is a long-standing Meta encoding quirk: the export writes non-ASCII text as Latin-1-mangled UTF-8 escape sequences. The data is intact; it just needs to be re-decoded by the importer, which is exactly what happens when you upload it. Do not "fix" the file by re-saving it from a text editor - that can genuinely corrupt it. If you are curious how the processing works end to end, [how it works](/how-it-works) covers the pipeline.

What no Meta export will ever contain

  • Deleted, unsent, and vanish-mode messages. The export is a snapshot of what exists in the account at request time. If the other party unsent something, it is gone from your copy too - you only ever export your side's surviving record.
  • Anything from a locked-out account. The flow requires your password (and possibly 2FA) at request time. There is no export from a logged-out state - and pulling an export from someone else's account without authority has real legal implications, so don't.
  • Trustworthy data from scrapers or browser extensions. Third-party tools that read DMs from the web interface violate Meta's Terms of Service, risk account suspension, and produce output with no verifiable provenance - a poor foundation for anything court-adjacent.
  • The metadata a screenshot lacks. A cropped screenshot of a DM can be disputed as easily as it can be made - the structured export, with its millisecond timestamps and sender records, is the version worth keeping.

The real work is reassembly - you don't have to do it by hand

Unzip a Meta archive and you will see why nobody reads these raw: a single conversation shredded across message_1.json through message_N.json, emoji and accents mangled into escape sequences, and every photo and voice note filed away in its own thread folder. Stitching that back into one readable record is the actual work - and it is exactly what the converter automates. Upload the ZIP and it walks every message_N.json in every thread (inbox, archived, message requests and all), re-decodes the mangled text, reunites messages with their media, and produces a single chronological PDF transcript - something you can actually read, hand to a lawyer, or prepare as a court record, and something that holds up far better than a folder of raw JSON. And because DMs are sensitive by definition, it is worth knowing where the processing happens - [browser vs server processing](/blog/process-whatsapp-export-browser-vs-server) explains the trade-off.

Have your Meta ZIP? Upload it as-is - Instagram or Messenger - and get every message_N.json stitched into one clean, chronological PDF transcript.

Convert Your Chat Free

Frequently Asked Questions

Does the other person get notified if I export our Instagram or Messenger conversation?
No. Download Your Information exports only your own account's data and sends no notification to anyone else. The other participants have no way of knowing you requested or downloaded an archive.
How long does Meta take to prepare the download?
It varies with account size: small histories take minutes, active accounts hours, and very large ones up to 48-72 hours. A narrower date range processes much faster than All time. Meta emails you when it is ready, and the file also appears under Available files in the same screen. Download it promptly - links expire after roughly 4 days.
Why are recent messages missing from my Messenger export?
Almost certainly because they are end-to-end encrypted. Since late 2023 Meta has made E2E encryption the default for personal Messenger chats, and those conversations are excluded from the Download Your Information archive. Get them via Messenger's separate flow: Settings, Privacy & safety, End-to-end encrypted chats, Message storage, Download secure storage data (your Messenger PIN may be required, and the feature is still rolling out to some accounts).
I exported in HTML by mistake - can it be converted?
No, not reliably. HTML is a display format and cannot be turned back into structured data with dependable results. You need to re-request the export and choose JSON on the format screen, then wait for the new archive.
Does the export include deleted or unsent messages?
No. The archive contains only what still exists in your account at the moment you request it. Messages you deleted, messages the other party unsent, and vanish-mode or disappearing messages are all absent - there is no official way to recover them through an export.
Is message_1.json the whole conversation?
Only for shorter threads. Long conversations are split into message_1.json, message_2.json, and so on at roughly 10,000 messages per file, and no single file is guaranteed to hold the part you need. Take every message_N.json file, or simply upload the whole ZIP so nothing is missed.

Related Articles