Google AI Overview
Fetch Google's AI Overview plus the full SERP, with cited sources
POST
https://api.anakin.io/v1/wire/taskFetch the AI Overview Google shows above organic results, plus the surrounding SERP — organic results, People-Also-Ask, knowledge panel, and more. Highly geo-dependent. Run it with the google_ai_overview action on POST /v1/wire/task.
Catalog: google_ai_mode · action_id: google_ai_overview · Credits: 2 / call · Auth: none
Request Body
{
"action_id": "google_ai_overview",
"params": { "query": "best CRM for small teams", "country": "us" }
}| Parameter | Type | Description |
|---|---|---|
action_id required | string | Set to google_ai_overview |
params.query required | string | The search query (max 2048 chars) |
params.country | string | 2-letter ISO country for the search locale (239 supported). Default us |
params.location | string | Location override: lat,lng[,radius_m] or a canonical place |
params.uule | string | Ready-made Google UULE cookie value (overrides location) |
params.page | integer | SERP page (1–10). Page 1 = AI Overview + organic. Default 1 |
params.html | boolean | Return a link to the full SERP snapshot instead of inline HTML. Default false |
params.paa_aioverview | boolean | Hydrate People-Also-Ask items with their own AI-Overview markdown. Default false |
params.device | string | User-agent profile (desktop, desktop_chrome, mobile, …). Default desktop |
Code Examples
curl -X POST https://api.anakin.io/v1/wire/task \
-H "X-API-Key: your_api_key" \
-H "Content-Type: application/json" \
-d '{
"action_id": "google_ai_overview",
"params": { "query": "best CRM for small teams", "country": "us" }
}'import requests
res = requests.post(
'https://api.anakin.io/v1/wire/task',
headers={'X-API-Key': 'your_api_key'},
json={'action_id': 'google_ai_overview', 'params': {'query': 'best CRM for small teams', 'country': 'us'}},
)
job_id = res.json()['job_id']const res = await fetch('https://api.anakin.io/v1/wire/task', {
method: 'POST',
headers: { 'X-API-Key': 'your_api_key', 'Content-Type': 'application/json' },
body: JSON.stringify({
action_id: 'google_ai_overview',
params: { query: 'best CRM for small teams', country: 'us' },
}),
});
const { job_id } = await res.json();Response
202 Accepted{ "status": "processing", "job_id": "…", "poll_url": "/v1/wire/jobs/…" }Poll GET /v1/wire/jobs/{id} until status: "completed":
{
"status": "completed",
"credits_used": 2,
"execution_ms": 16797,
"data": {
"status": "ok",
"data": {
"overview_text": "…", "overview_markdown": "…",
"sources": [
{ "url": "https://…", "title": "…", "domain": "…", "snippet": "…", "hostname": "…", "source_type": "web" }
],
"claim_references": [], "organic": [], "featured_snippet": {}, "knowledge_panel": {},
"related_questions": [], "related_searches": [], "top_stories": [], "videos": [],
"products": [], "discussions": [], "what_people_are_saying": [],
"serp_layout": [], "device": "desktop", "page": 1
},
"meta": { "action_id": "google_ai_overview", "catalog_slug": "google_ai_mode", "envelope_version": "v1" }
}
}| Field | Type | Description |
|---|---|---|
data.data.overview_text | string | The AI Overview text (also overview_markdown). null when Google serves no overview |
data.data.sources | array | AI Overview citations — { url, title, domain, snippet, hostname, source_type } |
data.data.claim_references | array | Per-claim source mapping — the sharpest GEO signal |
data.data.organic | array | Organic SERP results |
data.data.related_questions | array | People-Also-Ask items |
data.data.serp_layout | array | Order of SERP modules on the page |
Google doesn't serve an AI Overview for every query/geo — check
overview_textfornullbefore relying on it (the SERP modules are still returned). Uselocation/uulefor city-level targeting. Billed only on success.