Request your ChatGPT data export, then convert conversations.json in one operation. ChatExports writes one file per conversation, named from its title, for thousands of conversations at a time in Word, PDF, Markdown, CSV, or text, all processed in your browser.
Short answer
Request your ChatGPT data export, then convert conversations.json in one operation. ChatExports writes one file per conversation, named from its title, for thousands of conversations at a time in Word, PDF, Markdown, CSV, or text, all processed in your browser.
Step by step
Export from ChatGPT: Settings, then Data Controls, then Export Data. Confirm the email and download the ZIP within 24 hours before the link expires.
Load the whole archive: Drop the ZIP onto ChatExports. It reads conversations.json and lists every conversation with dates and message counts.
Select all: Use select all, or filter by date range or keyword first if you only want part of the history.
Download in one pass: Pick a format and start. Each conversation is written as its own file, so a 2,000 chat archive produces 2,000 documents.
Bulk is where every browser extension gives up. Extensions read the conversation currently on screen, which means one chat per visit and a click for every thread you own. At a few hundred conversations that is an afternoon; at a few thousand it is not happening.
The archive already contains everything
Your ChatGPT export is a single conversations.json with the complete history of the account, including chats you have not opened in a year. Nothing needs to be crawled, because there is nothing to crawl. The whole job is turning one large JSON file into many readable files.
What one pass produces
One file per conversation, named from the conversation title
Original creation dates preserved, so folder sorting matches your real timeline
Speaker labels on every turn
Code blocks kept in monospace with language retained
Emoji and non-Latin text rendered rather than dropped
Correct ordering through edited and regenerated messages
That last point is the reason naive bulk tools produce duplicates. ChatGPT stores each conversation as a tree of message nodes, and the readable version is the active path through that tree. Dumping every node instead gives you every abandoned draft interleaved with the real one.
Filtering before you download
Whole-archive exports are often not what people actually want. Useful subsets:
| Filter | Use case |
| --- | --- |
| Date range | A quarter of work, a specific project window |
| Keyword | Everything mentioning a client, repo, or topic |
| Longest chats | The threads with real substance in them |
| Recent 90 days | A working backup rather than an archive |
Format choice at scale
Word and PDF give you one document per conversation, which suits archiving and sharing. CSV behaves differently and is worth knowing about: it produces a single spreadsheet with a row per message, which is the fastest way to search or analyse thousands of conversations at once, and pairs well with a Word or PDF pass for the ones that matter.
Size and speed
Large archives parse locally, so speed depends on your machine rather than a server queue. A 300MB archive with several thousand conversations takes seconds to parse and then writes files as fast as the browser allows. Nothing is uploaded, which also means no file size limit imposed by an upload endpoint.