How do you export ChatGPT's search queries to CSV?
Published . Updated .
Record the turn while ChatGPT is answering, then export it as CSV.
Since 14 September 2026, ChatGPT keeps the text of its searches only in the live answer stream, so a file made later from a saved chat holds the pages it fetched and cited and no queries. Our guide to how to use fan-out queries covers what to do with the searches once you have them. This page covers getting them out: which export routes hold which data, how to lay the file out in a spreadsheet, the row counts to expect, and the formulas we use, worked on two ChatGPT conversations we captured in September 2026 while building Only Fan Out.
Can ChatGPT export its own search queries?
No. ChatGPT has no CSV export, and its own data export sends a ZIP of the whole account by email, in HTML and JSON, as AI Toolbox's guide to ChatGPT spreadsheet exports (August 2026) describes it. The JSON file holds every conversation in a deeply nested layout.
For search data, the saved conversation is the problem. We walked every field of a ChatGPT conversation saved on 14 September 2026, result URLs included, and none held a query. Its two search steps were still there, each with one empty text part. We have not run a full account export since that date, but an export built from saved chats can only carry what they hold. Our post on why ChatGPT's fan-out queries went missing compares that file with one saved five days earlier.
Which ways of exporting ChatGPT's searches still work?
Only the routes that read the answer as it arrives give you the queries for your own chat. The rest give you pages, chat text or a different set of searches.
| Route | Queries | Pages fetched and cited | The catch |
|---|---|---|---|
| ChatGPT's own data export | None for chats saved since 14 September 2026 | Inside nested JSON, no CSV | Whole account at once, sent by email |
| Chat exporters (PDF, Markdown, CSV) | None | Some keep the cited links | They export the conversation text, not the searches |
| Chrome DevTools, copied by hand | Yes, if DevTools is open before you send | In raw JSON | One turn at a time, and you build the CSV yourself |
| OpenAI API web search tool | Usually | Yes, on request | Searches for your API request, which can differ from your chat |
| Only Fan Out side panel | Yes, in the order ChatGPT ran them | Yes, side by side | Chrome only, and only for prompts sent with the panel open |
The API route suits a script that runs many prompts. OpenAI's web search guide says each search comes back as a web_search_call item whose search action "usually (but not always)" includes the queries. The full list of pages sits in a sources field, which the guide's examples ask for with include: ["web_search_call.action.sources"], and the cited pages arrive as url_citation annotations with the URL, title and position in the answer. Write those three things to rows and you have the same CSV for API runs.
How do you export a ChatGPT turn with Only Fan Out?
Open the side panel before you send, then export the turn or the whole conversation.
- Add Only Fan Out to Chrome, open chatgpt.com and click its toolbar icon to open the side panel. There is no popup and no options page.
- Send your prompt as normal. The panel lists the queries in the order ChatGPT ran them, then the pages it fetched and the pages it cited.
- Export the single turn, or the whole conversation, as CSV. Markdown suits a report and JSON suits a script.
- Import the CSV into Google Sheets or Excel and split it into the two tabs below.
Re-read picks up a conversation the panel has not captured yet. On a chat saved since 14 September 2026 that brings in its pages and no queries, for the reason above. If queries stop showing on new turns, Diagnostics gives the parser status for each engine and flags when ChatGPT changes a field. After the extension updates, reload the ChatGPT tab.
How should you lay out the CSV in a spreadsheet?
Split it into a Queries tab with one row per search and a Pages tab with one row per URL per turn. Whatever columns your file arrives with, these are the tabs we work from.
| Tab | One row per | Columns |
|---|---|---|
| Queries | Search ChatGPT ran | A turn, B search call, C order, D kind (web, business, image or find), E query text |
| Pages | URL in a turn | A turn, B URL, C domain, D fetched (yes or no), E cited (yes or no) |
Merge the fetched and cited lists on the URL before you count anything. A page in both lists is one row with two yeses. For a full baseline across many prompts, our GEO audit with fan-out data adds a tab for each turn and a scorecard by theme.
How many rows does one ChatGPT turn produce?
Dozens, once you count the pages as well as the queries. These are the counts from two saved ChatGPT conversations we captured five days apart in September 2026, both from the thinking model answering a request for local business recommendations in Singapore.
| Recording | Queries tab | Pages tab |
|---|---|---|
| 9 September 2026, saved before the change | 17 rows from 3 search calls: 7 business, 7 web and 3 image | Not used here |
| 14 September 2026, saved copy | 0 rows: 2 search steps, both empty | 86 rows: 71 fetched only, 8 cited only, 7 both |
The 14 September file listed 78 fetched pages and 15 cited ones. Stack the two lists and you get 93 rows with 7 pages counted twice. Merge on the URL and you get 86.
The 8 cited-only pages matter when you work out a rate. Divide cited pages by fetched pages and that conversation reads 15 of 78, or 19%. Count only the fetched pages that were cited and it is 7 of 78, or 9%. We report the second figure, and the cited-only pages as a count of their own, because they reached the answer without showing up in the fetched list at all.
The 9 September queries show why the call column matters. ChatGPT's second search call put three business names in quotes, names its first call had turned up. Sort by call number and you can see which searches were planned at the start and which came from what ChatGPT had just read.
Which formulas turn the export into answers?
Five formulas cover most of what we ask of an export. They use the column letters above and work in Google Sheets.
| Question | Formula |
|---|---|
| Domain of a page (Pages, column C) | =REGEXEXTRACT(B2,"^https?://(?:www\.)?([^/:]+)") |
| Rows fetched for your domain | =COUNTIFS(C:C,"example.com",D:D,"yes") |
| Share of fetched pages that were cited | =COUNTIFS(D:D,"yes",E:E,"yes")/COUNTIF(D:D,"yes") |
| Cited without being fetched | =COUNTIFS(D:D,"no",E:E,"yes") |
| Queries of one kind (Queries tab) | =COUNTIF(D:D,"business") |
The domain formula relies on a capture group: Google's REGEXEXTRACT help says each group in parentheses returns its own value, so the formula returns the host and drops the scheme, any www. and the path. To find long searches, add =COUNTA(SPLIT(E2," ")) beside each query and sort by it. Count your domain per turn as well as per row, because one turn can fetch three of your pages and still cite none.
What will an export never contain?
Three gaps come from the engines, and no export can fill them.
- Queries ChatGPT never sent. Some turns from the thinking model show only a label such as "Searching 6 websites", with no query text in the stream.
- Queries from chats saved since 14 September 2026 that were not recorded live. Their pages are still there.
- What Grok searched in a connected Gmail, Drive or Calendar. Only Fan Out counts those searches and records which tool ran them, and never stores or exports the query text.
The export is a record of searches and sources. To keep the conversation itself, use ChatGPT's own data export as well.
Related questions
Can I export the search queries from an old ChatGPT conversation?
Not from a chat saved on or after 14 September 2026, because ChatGPT no longer keeps the query text in the saved copy. You can still export the pages it fetched and cited. To get the queries, send the prompt again with something reading the live stream.
Does ChatGPT's own data export include search queries?
Not for chats saved since 14 September 2026, going by what those saved conversations hold. It also has no CSV option: it sends the whole account as HTML and JSON by email.
Is exporting search queries the same as exporting a ChatGPT conversation?
No. A search export lists the queries ChatGPT ran and the pages it fetched and cited for each turn. A conversation export keeps the messages. Use both if you need the answer text next to its sources.
See the fan-out for your own prompts
Only Fan Out is a free Chrome side panel that lists the queries, fetched pages and cited pages behind each ChatGPT, Claude or Grok answer. Nothing leaves your browser.
Add to Chrome, it's free