Bulk export all your ChatGPT conversations -- including Team and Business workspaces where OpenAI doesn't provide a native export.
OpenAI lets personal account users export their data, but Team/Business workspace users have no export option. This tool fixes that.
- Exports all conversations from your ChatGPT account (personal or workspace)
- Includes archived conversations
- Finds and optionally downloads file attachments (images, PDFs, etc.)
- Handles rate limiting with automatic retry and exponential backoff
- Outputs a single JSON file with your complete conversation history
The fastest way -- no installation needed:
- Go to chatgpt.com and log in
- If you're on a workspace, make sure you've switched to it
- Open browser DevTools (F12 or Cmd+Option+I)
- Go to the Console tab
- Copy and paste the contents of
scripts/export.js - Press Enter and wait
Your conversations will download as a JSON file when complete.
For a better experience with a progress bar and options:
- Download or clone this repo
- Open Chrome and go to
chrome://extensions/ - Enable Developer mode (top right toggle)
- Click Load unpacked and select the
extension/folder - Go to chatgpt.com and log in
- Click the extension icon and hit Export All Conversations
ChatGPT's web app uses internal API endpoints (/backend-api/) that are accessible from your browser session. This tool:
- Gets your session token from
/api/auth/session - Detects workspace accounts via the
_accountcookie - Paginates through all conversations via
/backend-api/conversations - Fetches full content of each conversation via
/backend-api/conversation/{id} - Extracts file attachment references from conversation data
- Packages everything into a downloadable JSON file
No API keys needed -- it uses your existing browser session.
{
"export_time": "2026-02-10T00:00:00.000Z",
"workspace_account_id": "uuid-or-null",
"conversation_count": 783,
"attachment_count": 1012,
"errors": [],
"attachments": {
"file-id": { "name": "document.pdf", "conversationId": "conv-id" }
},
"conversations": [
{
"id": "conversation-uuid",
"title": "My Conversation",
"create_time": 1700000000.0,
"update_time": 1700000500.0,
"conversation": {
"title": "My Conversation",
"mapping": {
"message-uuid": {
"message": {
"author": { "role": "user" },
"content": { "content_type": "text", "parts": ["Hello!"] }
}
}
}
}
}
]
}Why can't I just use Settings > Data Controls > Export? That option only exists for personal accounts. Team/Business workspace accounts don't have it. OpenAI has acknowledged this but hasn't fixed it since 2024.
Is this against OpenAI's terms? This tool accesses your own data through the same APIs that the ChatGPT web interface uses. You have a right to your own data under GDPR Article 20 (data portability).
How long does it take? About 1 conversation per second. A workspace with 800 conversations takes ~15 minutes.
What about rate limits? The tool automatically handles rate limiting with exponential backoff. If you get rate limited, it waits and retries.
Some attachments fail to download? Older file attachments expire from OpenAI's servers (usually after a few months). These return HTTP 422 errors. Recent files should download fine.
MIT -- do whatever you want with it.