Google AI Mode is Google’s conversational search experience: a follow-up-friendly, chat-style answer built on top of Search. Captures come from the live experience in a real browser, then normalize into the exact same Envelope every other surface returns — so one parser reads AI Mode, ChatGPT, Perplexity, and the rest.
Enum: google_ai_mode · Credits: 4 per successful capture · Common evidence: sources, mentions, shopping

What it returns

SectionGoogle AI Mode
answer.text / answer.markdownConversational answer (markdown always populated)
answer.blocks[]Structured blocks with referenceIds into evidence.sources
evidence.sourcesCited and supporting pages
evidence.mentionsEntities named in the answer
evidence.shoppingProduct cards when the query is commercial
provenanceModel label, requested vs. effective region, surface presence
AI Mode leans conversational and commercial. When a query has buying intent, expect evidence.shopping cards alongside the cited evidence.sources. Everything maps to the same fields, so your rendering logic never branches per surface. See Output formats for how text, markdown, and blocks relate.

Request

Add google_ai_mode to surfaces on the standard async endpoint. You get one child per surface × region.
curl -X POST https://api.aisearchapi.dev/v1/search \
  -H "Authorization: Bearer $AISEARCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "best noise-cancelling headphones under $300",
    "surfaces": ["google_ai_mode"],
    "regions": [{ "country": "US" }]
  }'
The async call returns 202 with a parent job and one child id per surface × region:
{
  "jobId": "job_8t2q",
  "status": "processing",
  "children": ["job_8t2q.google_ai_mode.us"]
}
Fetch the child id (dotted) once it completes to get the Envelope:
curl https://api.aisearchapi.dev/v1/jobs/job_8t2q.google_ai_mode.us \
  -H "Authorization: Bearer $AISEARCH_API_KEY"

Sync alias

For a single surface and region, the alias POST /v1/search/google_ai_mode is sync-by-default and returns the Envelope inline (200). It accepts prompt (an alias of query) and a flat country.
curl -X POST https://api.aisearchapi.dev/v1/search/google_ai_mode \
  -H "Authorization: Bearer $AISEARCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "best noise-cancelling headphones under $300",
    "country": "US"
  }'

Envelope (trimmed)

Every surface returns this shape. Below is a Google AI Mode capture with a commercial query, so evidence.shopping is populated alongside sources and mentions.
{
  "job": {
    "id": "job_8t2q.google_ai_mode.us",
    "surface": "google_ai_mode",
    "status": "completed"
  },
  "provenance": {
    "surfacePresent": true,
    "region": {
      "requested": { "country": "US" },
      "effective": { "country": "US" }
    },
    "model": {
      "providerId": "google",
      "observedLabel": "AI Mode",
      "inferred": false,
      "confidence": 0.98
    }
  },
  "answer": {
    "markdown": "For most people under $300, the **Sony WH-1000XM5** leads on cancellation and comfort, while the **Bose QuietComfort** is the pick if you want a lighter clamp [1][2].",
    "text": "For most people under $300, the Sony WH-1000XM5 leads on cancellation and comfort, while the Bose QuietComfort is the pick if you want a lighter clamp.",
    "blocks": [
      {
        "type": "paragraph",
        "text": "The Sony WH-1000XM5 leads on cancellation and comfort.",
        "referenceIds": ["s1"]
      },
      {
        "type": "paragraph",
        "text": "The Bose QuietComfort is the pick for a lighter clamp.",
        "referenceIds": ["s2"]
      }
    ]
  },
  "evidence": {
    "sources": [
      {
        "id": "s1",
        "url": "https://example.com/sony-wh1000xm5-review",
        "title": "Sony WH-1000XM5 Review",
        "role": "primary",
        "cited": true,
        "charRanges": [[0, 62]],
        "quote": "Class-leading noise cancellation and all-day comfort."
      },
      {
        "id": "s2",
        "url": "https://example.com/bose-qc-review",
        "title": "Bose QuietComfort Review",
        "role": "supporting",
        "cited": true,
        "charRanges": [[64, 118]],
        "quote": "A lighter clamp that stays comfortable for hours."
      }
    ],
    "mentions": ["Sony WH-1000XM5", "Bose QuietComfort"],
    "shopping": [
      {
        "title": "Sony WH-1000XM5 Wireless Headphones",
        "url": "https://example.com/shop/sony-wh1000xm5",
        "price": "$298.00",
        "merchant": "ExampleStore"
      }
    ]
  }
}
If provenance.surfacePresent is false and the child carries a surface_absent warning, AI Mode returned nothing for that query. The job still completes with an empty answer — parse it the same way and check surfacePresent before rendering.

Notes

Each successful google_ai_mode capture costs 4 credits, charged only on success. You start with 500 free credits.
Pass regions: [{ country, city?, language? }] (ISO-3166 alpha-2, default US). Each surface × region produces one child. Compare provenance.region.requested with effective to see whether the region was honored exactly. See Regions.
AI Mode, ChatGPT, Claude, Perplexity, Gemini, Copilot, and Google AI Overview all normalize to this Envelope. Write your rendering once against answer + evidence and every surface flows through it.

Output formats

How answer.text, answer.markdown, and answer.blocks[] relate.

Search endpoint

The full async request body, fields, and lifecycle.