Ask ChatGPT
TL;DR
About
A growth lead at a French payroll startup sends "What payroll software should a 20-person company in France use?" from a signed-out browser every Monday and logs which vendors the reply names and which review sites it cites, since those are the pages worth getting listed on. Signed out is the closest thing to a stranger asking, but you get little beyond the reply text and its cited references. A signed-in account adds the model id, every query ChatGPT typed and every page those searches pulled up, though saved memory can shape the reply and the chat is kept in that account's history. Those queries are worth a close read, since one question can fan out into many (a September run typed 9 across 2 search calls). Each run is one question in a fresh chat, and setting mode to work is saved on the account, so your own next chat starts in Work too.
Input
question requiredThe question to send as the first message of a new chat.
Output
calls requiredOne entry per search call. A call often runs a whole round of queries at once and answers one list for all of them. What the page does not receive: which query returned which result, the call's arguments, and which search backend answered it. Empty when it did not search. Null signed out, where ChatGPT does not show them.
model requiredWhich model answered, by ChatGPT's own id (e.g. "gpt-6"). Null when the app does not say, which is always the case signed out.
answer requiredThe last entry of `answers`.
answers requiredOne entry per reply, usually one; ChatGPT sometimes answers twice and asks which reply you prefer, and neither entry is more official than the other: read the length before reading answers[0]. Each is the reply as markdown, each citation a markdown link to its source, widgets (images, forms) left out.
sources requiredEvery page the searches handed the model (`given`), once each, in the order it got them: the pool the answer could draw on, as opposed to `references`, what it cited, and to the results it never got. Empty when it did not search. Null signed out, where ChatGPT does not show them.
activity requiredThe progress lines ChatGPT showed while it worked, in order and in the display language, e.g. "Searching the web", "Searched 8 websites". Signed out, the only trace of the searches it ran. Display text: its wording and its counts are ChatGPT's, not a count of `sources`. Empty when it showed none.
searches requiredOne entry per round of web searches, in order: what the model typed and the results its searches returned. Empty when it did not search. Null signed out, where ChatGPT does not show them.
references requiredEvery source the answer cited or linked, signed in or out, deduplicated by url and in the order the answer surfaced them: the pages behind the citation pills. Not everything the model got: that is `sources`. Empty when the answer cited nothing, which is a fact about that reply: the same question searches on one run and not the next.
stopReason requiredWhy generation ended, as ChatGPT records it: "stop" for an answer the model finished. Null when ChatGPT records no reason, and signed out. A finished answer can still be only a sentence announcing work it never did; that is what the model returned, not a truncation.
searchContext requiredWhat the app asked for and what the server says about this turn, as sent to the page. Signed out, every field the server sends is null, and a field is null when the app did not send it.
conversationId requiredThe conversation's id. Null if the app did not create one.
webSearchQueries requiredThe searches ChatGPT issued, in order. Empty when the reply did not search. Null signed out, where ChatGPT does not show them: unknown, not none.
Example output
Shape only: placeholder values generated from the output schema, not a real run.
{
"calls": [
{
"call": 3,
"tool": "…",
"results": [
{
"ref": "…",
"url": "https://example.com/item/123",
"rank": 3,
"type": "…",
"given": true,
"title": "Example",
"pubDate": "2026-01-15T09:30:00Z",
"snippet": "…",
"attribution": "…",
"thumbnailUrl": "https://example.com/item/123"
}
]
}
],
"model": "…",
"answer": "…",
"answers": [
"…"
],
"sources": [
{
"url": "https://example.com/item/123",
"title": "Example",
"attribution": "…"
}
],
"activity": [
"…"
],
"searches": [
{
"queries": [
"…"
],
"results": [
{
"ref": "…",
"url": "https://example.com/item/123",
"type": "…",
"given": true,
"title": "Example",
"pubDate": "2026-01-15T09:30:00Z",
"attribution": "…"
}
]
}
],
"references": [
{
"ref": "…",
"url": "https://example.com/item/123",
"title": "Example",
"attribution": "…"
}
],
"stopReason": "…",
"searchContext": {
"tool": "…",
"useCase": "…",
"planType": "…",
"toolInvoked": true,
"locationUsed": "…",
"clusterRegion": "…",
"requestedModel": "…",
"thinkingEffort": "…",
"modelExperience": "…",
"locationIsPrecise": true
},
"conversationId": "abc123",
"webSearchQueries": [
"…"
]
}