
How to Export Your ChatGPT Data (and What You Don't Get Back)
A step-by-step ChatGPT data export guide: how to request it, what lands in the ZIP, and the memory and instructions you never get back.
I asked ChatGPT to hand over everything it knows about me. Seven days later a ZIP file landed in my inbox, and opening it was oddly deflating. Every conversation I have ever had with it, perfectly preserved. And almost none of the thing that made those conversations good. The transcripts came back. The context did not. Most guides to the ChatGPT data export stop at the download button. That is the easy half. Knowing what the archive cannot give you is the half that matters, because it decides whether you can actually leave, back up, or survive losing access to an account. So: how to export ChatGPT data first, then the honest inventory of what never makes it into the ZIP.
How to request a ChatGPT data export
OpenAI documents two routes on its help page for exporting your ChatGPT history and data. The first is the Privacy Portal, where you select Make a Privacy Request, then "I have a consumer ChatGPT account", then Download my data. Use that one if you can no longer sign in, which is exactly the moment you need it most. The second lives inside the product and takes about fifteen seconds. Sign in to ChatGPT, open your profile menu, and then:
- Select Settings.
- Select Data controls.
- Under Export data, select Export.
- On the confirmation screen, select Confirm export.

Now the small print, which is where people get burned. The in-product export is available on Free, Plus, Pro and eligible ChatGPT Edu workspaces, and it is not available for ChatGPT Business or Enterprise workspaces. On Edu it is off by default until an admin enables it, per OpenAI's Edu export guide. The timing is lopsided too: the export can take up to seven days to arrive, it is delivered by email or by SMS if your account is phone-only, and the download link expires 24 hours after you receive it. Seven days to wait, one day to act. Do not fire one off the evening before a two-week holiday.
What you get when you export ChatGPT data
OpenAI is most specific about the payload in the Edu article: the ZIP can contain conversations.json (or numbered conversation JSON files if your export is large), the files and other assets used in your conversations, and account and conversation metadata. That is a real backup and I do not want to undersell it. Full message text, timestamps, attachments, in a format you can grep, feed to another model, or park in cold storage. If your only goal is never losing what you wrote, the export does the job properly.
What you do not get back

Here is where the story turns. OpenAI's own guide to transferring exported conversations between accounts is unusually blunt. Uploading your export into another ChatGPT account does not merge accounts, does not recreate your chats as separate conversations, does not restore your sidebar, and does not transfer "custom instructions, memories, GPTs, or other account settings". The best you get is a JSON file sitting inside one new conversation as a reference document.
Memory
Memory is the big one, and there is no export button for it. You can read what ChatGPT remembers under Settings, Personalization, Memory, and copy it out by hand. But the Memory FAQ is candid that the memory summary "will not include everything that ChatGPT remembers based on your chats", and that some details are deliberately left out of that view. Memory is described there as a continually updated synthesis of your past chats, not a list of rows. A synthesis is not a file. You cannot pack it, and nothing else can unpack it. There is a second-order effect worth knowing. Deleting the memory summary and turning memory off does not delete your past chats, and if you switch memory back on later ChatGPT may build new memories from the chats still sitting in your history. Portability and deletion are both fuzzier than a settings toggle makes them look.
Custom instructions and project structure
Custom instructions are the shortest, highest-leverage text you have ever written about how you work, and there is no documented, structured way to lift them out and reinstall them somewhere else. The same applies one level down. Projects in ChatGPT let you set project-specific instructions in Project settings and attach reference files, and OpenAI's description of the archive stops at conversations, files and metadata. It says nothing about handing your project structure back as a map you could rebuild from.
GPTs and connected apps
Same pattern. Custom GPTs are named explicitly in the list of things that do not transfer. Connected apps are authorisations held on the account side rather than files in a folder, so a ZIP was never going to carry them: switch accounts or providers and you reconnect everything by hand. Any single reconnection is five minutes. Collectively, that pile is the real reason people do not leave.
The uncomfortable summary
Put it together and the shape is obvious. A ChatGPT data export is a receipt, not a restore. It proves what you did. It does not reinstate who you were to the assistant. The transcript is portable; the personalisation is not. That asymmetry is not an oversight, it is what makes any assistant sticky, and I would rather name it than pretend otherwise. I wrote about this same pattern when Relay.app shut down: your automation tool is not your automation strategy. Different vendor, identical lesson. The part of your setup that is hardest to rebuild is always the part you never thought to write down.
What I would actually do
Request the export today. It costs nothing except up to seven days of patience, and having a cold copy of your own writing is worth that on its own. Then spend the ten minutes the export cannot spend for you. Open Settings, Personalization, Memory and copy the summary into a plain text file you own. Do the same with your custom instructions, and with the project instructions for any project you would be annoyed to lose. Keep those files next to the ZIP, and put a reminder in your calendar to redo it once a quarter. That is not elegant. It is manual and it will drift. But a slightly stale copy of your context beats a complete transcript of chats you can no longer act on, and it takes less time than arguing with yourself about whether you need it.
Why the Notis free tier exists

I will make the Notis point once and then stop. This is exactly why the free plan exists, and why it is $0 forever with no card. Your memories, notes and databases are reachable from the command line and from your own coding agents, whether that is Claude Code, ChatGPT desktop, Cursor or anything else with a shell, and that access sits on the free tier rather than behind a subscription. If you stop paying me, the paid channels stop. What you accumulated does not become unreadable. Paid starts at $13 a month billed annually, and what it buys is reach: WhatsApp, Telegram, iMessage, Slack, email, the desktop app, included model usage. It does not buy the right to read your own memories back. That should never have been a paid feature anywhere, mine included. The honest tradeoff, since I would rather say it than have you find it: this is a promise about access, not magic. Any tool you have used for two years will be irritating to leave, and Notis is no exception. What you should insist on is that leaving is possible without opening a support ticket, and that your context lives somewhere a terminal can read.
The takeaway
Run the export. Read what comes back. Then write down the four things that did not: your memory summary, your custom instructions, your project setup, and your connected apps. That list is your actual dependency, and it fits on one page. Next time you pick an assistant, ask where those four things live before you ask how the model scores on a benchmark.

Flo is the founder of Mind the Flo, an Agentic Studio specialized into messaging and voice agents.
Related posts
How to Turn Any Web Page Into Clean Markdown for Your Agent
I priced the same page three ways: raw HTML about $0.50 of input tokens, clean markdown about $0.10, the scrape itself about $0.004.
How to Enrich a Company From Just Its Website
Company enrichment is three steps and cents of data. How to fill a company record from a domain alone, priced per lookup instead of per platform.
Notion MCP Server: Connect Notion, ChatGPT and Your Agents in One Place
Set up the Notion MCP server in Claude, ChatGPT or Codex - and point Notion AI back at your other 1,000 apps. Addresses, plan gates and rate limits.