Use the data export in ChatGPT’s settings. Open Settings, go to Data controls, choose to export your data, and confirm. OpenAI prepares an archive and emails you a download link, which expires after a period, so retrieve it promptly. What arrives is a ZIP containing your conversations in both a machine-readable JSON file and a browsable HTML file.

That covers the mechanism. The part worth more attention is what the export actually contains, what it leaves out, and what you can sensibly do with the result.

Key points

  • Settings, then Data controls, then export. Confirm the request and wait for an email.
  • The link expires, so download it when it arrives rather than filing the email.
  • You get a ZIP containing conversations.json for processing and an HTML file for reading.
  • It is an export, not a backup. Nothing is deleted from your account and nothing syncs afterwards.
  • Some material sits outside it, including files you uploaded, which are referenced rather than included.

The process, step by step

The flow is short and the same across platforms, though the exact wording of menu items varies slightly by client and changes occasionally.

  1. Open Settings from your account menu.
  2. Go to Data controls. This page holds export, chat history settings and account deletion.
  3. Select the export option and click to confirm when prompted.
  4. Wait for the email. Preparation takes anywhere from a few minutes to several hours depending on how much history you have.
  5. Download promptly. The link is time-limited, and letting it expire means starting the request again.
  6. Unzip and check that the conversation count looks right before relying on it.

Two practical notes. The export goes to the email address on the account, so if that is an address you no longer check, fix it before requesting. And a very large history takes longer than people expect, which matters if you are exporting because you are about to lose access to something.

What is inside the archive

The archive contains two representations of the same material, and they serve different purposes.

conversations.json holds the structured data: every conversation, every message, timestamps, and the tree structure that records edited messages and regenerated responses. This is what you want if you intend to process the export programmatically, search it properly, or move it somewhere else.

The HTML file renders your conversations for reading in a browser. It is convenient for looking something up and unsuitable for anything systematic.

Alongside those you typically find account metadata and other files depending on what your account holds.

Two formats people expect and do not get are worth naming. There is no PDF of your conversations, and there is no clean Markdown version either. If you want either, you produce it yourself from the JSON, and a short script or one of the third-party exporter tools that have appeared will do it. Anything you run against your own data deserves a review of what it does with the content before you hand it a complete record of your conversations.

The JSON structure surprises people who open it expecting a simple list. A conversation is stored as a tree rather than a flat sequence, because editing a message creates a branch and regenerating a response creates another. The linear conversation you remember is one path through that tree. Anyone writing a script to process the export needs to handle this deliberately, or they will produce output that includes abandoned branches alongside the messages that actually mattered.

What the export does not include

This is where expectations and reality diverge most, and it is worth checking before relying on an export for anything important.

  • Uploaded files are referenced rather than embedded. The conversation records that a document was attached; the document itself may not travel with the archive.
  • Generated images may not be included in a usable form, and links to them can expire.
  • Deleted conversations are gone. Export retrieves what exists, not what existed.
  • Memory and custom instructions are stored separately from conversation history and may not appear in the same form.
  • Nothing is included from other accounts, including workspaces you belong to but do not own.

Why the JSON is shaped the way it is

The tree structure catches out almost everyone who opens the file expecting a transcript, and understanding why it exists makes the export far more usable.

Every time you edit a message and resend it, the original does not disappear. The conversation branches: one path continues from what you first wrote, another from the revision. The same happens when you regenerate a response. The interface shows you one path and lets you flip between alternatives, which is why a conversation can look linear while being stored as a tree.

The export preserves all of it. That is the right decision, since discarding the branches would lose real history, but it means a naive script that reads every message in the file produces something that never existed as a conversation: abandoned drafts interleaved with the version you kept.

Processing it correctly means walking from the final node backwards through parent references to reconstruct the path you actually saw. That is straightforward once you know it is necessary and confusing if you do not, and it accounts for most of the odd output people get from their first attempt at parsing an export.

What to know before deciding

Several points determine whether an export does what you are hoping.

It is a snapshot, not a sync. The archive reflects the moment it was generated and nothing after. Conversations created later are not in it, and requesting another export means receiving another complete archive rather than an incremental update to the first one.

Requesting it does not delete anything. Export and deletion are separate actions in the same settings area, and confusing them is a mistake with no undo.

Work accounts may differ. Business and enterprise workspaces can have different export behaviour and administrative controls, so check with whoever administers the account rather than assuming the consumer process applies. Retention policies may also differ, meaning older conversations could already have been removed regardless of what you request.

Exporting is free. There is no cost attached to requesting an archive on any plan, and the frequency with which you can request one is generous enough that most people never encounter a limit.

Timing matters if access is ending. If you are exporting because a subscription or an employment relationship is about to end, do it well in advance. Preparation time plus a time-limited link is a poor combination against a deadline.

Check the archive before you need it. Open the HTML file, count roughly, and confirm that a few conversations you care about are actually present. Discovering a gap months later, when the original is gone, is considerably worse than spending five minutes now.

Useful things to do with the export

  • Search it properly. Full-text search across the JSON file finds things the interface will not, particularly in conversations you had forgotten existed.
  • Convert what you keep to Markdown. It is the format most note systems accept, and a short script over the JSON handles it once you have learned the tree structure.
  • Extract what you actually want to keep. Most of an export is not worth retaining; a handful of conversations usually are.
  • Move specific material somewhere durable. Notes, decisions and working documents belong in a system you control rather than in chat history.
  • Audit what you have shared. Reading through an export is an unusually effective way to notice what sensitive material has quietly ended up in your conversations over a year or two.
  • Keep it somewhere sensible. The archive contains everything you have discussed, which deserves the same care as any other personal data, and it is not something to leave in a downloads folder on a shared machine.

Exporting because you are leaving, and other edge cases

Three situations produce most export requests, and each has a wrinkle worth knowing in advance.

Moving to another assistant. The export gives you your history but no other tool ingests it directly. In practice migration means identifying the handful of conversations that hold something durable, such as a working prompt, a decision and its reasoning, or a piece of research, and carrying those across by hand. Expecting a wholesale import leads to disappointment, and it is worth reframing the task as extraction rather than transfer.

Leaving a job. If the account belongs to an employer, the conversations may not be yours to take, and administrative controls may prevent the export entirely. This is worth establishing before your last week rather than during it, and worth resolving through whoever administers the workspace rather than around them.

Closing an account. Export first, confirm the archive is complete, and only then delete. The two actions sit next to each other in the same settings area, and once deletion is done there is no recovery path. Confirming the archive opens and contains what you expect takes five minutes and removes the only irreversible risk in the whole process.

A fourth case is worth mentioning because it is increasingly common: exporting simply to see what is there. People are frequently surprised by the volume and by what they have discussed, and that alone changes how they use the tool afterwards.

Decision framework

Five questions before you export.

  1. Why do you want it? Archiving, migrating, searching and auditing lead to different next steps once you have the file.
  2. Do you need everything or a few conversations? Copying three important ones by hand is faster than processing an archive.
  3. Is anything time-critical? Preparation plus a time-limited link means starting early if access is ending.
  4. Will you actually process the JSON? If not, the HTML file is the useful half and the rest is storage.
  5. Where will you keep it? An export is a complete record of your conversations, and it should live somewhere you would be comfortable storing that.

Knowing what a platform’s export actually contains, and treating chat history as transient rather than as a filing system, is a general habit worth having with any tool. If you want a structured route in, explore Coursiv AI lessons and check current plan details on the official site.

Your next step

Request the export now rather than when you need it, then open the HTML file and spend ten minutes reading. Two things usually come out of that: a handful of conversations worth moving somewhere permanent, and an uncomfortable sense of how much has been discussed in a system you were treating as temporary.

Both are useful. The first gives you a small set worth keeping properly, and the second tends to change what people put into chat history afterwards.

FAQ

How do I export my ChatGPT conversations?
Open Settings, go to Data controls, request the data export and confirm. OpenAI emails a download link once the archive is prepared, and that link expires, so download it when it arrives.
What format is the export?
A ZIP archive containing conversations.json with the structured data and an HTML page for reading in a browser, plus account metadata. There is no PDF or Markdown version included, so if you want either you will need to generate it from the JSON yourself. Follow the file structure carefully when you do, because the conversation tree is not a flat list.
Does exporting delete my conversations?
No. Export and deletion are separate actions. Requesting an archive leaves your account exactly as it was.
Are uploaded files included?
Generally not in full. Conversations reference attachments rather than embedding them, so anything you need to keep should be saved separately at the time you upload it rather than recovered afterwards from an export.