How to find ChatGPT's fan-out queries in Chrome DevTools
Published . Updated .
To find the fan-out queries ChatGPT ran, open Chrome DevTools before you send the prompt, click the network request named conversation, and search its event stream for search_model_queries. The list under that field holds each search ChatGPT ran for the answer, in order.
ChatGPT writes and runs those searches on OpenAI's side, as our guide to how AI assistants search the web explains, and sends a record of them to the chat page while the answer streams in. The steps below come from the ChatGPT traffic we read while building Only Fan Out, checked against real conversations captured in September 2026. OpenAI changes these field names without notice, so treat them as correct for that month.
What do you need before you start?
Chrome (or Edge or Brave, which share the same DevTools), a signed-in ChatGPT account, and a prompt that makes ChatGPT search. You do not need a developer account, an API key or a paid plan for DevTools itself.
Pick a prompt that needs fresh facts, such as a price, a recent event or a local business. A question ChatGPT can answer from memory may not search at all, and then there is nothing to find. Chrome's Network panel reference covers every DevTools control used below.
How do you find ChatGPT's fan-out queries, step by step?
Set up the Network tab first, send the prompt, then read one request. The order matters, because DevTools only records traffic while it is open.
- Open chatgpt.com and start a new chat.
- Press Ctrl+Shift+I (Cmd+Option+I on a Mac) and click the Network tab.
- Tick Preserve log, so a redirect does not wipe the list, and click the Fetch/XHR filter to hide images, scripts and fonts.
- Type your prompt and send it. Wait for the answer to finish.
- Type
conversationin the filter box and click the request with that name that stayed open while the answer streamed in. - Open its EventStream tab. Each row is one small piece of the answer.
- Type
search_model_queriesin the filter box above the events, then click the matching row. - Read the
querieslist in that event. Each string is one search ChatGPT ran.
If filtering the events is awkward, press Ctrl+F (Cmd+F on a Mac) with the Network panel in focus. That opens its Search tab, which looks for a word inside every recorded request at once.
What do ChatGPT's search queries look like in the stream?
Usually a short JSON list attached to the step where ChatGPT's web tool, web.run, ran. In our 14 September 2026 capture it read "search_model_queries": {"type": "search_model_queries", "queries": [...]}, with three queries in that list. The whole list arrived in a single event, as part of the step ChatGPT added for web.run, so one match in the filter is usually enough.
ChatGPT writes these queries itself. In that capture all three were narrowed to a single website each with site:, which a person rarely types.
Some turns also write the searches as plain lines inside the web.run step: a search type, a pipe, then the query and a few more fields. A line might read fast|best running shoes for flat feet|30, where the query sits between the first two pipes. These are the types we know of:
| Line starts with | What ChatGPT searched |
|---|---|
fast| | The web |
business| | Local places, sometimes with a location first and several queries split by semicolons |
image| | Images |
product| | Products for shopping answers |
find| | Nothing new: it looks a word up inside results ChatGPT already has |
Other turns write the same call as JSON, with each query under q, such as "search_query": [{"q": "..."}]. ChatGPT has switched between the pipe and JSON shapes more than once in 2026. If search_model_queries finds nothing, search the stream for web.run, then for search_query, and read whichever shape you find.
Why doesn't reloading the conversation work any more?
Since 14 September 2026, ChatGPT sends the query text only in the live stream and leaves it out of the saved conversation. Reload a finished chat and the request that loads it carries the pages ChatGPT fetched and cited, with no queries.
Many how-to guides from earlier in 2026 tell you to do exactly that: reload, then search the response for "queries". It worked then. For any prompt you send now, DevTools has to be open before you press send. Our post on how to see what ChatGPT searched covers this change and the other ways to see the searches.
Why does the search come up empty?
There are four common reasons, and the stream tells you which one you hit.
| What you see | What it means | What to do |
|---|---|---|
No conversation request at all | DevTools opened after you sent the prompt | Send the prompt again with DevTools open |
No web.run anywhere in the stream | ChatGPT answered without searching | Use a prompt that needs current facts |
A stream_handoff event in the stream | ChatGPT moved the rest of the answer to a second request | Look for the next streaming request and search that one too |
web.run steps with empty content and a label such as "Searching the web" | ChatGPT withheld the query text for that turn | Nothing in the browser shows it; the sources still arrive |
We first saw the last case on 14 September 2026, on some turns from ChatGPT's thinking model. The step that ran the search is still in the stream, and so are its results, but the query is replaced by a label like "Searching 6 websites".
What should you do with the queries once you have them?
Check whether your pages rank for them. ChatGPT only reads pages its own searches turn up, so a query you rank nowhere for is a search that never reaches you, however well your page answers the prompt.
Expect a short list on most turns. Ahrefs found about 1.6 queries per response in the 14.4% of free, logged-out ChatGPT responses that used fan-out, and notes that paid or reasoning models search more. Our guide to query fan-out covers how to turn the list into content work.
What goes wrong with the manual method?
It works, and it is slow. You get raw JSON for one turn at a time, with the queries buried among thousands of other fields, and nothing is kept once you close the tab.
- If DevTools was not open when you sent the prompt, that turn's queries are gone for good.
- ChatGPT renamed or moved its search fields several times in 2026. When a search finds nothing, you cannot always tell whether ChatGPT did not search or the field moved.
- Twenty prompts means twenty rounds of filter, click and search, then copying each query out by hand.
- Copy as cURL includes your session cookies, so never paste a copied request into a forum or a shared doc.
What is the faster way?
Install Only Fan Out, which reads the same stream for you and lists each turn's queries in a side panel next to the chat. Open ChatGPT, click the Only Fan Out icon in the toolbar, and send your prompt as normal. It does the same for Claude and Grok.
| Chrome DevTools by hand | Only Fan Out | |
|---|---|---|
| Set-up per prompt | Open DevTools, filter, find the request, search the JSON | None once the side panel is open |
| Catching the live stream | Only if DevTools was open before you sent | Captured as the answer arrives |
| What you see | Raw JSON for one turn | Queries in order, then pages fetched and pages cited |
| Keeping a record | Copy and paste by hand | History of every captured chat, CSV, Markdown or JSON export |
| When a field changes | You find out when the search comes back empty | Diagnostics flags the change |
It keeps what it captures in your browser. Our post on how Only Fan Out works explains what it reads and why nothing leaves your machine.
Related questions
Do you need a developer account or an API key to see ChatGPT's queries in DevTools?
No. DevTools comes with Chrome, and you only need to be signed in to ChatGPT.
Does this work in Edge or Brave?
Yes. Both are built on Chromium and share the same DevTools, so the Network tab, the EventStream tab and the filter box are in the same places.
Is it safe to open DevTools on ChatGPT?
Reading the Network tab is safe and changes nothing. Do not paste anything a website or a stranger gives you into the Console, and do not share a copied request, because it carries your session cookies.
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