App Logo
chatgpt.com

Ask ChatGPT

Open a new ChatGPT chat, send one question, and wait for generation to finish (up to 3 min), then return what the model answered and what it read to get there: answers, the web-search queries it issued, and every source behind the reply. Answers come back as a list, not one string. ChatGPT sometimes serves a paired-response variant that answers the same question twice and asks which reply you prefer; that returns two entries and neither is more official than the other. Read the length before reading answers[0]. Text is as rendered, so inline widget labels appear as visible text and mathematical notation linearizes lossily. Sources are split by how the answer used them: the pool a web search returned, whether or not the answer drew on it, versus the sources the answer actually surfaced on screen. That split is the point — it separates a page that was never retrieved from one that was read and passed over. A page that was retrieved and then cited appears in both groups, which is signal rather than duplication. Treat one run as a single draw, not a measurement: the model may search differently, or not search at all, on the next run of the same question. Repeat a question before concluding anything from it. Works logged out, where anonymous rate limits fail fast with a descriptive error and conversationId comes back null.

Input

question required

The question/prompt to send as the first message of a new chat.

Output

answers required

Every assistant reply to the question, in the order rendered. Normally one entry. ChatGPT sometimes serves a paired-response variant that answers the same question TWICE and asks which reply you prefer, and then this holds two entries with neither more official than the other. Read the length before reading answers[0].

references required

Every source the stream carried, each tagged with the site's own type. search_result is the pool a web search returned, whether or not the answer used it; grouped_webpages and sources_footnote are what the answer surfaced on screen. A page that was retrieved and then cited appears once under each kind, and that pairing is the signal rather than a duplicate. Empty when the answer links nothing.

conversationId required

Conversation UUID from the /c/<id> URL; null when the chat is anonymous (logged out) and gets no URL. Read only after generation ends, because while the answer streams the URL carries a transient WEB:<uuid> form instead.

webSearchQueries required

Search queries the model issued via its web.run tool during this answer (from the eavesdropped conversation stream). Empty when it didn't search.

Start building not clicking