Coverage and limits
Engines
The API serves ChatGPT, Perplexity, Gemini, Microsoft Copilot, Grok, Google AI Mode, Google Search, and Google News.
Engine status is public on the status page, and its raw numbers at status.answerline.dev/status.json.
Countries
country takes an ISO 3166-1 alpha-2 code. GET /v1/countries?model=<engine> returns the list an
engine serves. Where an engine cannot answer from a country, that country is absent from its list and a request for it is
refused instead of answering from somewhere else.
| Engine | Countries |
|---|---|
| ChatGPT | 213 countries. No state targeting yet |
| Perplexity | Any country, plus US states |
| Gemini | 213 countries, plus US states |
| Microsoft Copilot | Any country. No state targeting yet |
| Grok | Any country, plus US states |
| Google AI Mode | 213 countries, down to the city |
| Google Search | 213 countries, down to the city |
| Google News | 71 countries |
Google News publishes an edition in 71 countries, and GET /v1/countries has no
model value for it: 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
state narrows a request to one US state and is only valid with country: "US"
on Perplexity, Gemini, and Grok.
GET /v1/states?country=US lists the codes, the District of Columbia (DC) included.
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 | Required on most endpoints. |
state | Two-letter code, e.g. CA | Perplexity, Gemini, and Grok | Only valid with country "US". |
gl | ISO 3166-1 alpha-2, e.g. us | Google Search, Google News, AI Mode | Google's name for country — an alias, not a second geography; sending both with different values is a 400. |
location | Free-form place, e.g. Austin,Texas,United States | Google Search, AI Mode | City-level targeting. |
uule | Pre-encoded UULE string | Google Search, AI Mode | A pre-built UULE instead of a location name; mutually exclusive with location. |
hl | Interface language, e.g. fr | Google Search, Google News, AI Mode | The UI language the answer is taken in. Without it, the country's own language. |
Google News takes country (or gl) and hl only — no state or location, and no
include.html snapshot (a request asking for one is refused). Google Search and AI Mode take a city by
location or uule, the interface language by hl, and device.
When a request cannot be placed
A request that names a geography the engine cannot serve fails with STATE_UNAVAILABLE (or validation
400 for a field the engine does not take) and is charged nothing — never an answer from a different market.
Retries do not help: pick a listed country or drop the state.