Extract ChatGPT
Send a prompt to ChatGPT and receive back the assistant's answer along with the structured elements that surround it — cited sources, shopping cards, inline products, recognized entities, map results, citation pills, and sponsored placements.
Overview
This endpoint runs a single prompt against ChatGPT in a chosen region and returns a normalized view of everything the model surfaced. Beyond the plain answer text, cloro parses out the auxiliary blocks ChatGPT renders — the reference list, product showcases, entity mentions, local map entries, and any ads — so you can track how a brand or topic is represented across AI answers. Optional flags let you opt into heavier payloads such as raw streaming events, rendered HTML, or the internal search queries the model issued.
Request parameters
| Field | Type | Description |
|---|---|---|
prompt | string (required) | The question or instruction to send to ChatGPT. Must be between 1 and 10000 characters. |
country | string (required) | Two-letter region code (for example US) used to localize the response. |
include | object | Toggles for extra response payloads. Each key defaults to false. |
include.html | boolean | When true, returns a hosted URL to the rendered HTML of the answer. |
include.markdown | boolean | When true, includes the answer as Markdown text. |
include.rawResponse | boolean | When true, includes the raw streaming event objects emitted by the model. |
include.searchQueries | boolean | When true, includes the web search queries ChatGPT ran to answer the prompt. |
include.ads | boolean | When true, includes any sponsored placements shown alongside the answer. |
include.shopping | boolean | When true, includes shopping cards and inline product blocks. |
Response fields
| Field | Type | Description |
|---|---|---|
success | boolean | Indicates whether the request completed successfully. |
result | object | Container for the parsed ChatGPT response. |
result.text | string | The assistant's answer as plain text. |
result.sources | array | Reference list backing the answer. Each item carries position, url, label, description, footnote, and an optional datePublished. |
result.html | string | Hosted URL to the rendered HTML page. Present only when requested. |
result.markdown | string | Markdown rendition of the answer. Present only when requested. |
result.rawResponse | array | Raw streaming event objects. Present only when requested. |
result.searchQueries | array | Search queries the model issued. Present only when requested. |
result.model | string | Identifier of the model that produced the answer. |
result.shoppingCards | array | Grouped product showcases with tags, product details, offers, and ratings. |
result.inlineProducts | array | Individual products rendered inline within the answer. |
result.entities | array | Recognized entities, each with a type and name. |
result.map | array | Local map entries with names, addresses, coordinates, and ratings. |
result.citationPills | array | Compact citation chips linking to referenced content. |
result.ads | array | Sponsored placements grouped by brand. |
Response example
{
"success": true,
"result": {
"text": "Acme Corp is a diversified manufacturer best known as a running gag in classic animated shorts, though several real companies also use the name.",
"sources": [
{
"position": 1,
"url": "https://example.com/acme-overview?utm_source=chatgpt.com",
"label": "Acme Corp: Company Overview",
"description": "A summary of Acme Corp's history, products, and market presence.",
"footnote": false,
"datePublished": "March 4, 2025"
},
{
"position": 2,
"url": "https://example.com/acme-history?utm_source=chatgpt.com",
"label": "The History of Acme",
"description": "How the Acme name became a cultural reference point.",
"footnote": true
}
],
"model": "gpt-5",
"entities": [
{ "type": "organization", "name": "Acme Corporation" }
],
"citationPills": [
{
"url": "https://example.com/acme-overview",
"label": "Acme Corp: Company Overview",
"description": "A summary of Acme Corp's history and products.",
"domain": "example.com",
"datePublished": "2025-03-04",
"citationPillId": 0,
"type": "searchResult",
"position": 1
}
]
}
}
Notes
- Optional blocks such as
html,markdown,rawResponse,searchQueries,ads, and shopping data appear only when the matchingincludeflag is set totrue. - Authenticate every request with a bearer token in the
Authorizationheader and sendContent-Type: application/json. - Hosted asset URLs (for example rendered HTML) are served from cloro storage and may expire; download anything you need to retain.
- Questions about access or quotas can be sent to [email protected].