ChatGPT Conversation Scraper
Pricing
from $4.50 / 1,000 scraped conversations
ChatGPT Conversation Scraper
Scrape public ChatGPT shared links. Export full conversations with messages, roles, timestamps, model metadata, code blocks, and source evidence.
Pricing
from $4.50 / 1,000 scraped conversations
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
💬 ChatGPT conversation scraper for shared links
ChatGPT Conversation Scraper extracts complete public shared conversations from ChatGPT share links. Paste one or more chatgpt.com/share/... or chat.openai.com/share/... URLs and get a clean dataset with conversation title, share ID, model, timestamps, full messages, roles, message IDs, statuses, and code blocks.
Use this ChatGPT conversation scraper when you need to archive public shared chats, review prompt and response patterns, collect examples for documentation, or export conversations into your own database, spreadsheet, API workflow, or analysis pipeline. The Actor reads public shared links only. It does not ask for ChatGPT cookies, credentials, login details, or private conversation access.
For a quick first run, keep the prefilled public ChatGPT shared URL. It returns a complete conversation row with nested messages so you can review the output shape before adding your own links.
✅ What this Actor does
- Scrapes public ChatGPT shared conversation URLs.
- Accepts both
chatgpt.com/share/...and oldchat.openai.com/share/...links. - Saves one dataset row per successfully scraped shared conversation.
- Returns the full visible message list in source order.
- Preserves message roles such as user, assistant, system, or tool when ChatGPT exposes them.
- Extracts readable message text and code blocks.
- Adds source-backed conversation metadata such as title, share ID, model, created time, updated time, and message count when available.
- Optionally attaches rendered HTML and source conversation JSON for audit workflows.
- Skips unusable links without creating placeholder error rows.
- Works with Apify exports, API access, schedules, webhooks, and integrations.
📊 ChatGPT data you can export
Each dataset item is one public shared ChatGPT conversation.
| Data group | Fields |
|---|---|
| Conversation identity | shareId, title, model |
| Timing | createdAt, updatedAt |
| Completeness | messageCount, messages |
| Message details | messageId, role, index, text, createdAt, status |
| Code blocks | codeBlocks[].language, codeBlocks[].text |
| Extra source metadata | gizmoId, plugins |
| Optional audit evidence | sourceContent.renderedHtml, sourceContent.conversationJson |
ChatGPT may not expose every metadata field on every shared link. Nullable fields are returned as null when the public share page does not provide them.
🚀 How to run it
- Open the Input tab.
- Add one or more public ChatGPT shared conversation URLs.
- Keep
Preserve source contentoff for normal exports. - Turn
Preserve source contenton only when you need rendered HTML and source JSON attached to each saved conversation. - Start the Actor and open the dataset.
You control the run size by submitting fewer or more shared URLs. Invalid, private, expired, deleted, or unsupported links are reported in the run log and do not create dataset rows.
🧾 Input example
{"startUrls": [{"url": "https://chatgpt.com/share/693011c8-0a3c-8006-b6cf-77d844d1bb51"}],"preserveSourceContent": false}
📦 Output example
{"shareId": "693011c8-0a3c-8006-b6cf-77d844d1bb51","title": "TikTok script creation","model": "gpt-5-1","createdAt": "2025-12-03T10:32:40.044Z","updatedAt": "2025-12-03T10:32:45.106Z","messageCount": 45,"messages": [{"messageId": "msg_abc123","role": "user","index": 0,"text": "Create a TikTok script for a product launch.","createdAt": "2025-12-03T10:32:40.044Z","status": "finished_successfully","codeBlocks": []},{"messageId": "msg_def456","role": "assistant","index": 1,"text": "Here is a concise launch script...","createdAt": "2025-12-03T10:32:45.106Z","status": "finished_successfully","codeBlocks": [{"language": "python","text": "print(\"launch\")"}]}],"gizmoId": null,"plugins": [],"sourceContent": null}
💳 Pricing
This Actor uses pay-per-event pricing.
Scraped conversationis charged once for each usable public shared conversation saved to the dataset.Preserved source contentis charged only whenPreserve source contentis enabled and source evidence is attached to a saved conversation.- Invalid, private, deleted, expired, unsupported, or source-unavailable links do not create primary result rows.
See the Pricing tab for the current per-event prices for your Apify plan.
⚠️ Limits and caveats
This Actor works with public ChatGPT shared links only. It cannot read private ChatGPT history, send prompts, continue conversations, log in to ChatGPT, use your ChatGPT account, or recover a share link that ChatGPT no longer exposes publicly.
The output is extracted data, not an AI summary. If you need summarization, classification, scoring, or rewriting, run that as a separate step after exporting the dataset.
❓ FAQ
🔐 Do I need a ChatGPT token or cookies?
No. The Actor reads public shared conversation pages and does not ask for ChatGPT credentials.
🧵 Does it scrape the full conversation?
Yes, for usable public shared links it saves the visible message list in source order, including roles, text, message IDs, statuses, and code blocks when ChatGPT exposes them.
🧹 Why are failed links not in the dataset?
The dataset contains successful conversation rows only. Bad links are easier to handle in logs than as placeholder rows mixed into your exports.
🧾 When should I preserve source content?
Use it when you need audit evidence or want to review the source HTML and conversation JSON later. Leave it off for smaller, cleaner datasets.
📝 Changelog
- 0.0: Initial release.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Other actors
- Reddit Comments Search Scraper ↗ - Search public Reddit comments by keyword, subreddit, and freshness window.
- Reddit Scraper ↗ - Export Reddit posts and comments around a topic or brand.
- Twitter Scraper ↗ - Collect public X/Twitter posts, profiles, and trends.
- TikTok Transcript Scraper ↗ - Extract public TikTok captions, transcript text, and timed segments.
- Website URL Crawler ↗ - Crawl rendered public websites and export a link map.
Made with ❤️ by Maxime Dupré