---
title: "Google AI Mode search"
method: GET
path: "/v1/google/ai-mode/search"
tags: ["Google AI Mode"]
---

# Google AI Mode search

`GET /v1/google/ai-mode/search`

Get AI-generated search results from Google AI Mode.

**Currently returns HTTP 501.** As of 2026 Google has repurposed
the historical ``udm=50`` parameter — it now opens the Visual Search
history prompt, not a dedicated AI Mode surface. There is no
standalone ``/search?udm=50`` URL that returns AI-only content
anymore; AI Overview blocks are rendered inside regular SERPs
instead, gated on query + user + geolocation signals.

**Recommended workaround:** call
``/v1/google/search?q=<query>&ai_overview=true``. The main SERP
endpoint already parses the ``ai_overview`` block when Google
includes one in the response, and the ``ai_overview=true`` flag
automatically chases the deferred ``page_token`` follow-up fetch
when Google serves the overview lazily. That's the exact data this
endpoint was originally meant to return.

This route remains registered so the product catalog, docs, and
SDKs don't break — it will be re-enabled if/when Google ships a
stable dedicated AI Mode surface again.

## Query parameters

- `q` string, required — Search query for AI-generated response
- `gl` string — Country code
- `hl` string — Language code
- `include_html` boolean — Include the raw answer_html body (can be 100s of KB). Set false for just text_blocks + markdown.

## Response `200`

Successful Response

- AiModeResponse — Response for GET /api/v1/ai-mode/search.
  - `text_blocks` AiTextBlock[]
    - `type` string, nullable
    - `snippet` string, nullable
    - `text` string, nullable
    - `level` integer, nullable
    - `header` string[] — Header cells for a table block.
    - `rows` AiTableRow[] — Body rows for a table block.
      - `cells` string[]
  - `references` AiReference[]
    - `title` string, nullable
    - `link` string, nullable
    - `snippet` string, nullable
    - `source` string, nullable
  - `query` string, required
  - `language` string
  - `country` string
  - `markdown` string, nullable — Compact Markdown rendering of the whole answer.
  - `answer_html` string, nullable — Raw answer body HTML (script/style stripped). Omitted when include_html=false.

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/scrapebadger/apis/scrapebadger-account-api.md) · [All operations](https://skmtc.net/scrapebadger/apis/scrapebadger-account-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/scrapebadger/scrapebadger-account-api/revisions/4a1ef8777baf/schema)
