Skip to main content
POST
Monitor ChatGPT Responses
Extract structured data from ChatGPT: shopping cards, brand entities, map entries, raw response data, and query fan-out.
Web search enabledThis endpoint enables ChatGPT’s web search mode on every request, so responses include current information from the web with source citations.

Request parameters

Uses common parameters. All ChatGPT-specific include.* flags are listed in the auto-generated request schema below.
Additional credit costEnabling any of include.rawResponse, include.searchQueries, include.ads, or include.shopping (or any combination) adds +2 credits to the base cost.

Response objects

Response schema

Includes common response fields plus:

Common questions

How does cloro retrieve ChatGPT responses?

cloro does not call the ChatGPT API. Each request runs through a real browser session against ChatGPT’s web interface, routed through a proxy in the country (and, where supported, state) you specify. The result.* fields are extracted from that page; the raw SSE events are available via include.rawResponse: true. See How does cloro retrieve data from AI providers? for the implications (model routing, auth walls, geo behaviour).

Can I get the search queries that ChatGPT uses?

Yes. Set include.searchQueries: true to get the fan-out queries ChatGPT runs internally. The same flag also returns result.mapSearchQueries: the queries ChatGPT sends to the maps tool to build the map block, separate from the web-search fan-out in result.searchQueries.

Are query fan-outs available for all ChatGPT responses?

ChatGPT uses gpt-5-3 and gpt-5-3-mini that include fan-out queries; newer models may not include explicit fan-outs. ChatGPT automatically selects which model to use for each request, so we cannot control the presence of query fan-outs.

Are query fan-outs available for other providers?

For a complete comparison of query fan-out support across all providers, see the Providers & pricing guide.

Why is a fan-out query a single long string instead of separated keywords?

That is expected. ChatGPT’s search model decides the shape of each fan-out query, and often emits a single long natural-language query rather than a keyword list. Length and structure vary between runs, even for the same prompt, and cloro returns the queries exactly as ChatGPT generates them. This LinkedIn post by Stefan Landwehr documents the same behaviour.

Why aren’t shopping cards appearing in my responses?

Shopping cards only appear when the prompt is related to products or shopping:
Even shopping queries don’t always return cards — it depends on what ChatGPT finds and how it formats the response.

Which providers support shopping cards?

For a complete comparison of shopping card support across all providers, see the Providers & pricing guide.

My non-English prompts are returning English fan-out queries. Is that expected?

Yes. ChatGPT may generate some or all of its internal search queries (result.searchQueries) in English regardless of prompt language — a roughly 50/50 English/local-language split has been observed. This is upstream behavior; cloro returns the queries as generated. For multilingual GEO monitoring, filter or group by query language.

Why are result.model, searchQueries, or mapSearchQueries sometimes empty?

OpenAI serves a share of logged-out ChatGPT traffic through a mobile-web response format that streams the answer as HTML fragments instead of the usual event stream. Those responses carry no stream metadata, so result.model, result.searchQueries, and result.mapSearchQueries come back empty and result.sources is shorter. The answer text / markdown and inline citationPills are unaffected. “Mobile-web” is OpenAI’s response format, not the requesting device or any parameter you send. OpenAI decides the format per request, so identical requests can land in either — treat these fields as possibly empty. See the 21st July 2026 changelog entry for the full breakdown.

What’s the difference between shopping cards and inline products?

Shopping cards are grouped collections of products displayed together (like a carousel):
  • Contain multiple products
  • Include category tags
  • For browsing multiple options
Inline products are individual product references:
  • Single product per entry
  • Include pricing, offers, images, and ratings
  • Can be embedded inline in text, comparison tables, or featured displays
  • Have rendering hints (inline, hero, block)
Both are extracted only when include.shopping: true is set in the request.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json

Request parameters for monitoring ChatGPT responses

prompt
string
required

The prompt to send to ChatGPT

Required string length: 1 - 10000
Example:

"What do you know about Acme Corp?"

country
string
required

Country/region code for localized response

Example:

"US"

include
object

Optional flags for including additional response formats

Example:
state
string

State code for sub-country geo-targeting (e.g., "CA"). Only valid with country "US".

Required string length: 2
Pattern: ^[A-Z]{2}$
Example:

"CA"

Response

successful ChatGPT monitoring response

success
boolean
required
Example:

true

result
object
required

ChatGPT's response data