Engine features
Served engines
The API serves ChatGPT, Gemini, Perplexity, Copilot, Grok, Google AI Mode, Google Search, and Google News. Each engine has its own endpoint and its own
response schema; the shared parts (text, sources) have the same names everywhere. This page
lists what each served engine accepts and returns, and which fields come back empty on the answers served today.
Include flags
Flags go in include and add fields to the result. A flag an engine doesn't list is rejected as an unknown field.
ChatGPT
| Flag | Cost and status |
|---|---|
include.html | Free |
include.markdown | Free |
include.rawResponse | Free |
include.searchQueries | Free; empty today |
include.ads | Free; empty today |
include.shopping | Free |
include.rawWire | Free |
include.screenshot | Free |
Gemini
| Flag | Cost and status |
|---|---|
include.markdown | Free |
include.html | Free |
include.rawResponse | Free |
include.rawWire | Free |
include.screenshot | Free |
Perplexity
| Flag | Cost and status |
|---|---|
include.html | Free |
include.markdown | Free |
include.rawResponse | Free |
include.rawWire | Free |
include.screenshot | Free |
Copilot
| Flag | Cost and status |
|---|---|
include.html | Not available (400) |
include.markdown | Free |
include.rawResponse | Free |
include.rawWire | Free |
include.screenshot | Not available (400) |
Grok
| Flag | Cost and status |
|---|---|
include.markdown | Free |
include.html | Free |
include.rawResponse | Free |
include.rawWire | Free |
include.screenshot | Free |
Google AI Mode
| Flag | Cost and status |
|---|---|
include.html | Free |
include.markdown | Free |
include.expandProducts | Not available (400) |
include.googleGoto | Free |
include.rawWire | Free |
include.screenshot | Free |
Google Search
| Flag | Cost and status |
|---|---|
include.html | Free |
include.aioverview | +$0.00071, once per request that returns it |
include.paaAioverview | Free |
include.googleGoto | Free |
include.rawWire | Free |
include.screenshot | Free |
Google News
| Flag | Cost and status |
|---|---|
include.html | Free |
include.rawWire | Free |
include.screenshot | Not available (400) |
Result fields
| Engine | Fields in result | Empty on the answers served today |
|---|---|---|
| ChatGPT | text, markdown, links, sources, searchResults, searchQueries, shoppingCards, inlineProducts, entities, map, images, citationPills, ads, model |
searchQueries, shoppingCards, ads |
| Gemini | text, markdown, links, sources, citationPills, shoppingCards, places, entities, videos, searchQueries, model |
— |
| Perplexity | text, markdown, links, sources, citationPills, related_queries, search_model_queries, videos, images, places, hotels, shopping_cards |
related_queries, search_model_queries, videos, hotels, shopping_cards |
| Copilot | text, markdown, links, sources, citationPills |
— |
| Grok | text, markdown, links, sources, searchQueries, relatedQueries, model |
— |
| Google AI Mode | text, markdown, links, sources, citationPills, places, shoppingCards, inlineProducts, videos, map, ads |
inlineProducts |
| Google Search | organicResults, ads, peopleAlsoAsk, peopleAreSaying, relatedSearches, knowledgeGraph, localResults, shoppingCards, recipes, videos, images, spelling, aioverview |
— |
| Google News | newsResults |
— |
An empty field stays in the schema with its type, so code written against it keeps working. On ChatGPT the brands an
answer names are in text and entities. Today's answers show no merchant cards, so
shoppingCards comes back empty, even with include.shopping.
Targeting
| Engine | Countries | US states | Other request fields |
|---|---|---|---|
| ChatGPT | 213 countries, plus US states | Answers from inside the state | legacy, disableWebSearch, answerDepth |
| Gemini | 213 countries | Accepted; answers for the whole US | answerDepth |
| Perplexity | Any country | Accepted; answers for the whole US | answerDepth |
| Copilot | Any country | Accepted; answers for the whole US | answerDepth |
| Grok | Any country | Accepted; answers for the whole US | answerDepth |
| Google AI Mode | 213 countries, down to the city | Accepted; answers for the whole US | gl, hl, location, uule, device, answerDepth |
| Google Search | 213 countries, down to the city | Accepted; answers for the whole US | url, gl, hl, location, uule, device, pages, answerDepth |
| Google News | 71 countries | Accepted; answers for the whole US | gl, hl, pages, answerDepth |
Country lists per engine are also returned by GET /v1/countries?model=<engine>. See coverage.
Answer depth
Every engine writes one depth of answer. Perplexity answers every request with its Quick Search answer: one search
and a short answer of a few sentences. answerDepth (any, full or
quick) is accepted so existing requests stay valid, and it does not change the answer or the price.