Docs /
Coverage and limits
Engines
The API serves ChatGPT, Gemini, Perplexity, Copilot, Grok, Google AI Mode, Google Search, and Google News.
Engine status
GET /v1/engines lists each engine you can call, whether it is down or up now, and how many of its newest finished
requests answered: successRate over everyone's, yourSuccessRate over your own. windowRequests says how many
requests each rate reads, and yourRequests how many of yours stand behind your rate. A rate with no request behind it is 100, since nothing
failed. A request that failed because of the request itself, such as an invalid payload, is not counted. The call is free.
{
"windowRequests": 30,
"engines": [
{ "taskType": "CHATGPT", "name": "ChatGPT", "status": "up", "successRate": 96.7, "yourSuccessRate": 100, "yourRequests": 12 }
]
}
An engine is down from the moment almost none of everyone's recent requests answer until most of its newest ones answer again: the same
condition as the outage emails. To hear of each change, set an engine status webhook (see Webhooks).
Countries
country takes an ISO 3166-1 alpha-2 code. GET /v1/countries?model=<engine> returns the list an
engine serves. A country absent from an engine's list is refused with a 400.
| Engine | Countries |
|---|---|
| ChatGPT | 213 countries, plus US states |
| Gemini | 213 countries, plus US states |
| Perplexity | Any country |
| Copilot | Any country |
| Grok | Any country |
| Google AI Mode | 213 countries, down to the city |
| Google Search | 213 countries, down to the city |
| Google News | 71 countries |
Google News serves the 71 countries with a Google News edition: Argentina, Australia, Austria, Bangladesh, Belgium, Botswana, Brazil, Bulgaria, Canada, Chile, China, Colombia, Cuba, Czechia, Egypt, Estonia, Ethiopia, Finland, France, Germany, Ghana, Greece, Hong Kong SAR China, Hungary, India, Indonesia, Ireland, Israel, Italy, Japan, Kenya, Latvia, Lebanon, Lithuania, Malaysia, Mexico, Namibia, Netherlands, New Zealand, Nigeria, Norway, Pakistan, Peru, Philippines, Poland, Portugal, Romania, Russia, Saudi Arabia, Senegal, Serbia, Singapore, Slovakia, Slovenia, South Africa, South Korea, Spain, Sweden, Switzerland, Taiwan, Tanzania, Thailand, Türkiye, Uganda, Ukraine, United Arab Emirates, United Kingdom, United States, Venezuela, Vietnam, and Zimbabwe.
US states
Every engine accepts state, a two-letter US state code such as CA. GET /v1/states?country=US lists
the codes: the 50 states and the District of Columbia (DC). Without country, a state implies "US"; with any other
country it is refused with a 400, and nothing is billed.
ChatGPT and Gemini answer from inside the state, as a person there sees it, in all 50 states and DC.
Every other engine accepts state and answers for the whole US, the same as a request without it.
ChatGPT and Gemini answer a US request that names no state as a person in California sees it.
result.provenance.requestedState echoes the state a request named.
State targeting is best-effort: it steers the market the answer is taken from, not a coordinate, and engines localize by signals beyond the address.
Targeting fields per engine
| Field | Values | Engines | Notes |
|---|---|---|---|
country | ISO 3166-1 alpha-2 | Every engine | Optional on Google Search, Google News and Google AI Mode; required on the rest. |
state | Two-letter code, e.g. CA | Every engine | Implies country "US"; with another country it is a 400. See US states for where it is answered from. |
gl | ISO 3166-1 alpha-2, e.g. us | Google Search, Google News, Google AI Mode | Google's name for country, an alias of the same geography; sending both with different values is a 400. |
location | Free-form place, e.g. Austin,Texas,United States | Google Search, Google AI Mode | City-level targeting. |
uule | Location-name UULE (w+CAIQICI…) | Google Search, Google AI Mode | A pre-built UULE instead of a location name; mutually exclusive with location. The coordinate form (a+…) is refused with a 400. |
hl | Interface language, e.g. fr | Google Search, Google News, Google AI Mode | The UI language the answer is taken in. Without it, the country's own language. |
Google News takes country (or gl), state and hl, not location.
Google Search and Google AI Mode take a city by location or uule, the interface language by hl,
and device. Without location or uule, they are localized to the requested country.
When a request cannot be placed
A request for a country absent from the engine's list, or with a field the engine does not take, is refused with a
400. A request that cannot be placed once accepted fails with 502 EXTERNAL_SERVICE_ERROR. Neither is charged.
Retries of a 400 do not help: pick a listed country or drop the field.