Every URL ChatGPT cites, as structured JSON: the source list with position and publication date, inline citation pills mapped to where they appear in the answer, and the query fan-out ChatGPT ran to research it. The raw material of AI visibility tracking: who gets cited, for what, and why.
4.8 · 33 reviewsSources and citation pills are included in every ChatGPT request. citationPills entries carry a citationPillId so you can group pills rendered from the same chip, plus a position pointer back into result.sources.
import requests
response = requests.post(
"https://api.cloro.dev/v1/monitor/chatgpt",
headers={
"Authorization": "Bearer sk_live_your_api_key_here",
"Content-Type": "application/json"
},
json={
"prompt": "best crm for a 10-person startup",
"country": "US",
"include": {
"searchQueries": True
}
}
)
print(response.json()) {
"success": true,
"result": {
"text": "For a 10-person startup, the CRMs that come up most consistently are...",
"sources": [
{
"position": 1,
"url": "https://example.com/best-crm-startups",
"label": "The 10 Best CRMs for Startups",
"description": "Hands-on comparison of 24 CRMs for early-stage teams",
"footnote": false,
"datePublished": "2026-03-14T00:00:00.000Z"
}
],
"citationPills": [
{
"url": "https://example.com/best-crm-startups",
"label": "The 10 Best CRMs for Startups",
"domain": "example.com",
"citationPillId": 0,
"type": "searchResult",
"position": 1
}
],
"searchQueries": [
"best CRM small startup 2026",
"CRM pricing comparison startups"
]
}
} | Field | Type | Description |
|---|---|---|
| sources[].position | number | Position index of the source in ChatGPT's source list. |
| sources[].url / label / description | string | Cited URL, its article title, and a snippet of the source content. |
| sources[].footnote | boolean | Whether the source appears as a footnote rather than in the primary list. |
| sources[].datePublished | string | Publication date of the source — omitted when ChatGPT doesn't surface one. |
| citationPills[].citationPillId | integer | 0-based identifier shared by all entries from the same inline chip — group by it to reconstruct pills. |
| citationPills[].position | integer | 1-based pointer to the matching entry in result.sources. |
| citationPills[].domain | string | Host extracted from the URL, for grouping and display. |
| citationPills[].type | string | Discriminator for the underlying citation event (e.g. searchResult for inline web citations). |
| citationPills[].datePublished | string | ISO 8601 publication date of the cited source, when present. |
| searchQueries | string[] | Query fan-out ChatGPT emitted while answering — requires include.searchQueries (+2 credits). |
Pick a plan that fits your volume. Price per credit drops as you scale.
Increased concurrency, overages on credits and credit discounts for annual contracts.
Know moreCredit cost per request varies by provider. The rates below apply to async/batch requests; sync requests add a +2 credit surcharge.
ChatGPT full response includes query fan-out, ads, and shopping data. Google News uses the same pricing as Google Search.
Citations are the currency of AI search: if ChatGPT cites your pages when buyers ask category questions, you win the recommendation; if it cites competitors, they do. Sampling citations across your prompt set is the AI-era equivalent of rank tracking.
sources is the source rail — the deduplicated list of pages ChatGPT consulted, with position and metadata. citationPills are the inline chips within the answer text, each pointing back to a source via its position field. Pills tell you which sources actually shaped the visible answer, not just the research set.
Before answering, ChatGPT decomposes your prompt into several web searches. `include.searchQueries: true` (+2 credits) returns them — showing you the intermediate queries you need to rank for to enter ChatGPT's consideration set. See our guide on getting ChatGPT to recommend your website for how to use it.
The OpenAI API is a different product: no consumer web-search pipeline, no source rail, no citation pills, different model behavior. cloro drives the real ChatGPT product and parses what actual users see — which is what your buyers are reading.
A base ChatGPT request (web search enabled) is 5 credits, with sources and citation pills included. Add-ons like query fan-out, shopping, ads, or raw streaming events add a combined +2 credits. Full table on the pricing page.
Yes — ChatGPT's search layer localizes. Pass `country` (and `state` for US state-level targeting, +2 credits) to sample the answer and citation set your market actually sees. Answers are also non-deterministic, so aggregate across repeated samples — see AI visibility tracking.