Articles

ChatGPT, Claude and Grok Export Formats Compared

An export format is only known once someone has opened a real file, so here is our own proposal: compare formats by the share of the file that is conversation text. In our own exports that share is 84 percent for ChatGPT (17,753 of 21,091 content records) and about 12 percent for Claude (26,032 of 214,136 content blocks).

Three dark sealed cases of different shapes, one with amber light under its lid

The three files side by side

ChatGPTClaudeGrok
Conversations in our export1,463223309
Layout15 sharded JSON arrays inside one zipJSON export with per-message content blocksOne JSON file of 10.8 MB inside a 357 MB zip
Message structureA tree of nodes; follow current_node to the rootMessages made of typed content blocksResponses linked by a leaf pointer

How much of each file is conversation

In ChatGPT, 17,753 of 21,091 content records are plain text, 84 percent. In Claude, text blocks are 26,032 of 214,136 content blocks, about 12 percent; the rest are tool calls, tool results and other structure. Grok packs 309 conversations into one 10.8 MB JSON; the zip itself is 357 MB. Raw file size tells you almost nothing about how much you actually said.

Our own proposal: compare formats by the share that is text

An export format is only known once someone has opened a real file, because none of the three vendors publishes a schema. The useful comparison is not size or field names but the share of the file that is your conversation. It decides how much a memory tool has to discard, and it predicts which export needs the most care.

Where each one bites

ChatGPT: branches. Read the chain, not every node, and skip conversations flagged do-not-remember. Claude: volume of non-text blocks, and four of our conversations were 37 to 65 MB each, larger than a common 32 MiB per member limit, so tools need a higher cap for Claude files. Grok: 200 of the 309 conversations were missing leaf_response_id, so you cannot rely on that pointer to find the end of the thread.

What happened when we indexed all three

On the 0.6.6 development build, all three real exports indexed with zero failures: ChatGPT in 118 seconds, Claude 223 conversations into 83,621 chunks in 23 seconds, Grok 309 conversations into 9,525 chunks in 6 seconds. Peak memory stayed under 850 MiB for each.

Who else documents this

When we asked ChatGPT how to export and move chat history, it cited five independent publishers (evenfall.ai, export.utillayer.com, portable-ai-memory.org, tidychats.com and chatelope.com). That differs from our memory prompt study, where every cited source belonged to the vendor. Export questions are open to third parties, which is why a measured comparison has room to be cited.