HasData
Back to all posts

Get Clean Google AI Mode Results with the HasData API

Google now answers many queries itself. Between “AI Overviews” on the classic results page and the deeper, conversational “AI Mode”, the most valuable information is increasingly inside AI-generated responses.

Google AI Mode answering a query conversationally instead of returning a list of links

That content was never designed for programmatic access, which is the gap this launch closes.

What the HasData API Gives You

The HasData API for Google AI Mode returns an AI Mode response as structured JSON from one GET request.

  • The full response, in blocks. The complete AI-generated text plus the elements around it, cited web sources, comparison tables, and local packs for location-based queries.
  • A stable schema. Every query returns the same documented object, the one in the field table below, so a parser written against Google’s markup stops being something you maintain.
  • One credential for a run of any size. The same API key answers a handful of brand keywords and a large query set, with no per-query setup between them.

AI Mode vs AI Overview

These are two different surfaces, and they produce different data. An AI Overview is the summary Google places on top of the classic results page for some queries, a few paragraphs with citations, while the rest of the SERP stays visible under it. AI Mode is a separate conversational surface (the udm=50 URL in the response metadata) that replaces the results page entirely, answers at length, holds follow-up questions, and builds its own elements like comparison tables and local packs. Tracking one tells you little about the other. Which queries even get an Overview, and who it cites, is its own dataset, the one our AI Overview study measures by search intent, and HasData ships a separate AI Overview endpoint for that surface. This API covers the AI Mode side.

How It Works

One GET request reaches AI Mode and returns the answer as structured JSON.

The API playground interface for HasData's Google AI Mode SERP API, where users can enter search queries and execute requests.

Google AI Mode API playground interface

The response below came from a comparison question, “What are the key differences between Google’s Gemini 1.5 Pro and OpenAI’s GPT-4o?”, which is the shape of query that produces the most block types at once.

Step 1. The Request

All you need to do is send your query to our endpoint. Here is an example using cURL:

curl --request GET \
	--url 'https://api.hasdata.com/scrape/google/ai-mode?q=what+are+the+key+differences+between+Google+Gemini+1.5+Pro+and+OpenAI+GPT-4o' \
	--header 'Content-Type: application/json' \
	--header 'x-api-key: YOUR-API-KEY'

The query travels URL-encoded in q, and the key goes in the x-api-key header.

Step 2. The Response

The API returns a structured JSON object. The core content is in the textBlocks array, which segments the AI’s answer into logical paragraphs.

{
  "requestMetadata": {
    "id": "72f82c5f-1ddd-4ecb-b4c7-54cb563cab84",
    "status": "ok",
    "html": "https://files.hasdata.com/.../page.html",
    "json": "https://files.hasdata.com/.../page.json",
    "preview": "https://files.hasdata.com/.../preview.jpeg",
    "url": "https://www.google.com/search?q=what+are+the+key+differences+between+Google+Gemini+1.5+Pro+and+OpenAI+GPT-4o&udm=50"
  },
  "textBlocks": [
    {
      "type": "paragraph",
      "snippet": "The key differences between Google Gemini 1.5 Pro and OpenAI GPT-4o are:"
    },
    {
      "type": "paragraph",
      "snippet": "Context Window:",
      "snippetHighlightedWords": ["Context Window:"]
    },
    {
      "type": "list",
      "list": [
        {"snippet": "Gemini 1.5 Pro: Supports up to 1 million tokens, allowing it to process large amounts of data."},
        {"snippet": "GPT-4o: Has a context window of 128,000 tokens."}
      ]
    },
    {
      "type": "paragraph",
      "snippet": "Performance and Multimodality:",
      "snippetHighlightedWords": ["Performance and Multimodality:"]
    },
    {
      "type": "list",
      "list": [
        {"snippet": "Gemini 1.5 Pro: Excels in complex reasoning, creative writing, and coding, and handles text, code, images, video, and audio."},
        {"snippet": "GPT-4o: Performs well in multilingual tasks and multimodal comprehension, especially with vision and audio. It often outperforms Gemini 1.5 Pro on various benchmarks."}
      ]
    },
    {
      "type": "paragraph",
      "snippet": "Cost:",
      "snippetHighlightedWords": ["Cost:"]
    },
    {
      "type": "list",
      "list": [
        {"snippet": "Gemini 1.5 Pro: Has a tiered pricing structure that is more affordable for smaller inputs (under 128k tokens)."},
        {"snippet": "GPT-4o: Provides cost-effectiveness, especially for larger volumes."}
      ]
    }
  ],
  "references": [
    {
      "link": "https://www.promptlayer.com/blog/gemini-1-5-pro-vs-chatgpt-4o-choosing-the-right-model#:~:text=Performance:%20GPT%2D4o%20beats%20Gemini,suited%20for%20extremely%20long%20inputs.",
      "title": "Gemini 1.5 Pro vs ChatGPT 4o: Choosing the right model",
      "snippet": "Nov 1, 2024 — Choosing Between Gemini 1.5 Pro and GPT-4o. OpenAI and Google have been releasing better and better frontier large language models (LLMs) in 2024. The newest ve...",
      "source": "PromptLayer",
      "index": 1
    },
    {
      "link": "https://www.appaca.ai/resources/llm-comparison/gpt-4o-vs-gemini-15-pro#:~:text=In%20summary,%2D4o%20(October%202023).",
      "title": "GPT-4o vs Gemini 1.5 Pro: Which AI Model Is Right for You? - Appaca",
      "snippet": "GPT-4o: Strengths and Advantages. GPT-4o is OpenAI's high-intelligence flagship model, designed for complex, multi-step tasks. It offers advanced capabilities a...",
      "source": "Appaca",
      "index": 3
    }
  ]
}

The shape stays the same for every query, so a parser written against these fields covers all of it:

FieldTypeWhat it holds
requestMetadataobjectid, status, and the exact google.com URL that was answered, where udm=50 is the AI Mode surface, plus stored copies of the raw html, json and a preview image
textBlocksarraythe AI answer split into blocks, in reading order
textBlocks[].typestringparagraph, heading, list, table, or localResults
textBlocks[].snippetstringthe text of a paragraph or heading block
textBlocks[].snippetHighlightedWordsarraythe fragments Google bolded inside the snippet
textBlocks[].listarrayitems of a list block, each with its own snippet
textBlocks[].rowsarrayrows of a table block, first row is the header
textBlocks[].localResultsarrayplaces in a local pack, with title, address, rating, reviews, and openState
referencesarraythe cited sources, each with index, title, source and a thumbnail. A link is present on most entries but not all, and some carry a snippet instead, so read both with a default rather than by subscript

Which block types actually appear depends on the query. A comparison question tends to produce table blocks, a local intent produces localResults, and a plain informational question can come back as headings and paragraphs only.

Google presents part of its answers in non-text formats, and the API captures those too. For a comparative query like “best laptops for students”, Google’s AI often generates a summary table.

Google AI Mode displaying a comparison table of features for different laptop models

Screenshot of Google AI Mode displaying a comparison table of features for different laptops models.

Our API identifies and parses this element directly. Instead of just getting a block of text, you receive a structured table object:

{
  "type": "table",
  "rows": [
    [
      "Feature",
      "Apple MacBook Air (M3, 2024)",
      "Asus Zenbook 14 OLED",
      "Microsoft Surface Pro 11th Edition (2024)",
      "Acer Swift Go 14 (2024)",
      "Lenovo ThinkPad X1 Carbon Gen 12",
      "Acer Aspire Go 15"
    ],
    [
      "Best For",
      "Overall, Creative students",
      "Overall, Performance/Display",
      "Note-takers, 2-in-1 users",
      "Mid-Range, Value",
      "Business, Portability",
      "Budget"
    ],
    [
      "CPU",
      "Apple M3",
      "Intel Core Ultra 7 155H",
      "Qualcomm Snapdragon X Elite",
      "Intel Core Ultra 5/7",
      "Intel Core Ultra 7 155H",
      "Intel Core i3"
    ],
    [
      "GPU",
      "Integrated (10-core)",
      "Integrated (Intel Arc)",
      "Integrated (Qualcomm Adreno)",
      "Integrated (Intel Arc/Iris Xe)",
      "Integrated (Intel Arc)",
      "Integrated"
    ],
    [
      "Display",
      "13.5-inch Liquid Retina",
      "14-inch OLED touchscreen",
      "13-inch OLED PixelSense Flow",
      "14-inch IPS/OLED",
      "14-inch OLED (120Hz)",
      "15.6-inch Full HD"
    ],
    [
      "Battery Life",
      "Excellent (15+ hours)",
      "Good (approx. 16 hours)",
      "Long (e.g., 10 hours)",
      "Decent (approx. 11 hours)",
      "Middling (with OLED)",
      "Approx. 12 hours"
    ],
    [
      "Weight",
      "2.7 pounds (13-inch)",
      "2.82 pounds",
      "1.97 pounds (without keyboard)",
      "3.1 pounds",
      "2.42 pounds",
      "Not specified"
    ],
    [
      "Starting Price",
      "$1,099",
      "$849 (at Walmart)",
      "$999.99 (currently discounted)",
      "Around $700 (with OLED)",
      "$1,424.25 (discounted)",
      "$299"
    ]
  ]
}

For a location-based query like “italian restaurants near me”, the API extracts the businesses listed in the AI-driven local pack.

Google AI Mode response showing a local pack listing Italian restaurants with ratings and addresses

Screenshot of a Google AI Mode response showing a local pack listing several Italian restaurants with their ratings and addresses.

You get a clean localResults object containing actionable data:

{
  "type": "localResults",
  "localResults": [
    {
      "position": 1,
      "title": "Siragusa's Taste of Italy",
      "thumbnail": "https://lh3.googleusercontent.com/p/AF1QipMs4Qt83-h19YB6S6jX7-AK4wXsGYHI01P8Orfo=w300-h224-n-k-no",
      "address": "4115 S Redwood Rd",
      "openState": "Open",
      "reviews": 2200,
      "rating": 4.4,
      "type": "Italian"
    },
    {
      "position": 2,
      "title": "La Dolce Vita Ristorante Italiano",
      "thumbnail": "https://lh3.googleusercontent.com/p/AF1QipPxB7aSGdakj5B9uuvWJYdhVGJlDiBpqmDrxNKH=w300-h225-n-k-no",
      "address": "61 N 100 E",
      "openState": "Open",
      "reviews": 1200,
      "rating": 4.2,
      "type": "Italian"
    },
    {
      "position": 3,
      "title": "Stoneground Italian Kitchen",
      "thumbnail": "https://lh3.googleusercontent.com/gps-cs-s/AC9h4nqj_8cV66BCLW346c6zDsVQHSz-wrdvxTA1fdpsnVSmh4T_1sMhr2FecC515OYBIQOiMYermmQHX2srRdDCiimpzlZpAL7TaSgk5W3Shs9_oiw6VYOsGZ_PeXANV0IW7IXr02P8Xg=w300-h400-n-k-no",
      "address": "249 E 400 S",
      "openState": "Open",
      "reviews": 1100,
      "rating": 4.5,
      "type": "Italian"
    },
    {
      "position": 4,
      "title": "Bartolo's Sugar House",
      "thumbnail": "https://lh3.googleusercontent.com/p/AF1QipP2-JdihMmXB1zaiPIsNc29DWUrNeEBrcKvWYYR=w300-h168-n-k-no",
      "address": "1270 S 1100 E",
      "openState": "Open",
      "reviews": 610,
      "rating": 4.4,
      "type": "Italian"
    }
  ]
}

Ratings, review counts, and addresses arrive ready for a spreadsheet, with no Maps scraping involved.

Practical Use Cases

The jobs that come up most often with this data:

  • Brand monitoring reads how Google’s AI describes your brand and products in its direct answers.
  • Competitive intelligence reads how it positions you against competitors on strengths, weaknesses and features.
  • Content briefs come out of querying AI Mode for a topic summary and its cited sources.
  • RAG pipelines take the summarized answer as context for your own models.

Get Started

Three steps get a first response back.

  1. Get an API key by signing up.
  2. Read the quickstart for the parameters.
  3. Send the cURL request above with your key in place of the placeholder.
Sergey Ermakovich
Sergey Ermakovich
Sergey is the Co-founder and CMO at HasData, a web scraping API handling billions of requests. He specializes in web data extraction infrastructure, large-scale scraping reliability, and technical SEO. Sergey writes extensively on headless browser orchestration, API development, and scaling data pipelines for enterprise applications.
Articles

Might Be Interesting