Como exportar conversas do ChatGPT: guia JSON, PDF e Markdown
O ChatGPT não tem botão para baixar conversas individuais. Este guia explica a exportação oficial de dados e compara extensões de navegador e conversores JSON para salvar chats em JSON, PDF ou Markdown.
1. Dá para exportar conversas do ChatGPT?
O ChatGPT não tem um botão «baixar esta conversa», mas salvar chats é uma necessidade muito comum — anotações de estudo, entregas de trabalho, backup de código, bases de conhecimento e backup em nível de conta para evitar perda de dados.
O formato importa: PDF serve bem para compartilhar, Markdown para anotações e JSON para uso programático — seja analisando conversas com Python ou jq, extraindo blocos de código, montando datasets de fine-tuning ou alimentando um fluxo RAG, o JSON é o melhor ponto de partida.
Este artigo compara três abordagens práticas e explica por que a exportação JSON do AI Exporter é mais fácil de usar do que o conversations.json oficial da OpenAI.
2. Resposta rápida: qual método escolher
- Exportação oficial de dados (Configurações → Controles de dados → Exportar dados) é o único backup oficial completo do ChatGPT, mas o
conversations.jsonusa uma estrutura em árvoremappingdifícil de analisar e não está pronto para entrega em PDF ou Word. - Exportação JSON do AI Exporter gera um array plano de mensagens em que cada mensagem inclui
role,model,modelId,created_atecontentsestruturados — ideal para scripts, migração e desenvolvimento posterior. - Combinação recomendada: exportação oficial para backups periódicos completos; AI Exporter no dia a dia para conversas individuais ou selecionadas em JSON ou PDF / Markdown; JSON oficial + conversor quando você precisa transformar centenas de chats antigos em documentos legíveis de uma vez.
3. Método 1: exportação oficial de dados do ChatGPT (melhor para backup completo)
A única opção oficial de exportação em massa da OpenAI.
Quando usar
- Backups periódicos completos da conta
- Migração para outra plataforma de IA (ex.: importar chats para o Gemini)
- Não ideal para: salvar uma única conversa ou entregar um documento legível na hora
Passos
- Abra chatgpt.com e faça login.
- Clique no ícone do perfil (canto inferior esquerdo) → Settings (Configurações).

- Acesse Data controls (Controles de dados).
- Clique em Export data (Exportar dados) → confirme.

- Aguarde o e-mail da OpenAI (geralmente 20–30 minutos; contas com muitas conversas podem demorar mais — a documentação oficial indica até 24 horas).
- Clique no link de download no e-mail (válido por 24 horas — verifique também o spam).
- Descompacte o arquivo e localize
conversations.json(exportações mais recentes podem ser divididas emconversations-000.jsone outros fragmentos).
O que você recebe
conversations.json— histórico completo em estrutura em árvoremappingcom timestamps e informações do modelochat.html— versão básica navegável no navegador- Pode incluir imagens e anexos (imagens DALL·E, chats temporários e conversas excluídas podem estar ausentes)
Problemas do JSON oficial
A exportação da OpenAI é JSON, mas está estruturada para armazenamento interno — não para uso imediato em scripts:
mappingem árvore com ponteiros pai/filho — é preciso percorrer o grafo para reconstruir a ordem da conversa.- Prompts editados criam ramificações — um thread pode ter vários caminhos, complicando a análise.
- Texto enterrado em
content.parts[]— não é um campo string simples. - Timestamps Unix em float — ex.:
1713350400.0, exigindo conversão adicional. - Tudo ou nada — sem exportação seletiva de mensagens individuais, sem download instantâneo.
| Vantagens | Detalhes |
|---|---|
| Oficial e confiável | Fornecido pela OpenAI, sem terceiros |
| Exportação em massa real | Todas as conversas da conta de uma vez |
| Metadados ricos | Timestamps, info do modelo e estrutura da conversa |
| Sem instalação | Feito nas configurações do ChatGPT |
| Limitações | Detalhes |
|---|---|
| Tudo ou nada | Não dá para escolher chats ou intervalos de datas |
| Estrutura complexa | JSON em árvore exige parsing pesado |
| Sem opções de formato | Sem PDF, Markdown ou Word |
| Entrega lenta | De minutos a dias |
| Conteúdo ausente | Chats temporários, threads excluídos e alguns conteúdos específicos da IA podem faltar |
Resumo: a exportação oficial é uma rede de segurança, não uma forma prática de obter dados estruturados sob demanda.
4. Método 2: AI Exporter (melhor para o uso diário)
Transparência: este é o nosso produto. Abaixo, um panorama honesto do que ele pode e não pode fazer.
Por que o JSON do AI Exporter supera o conversations.json oficial
| Dimensão | conversations.json oficial | JSON AI Exporter |
|---|---|---|
| Estrutura | mapping em árvore, parsing complexo | Array plano de mensagens, iteração direta |
| Escopo | Massivo para toda a conta | Chat único / mensagens parciais sob demanda |
| Velocidade | De minutos a dias | Instantâneo com um clique |
| Timestamps | Floats Unix | created_at legível por mensagem |
| Info do modelo | Espalhada nos metadados | model / displayModel / modelId em cada mensagem assistant |
| Tipos de conteúdo | Atraso em novos recursos | Array contents preserva vários tipos estruturados |
Como é o JSON do AI Exporter
O nível superior é um array de mensagens (não metadata + mapping):
[
{
"id": "msg_001",
"chatGroupId": "group_abc",
"role": "user",
"model": "chatgpt",
"displayModel": "ChatGPT",
"contents": [
{ "type": "markdown", "content": "How do I read a CSV in Python and filter columns?" }
],
"created_at": "2026-04-15 14:30:45",
"updated_at": 1713175845000
},
{
"id": "msg_002",
"chatGroupId": "group_abc",
"role": "assistant",
"model": "chatgpt",
"displayModel": "ChatGPT",
"modelId": "GPT-4o",
"contents": [
{ "type": "markdown", "content": "You can use pandas:\n\n```python\nimport pandas as pd\ndf = pd.read_csv('data.csv')\n```" },
{ "type": "thinking", "content": "User needs a basic CSV read example..." },
{ "type": "sources", "sources": [{ "title": "pandas documentation", "url": "https://pandas.pydata.org", "domain": "pandas.pydata.org" }] }
],
"created_at": "2026-04-15 14:31:22",
"updated_at": 1713175882000
}
]Um array plano sobre o qual você pode fazer um loop — sem árvores aninhadas ou ponteiros pai/filho.
Campos que mais interessam aos usuários
Por mensagem:
| Campo | Descrição |
|---|---|
role | user (sua mensagem) ou assistant (resposta da IA) |
model / displayModel / modelId | Nome da plataforma, nome de exibição e versão do modelo (ex.: GPT-4o, Claude Sonnet) |
created_at / updated_at | Horário da mensagem para ordenação e estatísticas |
chatGroupId | Agrupa um turno user/assistant para pareamento |
Array contents (conteúdo estruturado — o valor central da exportação JSON):
| type | O que é preservado |
|---|---|
markdown / text | Texto, blocos de código, fórmulas matemáticas |
thinking | Raciocínio / cadeia de pensamento |
sources | Citações de busca web e Deep Research |
image / attachment | Imagens e arquivos enviados |
html_widget | Canvas / artefatos interativos |
shopping_card / shopping_table | Cartões de recomendação e tabelas comparativas de compras |
A exportação JSON mantém todos os dados estruturados independentemente de configurações de exibição como «mostrar timestamps» em PDF ou Markdown.
Como exportar JSON com o AI Exporter
- Instale o AI Exporter na Chrome Web Store (também funciona no Edge e Firefox).
- Abra a conversa do ChatGPT que deseja exportar.
- Clique no ícone da extensão → escolha JSON.
- Opcional: selecione mensagens específicas para exportar apenas o que precisa.
- Opcional: ative «Copiar para a área de transferência» para colar o JSON diretamente em um script ou ferramenta de API.
O que fazer com o JSON exportado
Os exemplos abaixo usam o formato JSON do AI Exporter. Se você usar a exportação oficial, extraia primeiro as mensagens da árvore mapping.
Estatísticas rápidas da conversa em Python:
import json
from collections import Counter
with open("ChatGPT-my-conversation.json") as f:
messages = json.load(f)
roles = Counter(msg["role"] for msg in messages)
print(f"Suas perguntas: {roles.get('user', 0)}")
print(f"Respostas da IA: {roles.get('assistant', 0)}")
responses = [m for m in messages if m["role"] == "assistant" and m["contents"]]
longest = max(responses, key=lambda m: len(str(m["contents"])))
print(f"Resposta mais longa (caracteres): {len(str(longest['contents']))}")Extrair todos os blocos de código:
import json
import re
with open("ChatGPT-my-conversation.json") as f:
messages = json.load(f)
for msg in messages:
if msg["role"] != "assistant":
continue
for item in msg.get("contents", []):
if item.get("type") not in ("markdown", "text"):
continue
blocks = re.findall(r"```(\w+)?\n(.*?)```", item.get("content", ""), re.DOTALL)
for lang, code in blocks:
print(f"--- {lang or 'text'} ---")
print(code)Converter para o formato de fine-tuning da OpenAI (JSONL):
import json
with open("ChatGPT-my-conversation.json") as f:
messages = json.load(f)
training_data = []
for i in range(0, len(messages) - 1, 2):
user_msg, assistant_msg = messages[i], messages[i + 1]
if user_msg["role"] != "user" or assistant_msg["role"] != "assistant":
continue
user_text = " ".join(c.get("content", "") for c in user_msg.get("contents", []) if c.get("content"))
assistant_text = " ".join(c.get("content", "") for c in assistant_msg.get("contents", []) if c.get("content"))
if user_text and assistant_text:
training_data.append({
"messages": [
{"role": "user", "content": user_text},
{"role": "assistant", "content": assistant_text},
]
})
with open("training.jsonl", "w") as f:
for item in training_data:
f.write(json.dumps(item, ensure_ascii=False) + "\n")
print(f"Gerados {len(training_data)} exemplos de treinamento")Outros pontos fortes do AI Exporter
O JSON é um dos formatos suportados. Altere a saída na mesma extensão quando precisar de documentos legíveis:
| Formato | Ideal para |
|---|---|
| JSON | Análise, migração, automação, fine-tuning |
| Markdown | Obsidian, blogs, bases de conhecimento |
| Compartilhamento, impressão, arquivamento — mantém destaque de código, LaTeX, imagens | |
| Word | Documentos de escritório para editar |
| Notion | Sincronização com um clique na base de conhecimento |
| TXT / Imagem | Arquivos leves, compartilhamento visual |
Outros recursos principais:
- Exportação seletiva — chat completo, mensagens parciais ou exportação ao passar o mouse em uma resposta
- Preservação de formato — blocos de código, tabelas, LaTeX, Canvas, imagens
- Multiplataforma — ChatGPT, Claude, Gemini, DeepSeek e mais de 10 plataformas
- Processamento local — JSON, Markdown, TXT processados no navegador, sem upload
- Plano gratuito — JSON, Markdown, TXT gratuitos; PDF, Word, Notion com limites diários gratuitos
Exportação rápida de várias conversas (fluxo com várias abas)
Não há botão oficial «exportar todos os chats», mas um fluxo com várias abas lida com muitas conversas de forma eficiente:
- Cmd/Ctrl + clique em vários chats na barra lateral do ChatGPT para abrir cada um em uma nova aba.
- Pré-configure formato e pasta de download (desative «Perguntar onde salvar cada arquivo» no navegador).
- Por aba: Selecionar → Exportar → Fechar aba — cerca de dois cliques cada.
- ~20 chats em 3–5 minutos, cada arquivo com nome claro.
Limitações
- Sem botão «exportar toda a conta» no estilo oficial.
- Backup completo da conta ainda combina melhor com a exportação oficial.
- PDF, Word e Notion têm limites diários gratuitos (JSON, Markdown, TXT são gratuitos).
5. Método 3: exportação oficial + ferramentas de conversão (arquivo legível em massa)
Para usuários técnicos, ou quando você precisa transformar centenas de chats antigos em Markdown de uma vez.
Quando usar
- Conversão em massa do histórico completo em documentos legíveis
- Importação para Obsidian ou Logseq em uma base de conhecimento
- Não ideal para: salvar rapidamente a conversa em andamento
Passos
- Conclua o Método 1 para obter a exportação ZIP oficial.
- Descompacte e localize
conversations.json. - Escolha um conversor:
- CLI:
npx chatgpt-to-markdown path/to/archive - Conversor no navegador: ChatGPT Conversations to Markdown (processamento local, sem upload)
- App desktop: Univik e similares (suporte a PDF / DOCX)
- CLI:
- Cada conversa vira um arquivo
.mdseparado.
Prós e contras
| Vantagens | Limitações |
|---|---|
| Massivo de verdade, legível, bom para migração única | Fluxo em duas etapas, exige algum conhecimento técnico |
| Muitas ferramentas open source, processamento local para privacidade | Qualidade variável; blocos de código / tabelas podem converter de forma irregular |
| Sem exportação seletiva — todas as conversas são convertidas | |
| Novos chats exigem repetir o processo completo |
6. Comparação entre os três métodos
| Recurso | Exportação oficial | AI Exporter | Oficial + conversor |
|---|---|---|---|
| Escopo | Todos os chats | Sob demanda | Todos os chats |
| Estrutura JSON | Mapping em árvore | Array plano de mensagens | Exige parsing do JSON oficial |
| Formatos de saída | JSON / HTML | JSON / PDF / MD / Word / Notion etc. | Principalmente Markdown |
| Timestamps / nomes de modelo | Presentes, difíceis de extrair | Legíveis por mensagem | Depende do conversor |
| Exportação seletiva | Não | Sim (por mensagem) | Não |
| Multiplataforma | Só ChatGPT | ChatGPT + mais de 10 plataformas | Só ChatGPT |
| Conhecimento técnico | Nenhum | Nenhum | Moderado |
| Exportar 20 chats | De minutos a dias | ~3–5 minutos | Espera + conversão |
| Melhor para | Backup de segurança | Exportação diária + JSON estruturado | Arquivo histórico em massa |
7. Fluxo recomendado: combinar métodos
Passo 1: exportação oficial para backup completo
- Configurações → Controles de dados → Exportar dados
- Armazene o ZIP na nuvem ou em disco externo
- Frequência sugerida: mensal, ou antes de excluir chats antigos
Passo 2: AI Exporter para conversas importantes
Exporte logo após uma conversa valiosa, escolhendo o formato conforme o uso:
- Scripts / migração / fine-tuning → JSON
- Relatórios de pesquisa, base de conhecimento → Markdown
- Entregas a clientes → PDF
- Colaboração em equipe → sincronização com Notion
Passo 3 (opcional): conversão em massa do backup
Quando precisar de um arquivo legível de todo o histórico, use o Método 3 para converter em lote o ZIP oficial para Markdown.
8. Qual formato exportar?
| Seu objetivo | Melhor formato | Melhor método |
|---|---|---|
| Backup completo da conta (rede de segurança) | JSON (bruto oficial) | Exportação oficial |
| Scripts / fine-tuning / RAG | JSON (estruturado) | AI Exporter |
| Base de conhecimento (Obsidian / Notion) | Markdown | AI Exporter |
| Compartilhar com clientes / colegas | AI Exporter | |
| Precisa editar depois | Word | AI Exporter |
| Base de conhecimento em equipe | Notion | AI Exporter |
| Arquivo legível em massa do histórico | Markdown | Oficial + conversor |
9. Perguntas frequentes
P1: O ChatGPT exporta JSON diretamente?
Sim, mas apenas pela exportação oficial em massa (Settings → Data Controls → Export Data), que gera um arquivo aninhado com todas as conversas. Para JSON por conversa com estrutura limpa, use o AI Exporter.
P2: Qual a diferença entre o JSON do AI Exporter e o conversations.json oficial?
O AI Exporter gera um array plano de mensagens com role, model, modelId, created_at e contents estruturados, iteráveis diretamente. A exportação oficial usa mapping em árvore com referências pai/filho, texto em parts[] e timestamps Unix float — exige parsing significativo.
P3: O JSON inclui nomes de modelos e timestamps?
Sim. Cada mensagem assistant tem model, displayModel e modelId (ex.: GPT-4o), e created_at registra o horário para ordenação e estatísticas por modelo.
P4: Raciocínio, fontes web e blocos de código são preservados?
Sim. O array contents do AI Exporter usa thinking, sources, markdown e outros tipos — muito mais completo que copiar e colar.
P5: A exportação JSON é gratuita?
Sim. A exportação JSON está disponível na versão gratuita do AI Exporter — sem conta ou assinatura.
P6: Posso exportar só as respostas da IA, sem meus prompts?
Sim. Clique em Select e escolha Answers para selecionar apenas respostas da IA, ou marque/desmarque mensagens individualmente.
P7: O JSON exportado pode ser usado na API OpenAI ou em fine-tuning?
Sim. O AI Exporter usa rótulos user / assistant consistentes com a API — extraia o texto de contents como no exemplo de fine-tuning acima.
P8: O AI Exporter exporta todos os chats em lote?
Não há exportação completa com um clique no estilo oficial, mas o fluxo com várias abas permite exportar chats rapidamente um a um. Combine com a exportação oficial para backup completo da conta.
P9: Quanto tempo leva a exportação oficial? E se o link expirar?
Geralmente 20–30 minutos; mais para contas com muitos chats. Links de download expiram em 24 horas — solicite uma nova exportação se necessário.
P10: Contas gratuitas do ChatGPT podem exportar?
Sim. Tanto a exportação oficial quanto o AI Exporter funcionam em contas gratuitas.
P11: Qual a diferença entre AI Exporter e ChatGPT Exporter?
Ambos suportam exportação JSON, mas o AI Exporter cobre ChatGPT, Claude, Gemini, DeepSeek e mais de 10 plataformas, além de Word, Notion e outros — com contents preservando raciocínio, fontes de busca, Canvas e outros tipos estruturados.
P12: Com que frequência fazer backup?
Faça exportação oficial completa mensalmente. Exporte conversas importantes com o AI Exporter logo após acontecerem — não espere o backup mensal.
10. Conclusão
Nenhum método sozinho cobre tudo — a estratégia combinada funciona melhor:
- Exportação oficial = rede de segurança para backup completo
- AI Exporter = formatos do dia a dia, especialmente o JSON estruturado mais prático
- Oficial + conversor = arquivo histórico legível em massa
👉 Comece agora: Instale o AI Exporter e lembre-se de executar regularmente a exportação oficial de dados.