Come esportare le conversazioni ChatGPT: guida JSON, PDF e Markdown
ChatGPT non offre un pulsante per scaricare singole conversazioni. Questa guida spiega l'esportazione ufficiale dei dati e confronta estensioni per browser e convertitori JSON per salvare le chat in JSON, PDF o Markdown.
1. Si possono esportare le conversazioni ChatGPT?
ChatGPT non ha un pulsante «scarica questa conversazione», ma salvare le chat è un’esigenza molto comune: appunti di studio, consegne di lavoro, backup del codice, knowledge base e backup a livello di account per evitare perdite di dati.
I formati contano: il PDF è ideale per la condivisione, il Markdown per gli appunti e il JSON per l’uso programmatico — che tu analizzi le conversazioni con Python o jq, estragga blocchi di codice, costruisca dataset per il fine-tuning o alimenti una pipeline RAG, il JSON è il punto di partenza migliore.
Questo articolo confronta tre approcci pratici e spiega perché l’esportazione JSON di AI Exporter è più semplice da usare rispetto al conversations.json ufficiale di OpenAI.
2. Risposta rapida: quale metodo scegliere
- Esportazione dati ufficiale (Impostazioni → Controlli dati → Esporta dati) è l’unico backup ufficiale completo di ChatGPT, ma
conversations.jsonusa una struttura ad alberomappingdifficile da analizzare e non è pronta per la consegna in PDF o Word. - Esportazione JSON di AI Exporter produce un array piatto di messaggi in cui ogni messaggio include
role,model,modelId,created_atecontentsstrutturati — ideale per script, migrazione e sviluppo downstream. - Combinazione consigliata: esportazione ufficiale per backup periodici completi; AI Exporter per conversazioni singole o selezionate in JSON o PDF / Markdown; JSON ufficiale + convertitore quando devi trasformare centinaia di chat passate in documenti leggibili in una sola volta.
3. Metodo 1: esportazione dati ufficiale ChatGPT (ideale per backup completo)
L’unica opzione ufficiale di esportazione massiva di OpenAI.
Quando usarlo
- Backup periodici completi dell’account
- Migrazione verso un’altra piattaforma AI (es. importare le chat in Gemini)
- Non ideale per: salvare una singola conversazione o consegnare subito un documento leggibile
Passaggi
- Apri chatgpt.com e accedi.
- Clicca sull’icona del profilo (in basso a sinistra) → Settings (Impostazioni).

- Vai su Data controls (Controlli dati).
- Clicca su Export data (Esporta dati) → conferma.

- Attendi l’email di OpenAI (di solito 20–30 minuti; gli account con molte conversazioni possono impiegare di più — la documentazione ufficiale indica fino a 24 ore).
- Clicca sul link di download nell’email (valido per 24 ore — controlla anche lo spam).
- Decomprimi l’archivio e individua
conversations.json(le esportazioni più recenti possono essere suddivise inconversations-000.jsone altri file parziali).
Cosa ottieni
conversations.json— cronologia completa in struttura ad alberomappingcon timestamp e informazioni sul modellochat.html— versione base navigabile nel browser- Possono essere inclusi immagini e allegati (immagini DALL·E, chat temporanee e conversazioni eliminate potrebbero mancare)
I problemi del JSON ufficiale
L’esportazione di OpenAI è in JSON, ma è strutturata per l’archiviazione interna — non per essere usata subito negli script:
mappingad albero con puntatori padre/figlio — devi attraversare il grafo per ricostruire l’ordine della conversazione.- I prompt modificati creano rami — un thread può avere più percorsi, complicando l’analisi.
- Testo sepolto in
content.parts[]— non è un semplice campo stringa. - Timestamp Unix in formato float — es.
1713350400.0, che richiede conversione aggiuntiva. - Tutto o niente — nessuna esportazione selettiva di singoli messaggi, nessun download immediato.
| Punti di forza | Dettagli |
|---|---|
| Ufficiale e affidabile | Fornito da OpenAI, senza terze parti |
| Vera esportazione massiva | Tutte le conversazioni dell’account in un’unica operazione |
| Metadati ricchi | Timestamp, info sul modello e struttura della conversazione |
| Nessuna installazione | Si fa dalle impostazioni di ChatGPT |
| Limitazioni | Dettagli |
|---|---|
| Tutto o niente | Impossibile selezionare chat o intervalli di date |
| Struttura complessa | Il JSON ad albero richiede parsing approfondito |
| Nessuna opzione di formato | Niente PDF, Markdown o Word |
| Consegna lenta | Da minuti a giorni |
| Contenuti mancanti | Chat temporanee, thread eliminati e alcuni contenuti specifici dell’IA possono essere assenti |
In sintesi: l’esportazione ufficiale è una rete di sicurezza, non un modo pratico per ottenere dati strutturati on demand.
4. Metodo 2: AI Exporter (ideale per l’uso quotidiano)
Trasparenza: questo è il nostro prodotto. Di seguito una panoramica onesta di cosa può e non può fare.
Perché il JSON di AI Exporter supera il conversations.json ufficiale
| Dimensione | conversations.json ufficiale | JSON AI Exporter |
|---|---|---|
| Struttura | mapping ad albero, parsing complesso | Array piatto di messaggi, iterazione diretta |
| Ambito | Massivo per tutto l’account | Singola chat / messaggi parziali on demand |
| Velocità | Da minuti a giorni | Immediato con un clic |
| Timestamp | Float Unix | created_at leggibile per ogni messaggio |
| Info modello | Sparse nei metadati | model / displayModel / modelId su ogni messaggio assistant |
| Tipi di contenuto | In ritardo sulle nuove funzioni | Array contents con più tipi strutturati |
Come appare il JSON di AI Exporter
Il livello superiore è un array di messaggi (non 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
}
]Un array piatto su cui puoi fare un ciclo for — senza alberi annidati o puntatori padre/figlio.
I campi che interessano di più agli utenti
Per messaggio:
| Campo | Descrizione |
|---|---|
role | user (il tuo messaggio) o assistant (risposta dell’IA) |
model / displayModel / modelId | Nome piattaforma, nome visualizzato e versione del modello (es. GPT-4o, Claude Sonnet) |
created_at / updated_at | Orario del messaggio per ordinamento e statistiche |
chatGroupId | Raggruppa un turno user/assistant per l’accoppiamento |
Array contents (contenuto strutturato — il valore principale dell’esportazione JSON):
| type | Cosa viene preservato |
|---|---|
markdown / text | Testo, blocchi di codice, formule matematiche |
thinking | Ragionamento / catena di pensiero |
sources | Citazioni da ricerca web e Deep Research |
image / attachment | Immagini e file caricati |
html_widget | Canvas / artefatti interattivi |
shopping_card / shopping_table | Schede di raccomandazione e tabelle comparative per lo shopping |
L’esportazione JSON conserva tutti i dati strutturati indipendentemente dalle impostazioni di visualizzazione come «mostra timestamp» in PDF o Markdown.
Come esportare JSON con AI Exporter
- Installa AI Exporter dal Chrome Web Store (funziona anche su Edge e Firefox).
- Apri la conversazione ChatGPT da esportare.
- Clicca sull’icona dell’estensione → scegli JSON.
- Opzionale: seleziona messaggi specifici per esportare solo ciò che ti serve.
- Opzionale: attiva «Copia negli appunti» per incollare il JSON direttamente in uno script o in uno strumento API.
Cosa puoi fare con il JSON esportato
Gli esempi seguenti usano il formato JSON di AI Exporter. Se usi l’esportazione ufficiale, estrai prima i messaggi dall’albero mapping.
Statistiche rapide della conversazione in 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"Le tue domande: {roles.get('user', 0)}")
print(f"Risposte dell'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"Risposta più lunga (caratteri): {len(str(longest['contents']))}")Estrarre tutti i blocchi di codice:
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)Convertire nel formato fine-tuning 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"Generati {len(training_data)} campioni di addestramento")Altri punti di forza di AI Exporter
Il JSON è uno dei formati supportati. Cambia output nella stessa estensione quando ti servono documenti leggibili:
| Formato | Ideale per |
|---|---|
| JSON | Analisi, migrazione, automazione, fine-tuning |
| Markdown | Obsidian, blog, knowledge base |
| Condivisione, stampa, archiviazione — mantiene evidenziazione codice, LaTeX, immagini | |
| Word | Documenti d’ufficio da modificare |
| Notion | Sincronizzazione con un clic nella knowledge base |
| TXT / Immagine | Archivi leggeri, condivisione visiva |
Altre funzionalità principali:
- Esportazione selettiva — chat completa, messaggi parziali o export al passaggio del mouse su una singola risposta
- Preservazione del formato — blocchi di codice, tabelle, LaTeX, Canvas, immagini
- Multi-piattaforma — ChatGPT, Claude, Gemini, DeepSeek e oltre 10 piattaforme
- Elaborazione locale — JSON, Markdown, TXT gestiti nel browser, senza upload
- Piano gratuito — JSON, Markdown, TXT gratuiti; PDF, Word, Notion con limiti giornalieri gratuiti
Esportazione rapida di più conversazioni (flusso multi-scheda)
Non c’è un pulsante ufficiale «esporta tutte le chat», ma un flusso multi-scheda gestisce molte conversazioni in modo efficiente:
- Cmd/Ctrl + clic su più chat nella barra laterale di ChatGPT per aprirle ciascuna in una nuova scheda.
- Preconfigura formato e cartella di download (disattiva «Chiedi dove salvare ogni file» nel browser).
- Per ogni scheda: Seleziona → Esporta → Chiudi scheda — circa due clic.
- ~20 chat in 3–5 minuti, ogni file con nome chiaro.
Limitazioni
- Nessun pulsante «esporta tutto l’account» in stile ufficiale.
- Per un backup completo dell’account conviene affiancare l’esportazione ufficiale.
- PDF, Word e Notion hanno limiti giornalieri gratuiti (JSON, Markdown, TXT sono gratuiti).
5. Metodo 3: esportazione ufficiale + strumenti di conversione (archivio leggibile massivo)
Per utenti tecnici, o quando devi trasformare centinaia di chat passate in Markdown in una sola volta.
Quando usarlo
- Conversione massiva della cronologia completa in documenti leggibili
- Importazione in Obsidian o Logseq per una knowledge base
- Non ideale per: salvare rapidamente la conversazione in corso
Passaggi
- Completa il Metodo 1 per ottenere l’esportazione ZIP ufficiale.
- Decomprimi e individua
conversations.json. - Scegli un convertitore:
- CLI:
npx chatgpt-to-markdown path/to/archive - Convertitore browser: ChatGPT Conversations to Markdown (elaborazione locale, nessun upload)
- App desktop: Univik e simili (supporto PDF / DOCX)
- CLI:
- Ogni conversazione diventa un file
.mdseparato.
Pro e contro
| Punti di forza | Limitazioni |
|---|---|
| Vera esportazione massiva, leggibile, ideale per migrazione una tantum | Flusso in due passaggi, richiede competenze tecniche |
| Molti strumenti open source, elaborazione locale per la privacy | Qualità variabile; blocchi di codice / tabelle possono convertirsi in modo disomogeneo |
| Nessuna esportazione selettiva — ogni chat viene convertita | |
| Le nuove chat richiedono di ripetere l’intero processo |
6. Confronto tra i tre metodi
| Funzionalità | Esportazione ufficiale | AI Exporter | Ufficiale + convertitore |
|---|---|---|---|
| Ambito | Tutte le chat | On demand | Tutte le chat |
| Struttura JSON | Mapping ad albero | Array piatto di messaggi | Richiede parsing del JSON ufficiale |
| Formati di output | JSON / HTML | JSON / PDF / MD / Word / Notion ecc. | Principalmente Markdown |
| Timestamp / nomi modello | Presenti ma difficili da estrarre | Leggibili per ogni messaggio | Dipende dal convertitore |
| Esportazione selettiva | No | Sì (per messaggio) | No |
| Multi-piattaforma | Solo ChatGPT | ChatGPT + oltre 10 piattaforme | Solo ChatGPT |
| Competenze tecniche | Nessuna | Nessuna | Medie |
| Esportare 20 chat | Da minuti a giorni | ~3–5 minuti | Attesa + conversione |
| Ideale per | Backup di sicurezza | Export quotidiano + JSON strutturato | Archivio storico massivo |
7. Flusso consigliato: combinare i metodi
Passo 1: esportazione ufficiale per backup completo
- Impostazioni → Controlli dati → Esporta dati
- Archivia lo ZIP su cloud o disco esterno
- Frequenza consigliata: mensile, o prima di eliminare chat vecchie
Passo 2: AI Exporter per le conversazioni importanti
Esporta subito dopo una chat di valore, scegliendo il formato in base all’uso:
- Script / migrazione / fine-tuning → JSON
- Report di ricerca, knowledge base → Markdown
- Consegne ai clienti → PDF
- Collaborazione di team → sincronizzazione Notion
Passo 3 (opzionale): conversione massiva del backup
Quando ti serve un archivio leggibile dell’intera cronologia, usa il Metodo 3 per convertire in batch lo ZIP ufficiale in Markdown.
8. Quale formato scegliere?
| Obiettivo | Formato migliore | Metodo migliore |
|---|---|---|
| Backup completo dell’account (rete di sicurezza) | JSON (grezzo ufficiale) | Esportazione ufficiale |
| Script / fine-tuning / RAG | JSON (strutturato) | AI Exporter |
| Knowledge base (Obsidian / Notion) | Markdown | AI Exporter |
| Condivisione con clienti / colleghi | AI Exporter | |
| Modifiche successive necessarie | Word | AI Exporter |
| Knowledge base di team | Notion | AI Exporter |
| Archivio leggibile massivo della cronologia | Markdown | Ufficiale + convertitore |
9. Domande frequenti
D1: ChatGPT può esportare JSON direttamente?
Sì, ma solo tramite l’esportazione dati ufficiale massiva (Settings → Data Controls → Export Data), che produce un file annidato con tutte le conversazioni. Per JSON per singola chat con struttura chiara, usa AI Exporter.
D2: In cosa differisce il JSON di AI Exporter dal conversations.json ufficiale?
AI Exporter produce un array piatto di messaggi con role, model, modelId, created_at e contents strutturati, iterabili direttamente. L’esportazione ufficiale usa un mapping ad albero con riferimenti padre/figlio, testo in parts[] e timestamp Unix float — richiede parsing significativo.
D3: Il JSON include nomi dei modelli e timestamp?
Sì. Ogni messaggio assistant ha model, displayModel e modelId (es. GPT-4o), e created_at registra l’orario per ordinamento e statistiche per modello.
D4: Vengono preservati ragionamento, fonti web e blocchi di codice?
Sì. L’array contents di AI Exporter usa thinking, sources, markdown e altri tipi — molto più completo del copia-incolla.
D5: L’esportazione JSON è gratuita?
Sì. L’esportazione JSON è disponibile nella versione gratuita di AI Exporter — senza account o abbonamento.
D6: Posso esportare solo le risposte dell’IA senza i miei prompt?
Sì. Clicca Select e scegli Answers per selezionare solo le risposte dell’IA, oppure seleziona/deseleziona manualmente i singoli messaggi.
D7: Il JSON esportato può essere usato per l’API OpenAI o il fine-tuning?
Sì. AI Exporter usa etichette user / assistant coerenti con l’API — estrai il testo da contents come mostrato nell’esempio di fine-tuning sopra.
D8: AI Exporter può esportare in batch tutte le conversazioni?
Non c’è un export completo con un clic in stile ufficiale, ma il flusso multi-scheda permette di esportare le chat rapidamente una per una. Affianca l’esportazione ufficiale per il backup completo dell’account.
D9: Quanto tempo richiede l’esportazione ufficiale? Cosa fare se il link scade?
Di solito 20–30 minuti; più a lungo per account con molte chat. I link di download scadono dopo 24 ore — richiedi una nuova esportazione se necessario.
D10: Gli account ChatGPT gratuiti possono esportare?
Sì. Sia l’esportazione ufficiale sia AI Exporter funzionano con account gratuiti.
D11: In cosa differisce AI Exporter da ChatGPT Exporter?
Entrambi supportano l’esportazione JSON, ma AI Exporter copre ChatGPT, Claude, Gemini, DeepSeek e oltre 10 piattaforme, oltre a Word, Notion e altro — con contents che preserva ragionamento, fonti di ricerca, Canvas e altri tipi strutturati.
D12: Con quale frequenza fare backup?
Esegui l’esportazione ufficiale completa ogni mese. Esporta le chat importanti con AI Exporter subito dopo — non aspettare il backup mensile.
10. Conclusione
Nessun metodo da solo copre tutto — la strategia combinata funziona meglio:
- Esportazione ufficiale = rete di sicurezza per backup completo
- AI Exporter = formati quotidiani, soprattutto il JSON strutturato più pratico
- Ufficiale + convertitore = archivio storico leggibile massivo
👉 Inizia subito: Installa AI Exporter e ricorda di eseguire regolarmente l’esportazione dati ufficiale.