ChatGPT Search API
Ask ChatGPT a web-grounded question and receive an answer with source citations. ChatGPT composes each answer per request, so the same prompt returns different wording and a different source set.
$1.80/1k req, pay per request, no subscription.
{"title": "The 5 Best Budget Robot Vacuums of 2026","url": "https://www.rtings.com/vacuum/reviews/best/robot/budget","answerPosition": 1}
Pricing and providers
ChatGPT Search API pricing: one API, 3 interchangeable providers
The cheapest provider serves first. If it fails, the next one takes over in the same call.
Try it
Get ChatGPT search in one request
This sample shows 31 of 50 fields. See every field
{
"found": true,
"data": {
"prompt": "What's the best budget robot vacuum for pet hair in 2026?",
"answer": "For pet hair on a budget, the Roborock Q5 Pro and the Eufy X10 Pro Omni are the two most recommended models this year. The Roborock Q5 Pro pairs strong 5,500Pa suction with a self-emptying dock for under $400, while the Eufy X10 Pro Omni adds mopping and a wash-and-dry base for closer to $600. Reviewers consistently flag both as better at pulling hair off carpet than cheaper sub-$200 models.",
"answerMarkdown": "For pet hair on a budget, the **Roborock Q5 Pro** and the **Eufy X10 Pro Omni** are the two most recommended models this year. The Roborock Q5 Pro pairs strong 5,500Pa suction with a self-emptying dock for under $400, while the Eufy X10 Pro Omni adds mopping and a wash-and-dry base for closer to $600. Reviewers consistently flag both as better at pulling hair off carpet than cheaper sub-$200 models.",
"webSearchTriggered": true,
"model": "gpt-5-search",
"searchQueries": [
"best budget robot vacuum pet hair 2026",
"roborock q5 pro vs eufy x10 pro omni"
],
"citations": [
{
"title": "The 5 Best Budget Robot Vacuums of 2026",
"url": "https://www.rtings.com/vacuum/reviews/best/robot/budget",
"answerPosition": 1
},
{
"title": "The Best Robot Vacuum for Pet Hair",
"url": "https://www.wirecutter.com/reviews/best-robot-vacuum/",
"answerPosition": 2
}
],
"searchResults": [
{
"url": "https://www.rtings.com/vacuum/reviews/best/robot/budget",
"title": "The 5 Best Budget Robot Vacuums of 2026",
"cited": true
},
{
"url": "https://www.wirecutter.com/reviews/best-robot-vacuum/",
"title": "The Best Robot Vacuum for Pet Hair",
"cited": true
},
{
"url": "https://www.reddit.com/r/robotvacuums/comments/budget_pet_hair",
"title": "Budget robot vacuum recs for pet hair?",
"cited": false
}
],
"shoppingCards": [
{
"title": "Roborock Q5 Pro Robot Vacuum",
"price": 379.99,
"currency": "USD",
"merchants": "Amazon",
"url": "https://www.amazon.com/dp/B0CQ5PRO01",
"image": "https://m.media-amazon.com/images/I/61Q5ProVacuum.jpg",
"rating": 4.5,
"description": "5,500Pa suction with self-empty dock"
},
{
"title": "Eufy X10 Pro Omni",
"price": 599.99,
"currency": "USD",
"merchants": "Best Buy",
"url": "https://www.bestbuy.com/site/eufy-x10-pro-omni/6591234.p",
"image": "https://pisces.bbystatic.com/image2/eufy-x10-pro.jpg",
"rating": 4.6,
"description": "Mopping and wash-and-dry base station"
}
],
"entities": [
{
"title": "Roborock",
"category": "Company",
"url": "https://us.roborock.com",
"domain": "roborock.com"
},
{
"title": "Eufy",
"category": "Company",
"url": "https://www.eufy.com",
"domain": "eufy.com"
}
],
"createdUtc": 1780000000
}
}Full parameter and response reference - every field, type, and example for this endpoint.
Reference
One request, one response shape.
Every field you send and every field you get back, each with a real example.
Last verified 2026-11-14 · uptime and latency measured over 30d
Request body
JSON, posted to this endpoint.
- promptstring
What's the best budget robot vacuum for pet hair in 2026?
Question or research prompt for ChatGPT to answer using web search.
- countrystring
US
ISO-3166 alpha-2 country to ask from, e.g. US, GB, DE. ChatGPT localizes both the pages it retrieves and the answer it writes, so this is the difference between what a US buyer and a UK buyer are told.
- requireAdsboolean
Serve only from a source that can return sponsored placements shown with the answer. One source currently qualifies, so the request cannot fall back when it is unavailable.
- requireEntitiesboolean
Serve only from a source that can return brands and other named entities recognized in the answer. One source currently qualifies, so the request cannot fall back when it is unavailable.
- requireFieldsarray
Optional; omit it and routing is unchanged, with the cheapest source serving. Name the output fields this request must be able to return, for example `cited` or `ads`, and it is served only by a source that returns every one of them. Fields you do not name are still returned whenever the serving source has them. This can raise your price: when the cheapest source cannot return a named field, a dearer source serves, and you are quoted and charged its price. A named field can still be absent on a result that genuinely lacks it. Naming a combination that no single source returns together is refused as invalid input, with no charge.
- requirePlacesboolean
Serve only from a source that can return places shown with the answer. Leaving this off still returns places whenever the source that answered can. Turning it on selects the single source that guarantees them, which costs more and has nothing to fall back to if it is unavailable.
- requireShoppingCardsboolean
true
Serve only from a source that can return shopping cards shown with the answer. Leaving this off still returns shopping cards whenever the source that answered can. Turning it on selects the single source that guarantees them, which costs more and has nothing to fall back to if it is unavailable.
- webSearchenum
force
Whether to insist ChatGPT browses the web. force instructs it to search and is the default; auto lets ChatGPT decide, which is cheaper and answers from memory roughly half the time. Check webSearchTriggered for what actually happened - an answer written without a search is not web-grounded.
Response
JSON, one example value per field.
Sponsored placements ChatGPT displayed with the answer. null means the source that answered cannot report ads; an empty array means none were shown.
- advertiserNamestringcan require
Advertiser name.
- advertiserUrlstringcan require
Advertiser URL, tracking parameters stripped.
- domainstringcan require
Advertised domain.
- imagestring
Sponsored image URL.
- snippetstringcan require
Sponsored placement text.
- titlestring
Sponsored placement title.
- urlstring
Sponsored destination URL, tracking parameters stripped.
The normalized answer and citations, or null when no answer was found.
- answerstring
For pet hair on a budget, the Roborock Q5 Pro and the Eufy X10 Pro Omni are the two most recommended models this year. The Roborock Q5 Pro pairs strong 5,500Pa suction with a self-emptying dock for under $400, while the Eufy X10 Pro Omni adds mopping and a wash-and-dry base for closer to $600. Reviewers consistently flag both as better at pulling hair off carpet than cheaper sub-$200 models.
The web-grounded answer as text. Populated whenever the provider has data for the entity.
- answerMarkdownstring
For pet hair on a budget, the **Roborock Q5 Pro** and the **Eufy X10 Pro Omni** are the two most recommended models this year. The Roborock Q5 Pro pairs strong 5,500Pa suction with a self-emptying dock for under $400, while the Eufy X10 Pro Omni adds mopping and a wash-and-dry base for closer to $600. Reviewers consistently flag both as better at pulling hair off carpet than cheaper sub-$200 models.
The answer in Markdown when the engine returns a Markdown rendering, otherwise the same text as answer. Populated whenever the provider has data for the entity.
- createdUtcnumbercan require
1780000000
UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. null means the source that answered does not report when it answered.
- modelstringcan require
gpt-5-search
The ChatGPT model that produced the answer. null means the source that answered does not report it, which is not the same as an unknown model.
- promptstring
What's the best budget robot vacuum for pet hair in 2026?
The prompt answered by ChatGPT.
- searchQueriesstring[]can require
The web search queries ChatGPT ran to ground its answer. null means the source that answered cannot report them; an empty array means it searched with none recorded.
- webSearchTriggeredbooleancan require
true
Whether ChatGPT actually ran a web search before answering. ChatGPT decides this per session, and an answer written without one is not web-grounded. null means the source that answered cannot report it, which is not the same as false.
Sources cited by the answer. Populated whenever the provider has data for the entity.
- answerPositionintegercan require
1
One-based answer section where ChatGPT cited this source. null means the source that answered cannot report the position.
- titlestring
The 5 Best Budget Robot Vacuums of 2026
Source page title when supplied by the search engine.
- urlstring
https://www.rtings.com/vacuum/reviews/best/robot/budget
Source page URL.
Brands and other named entities recognized in the answer. null means the source that answered cannot report them; an empty array means none were identified.
- categorystringcan require
Company
Entity category.
- domainstringcan require
roborock.com
Entity domain.
- titlestring
Roborock
Entity name.
- urlstring
https://us.roborock.com
Entity URL, tracking parameters stripped.
Places and local businesses ChatGPT displayed with the answer. null means the source that answered cannot report them; an empty array means none were shown.
- addressstringcan require
Place address as displayed.
- categorystringcan require
Place category shown by ChatGPT.
- descriptionstringcan require
Place description shown by ChatGPT.
- namestringcan require
Place or business name.
- phonestringcan require
Place phone number as displayed.
- positionintegercan require
One-based position in the places block.
- ratingnumber
Place rating when the source reports one.
- reviewCountintegercan require
Number of reviews behind the displayed rating.
- websiteUrlstringcan require
Place website URL with tracking parameters stripped; an id parameter is kept, since a page such as Facebook profile.php needs it.
Pages ChatGPT retrieved while answering. A SUPERSET of citations: a page can be read and not cited. null means the source that answered cannot report them.
- citedbooleancan require
true
Whether this retrieved page made it into citations. false means ChatGPT read the page and chose not to cite it, which is a different and more actionable fact than the page being absent.
- titlestring
The 5 Best Budget Robot Vacuums of 2026
Title of the retrieved page, empty when the source did not send one.
- urlstring
https://www.rtings.com/vacuum/reviews/best/robot/budget
Canonical URL of the retrieved page, tracking parameters stripped.
Products ChatGPT displayed with the answer. null means the source that answered cannot report shopping cards; an empty array means none were shown.
- currencystringcan require
USD
ISO 4217 currency code when the source reports it.
- descriptionstringcan require
5,500Pa suction with self-empty dock
Product description shown on the shopping card.
- imagestring
https://m.media-amazon.com/images/I/61Q5ProVacuum.jpg
Product image URL.
- merchantsstring
Amazon
Merchant name shown on the shopping card.
- pricenumber
379.99
Displayed product price as a number when the source reports one.
- ratingnumber
4.5
Product rating when the source reports one.
- titlestring
Roborock Q5 Pro Robot Vacuum
Product name shown by ChatGPT.
- urlstring
https://www.amazon.com/dp/B0CQ5PRO01
Product page URL with its query kept, since the query can name the product variant (e.g. color and size).
- foundboolean
true
Whether ChatGPT returned a web-grounded answer.
- reason"not_found"
Present only when `found` is false, and says why there is no result. `not_found`: the source states the target does not exist, or returned nothing for it. A `found: false` answer is a successful call, not an error, and `costUsd` is what it actually cost.
FAQ
About the ChatGPT Search API
The AnyAPI ChatGPT Search API returns ChatGPT search data as normalized JSON from one POST call to /v1/run/chatgpt.search. Ask ChatGPT a web-grounded question and receive an answer with source citations. ChatGPT composes each answer per request, so the same prompt returns different wording and a different source set. AnyAPI routes each request across 3 sources and falls back automatically when one fails. It costs from $1.80 per 1,000 requests, in US dollars with no subscription and no monthly minimum. Over the last 30 days, 99.7% of ChatGPT search calls through AnyAPI succeeded, with a median response time of 24.2 seconds across 1,977 measured calls.