AnswerLine Start free

, Fundamentals · SERP API · Google

What is a SERP? Anatomy of a Google results page in 2026

A SERP (search engine results page) is the page a search engine returns for a query. On Google in 2026 it is a stack of distinct blocks: ads, sometimes an AI Overview, organic results, People Also Ask, a local pack for local queries, shopping grids for product queries, a knowledge panel for entities, discussion threads, and related searches at the bottom. Which blocks appear, and in what order, depends on the query, market and device.

Below is each block, what it is for, and the field POST /v1/monitor/google returns for it, followed by the blocks that are not returned as fields.

Two kinds of result

Google’s own visual elements gallery (checked 2026-09-17) names the parts of a result. It distinguishes a text result, “based on the textual content of the page”, from a rich result, which “typically relies on structured data in the markup of your page”, and names the pieces of a result: title link, snippet, attribution (site name, favicon, visible URL, breadcrumb), byline date and sitelinks. The same gallery names two page-level groups: a related searches group, “a cluster of related searches that other people have done”, and a related questions group, “a cluster of questions related to the user’s initial search”, which is the block most SEOs call People Also Ask.

Everything else on the page is a SERP feature: a block that is not a plain organic listing.

A Google results page, block by block, with its response field The query and its market settings sit at the top. Down the main column: top ads as ads with blockPosition top, the AI Overview as aioverview when requested, organic results as organicResults, People Also Ask as peopleAlsoAsk, the local pack as localResults, shopping grids as shoppingCards, the discussions module as peopleAreSaying, bottom ads again as ads, and related searches as relatedSearches. The knowledge panel on the right is knowledgeGraph. Featured snippets, top stories, image packs and video carousels have no structured field. POST /v1/monitor/google, one result object query, country or gl, pages Ads, top AI Overview Organic results People Also Ask Local pack Shopping grid Discussions Ads, bottom Related searches no structured field: featured snippets, top stories, image packs, video carousels ads[], blockPosition top aioverview, +$0.00071 organicResults[] peopleAlsoAsk[] localResults[] shoppingCards[] peopleAreSaying[] ads[], blockPosition bottom relatedSearches[] Knowledge panel knowledgeGraph omitted from result when no panel appears

Which blocks appear changes per query, market and device, so the page you get back is a subset of this stack and several of these fields are absent.

The blocks

The order below is for reading convenience. Google changes which blocks appear and where per query, market and device, so treat it as a map, not a rule.

Ads

Text ads appear above and below the organic results; product-style sponsored cards appear in carousels at the top or on the right. In the response, ads[] holds both, with type (RESULT for text ads, SHOPPING_CARD for sponsored product cards), blockPosition (top, bottom, middle, rhs), position within the block, page, title, url, domain, displayedUrl, description and ad sitelinks[]. Shopping cards add price, oldPrice, store, category and imageUrl.

AI Overview

An AI Overview is a generated answer on the results page with links to supporting sources. Google’s documentation on AI features says AI Overviews “are only shown when our systems determine that it is additive to classic Search, and as such, often don’t trigger” (AI features and your website, checked 2026-09-17). The same page says pages need to be indexed and eligible to be shown with a snippet, and that there are no additional requirements.

The API returns it as aioverview when you send include.aioverview (for example {} or {"markdown": true}). The object carries text, markdown (when requested), sources[] (position, url, label, description), citationPills[] (the inline chips, grouped by citationPillId), relatedLinks[], videos[] and ads[] shown inside the overview. It is null when no overview was available. For how the overview relates to the older featured snippet, see featured snippets and AI Overviews.

Organic results

The classic “ten blue links”. Each item in organicResults[] has position (1-indexed, counted across all pages you requested), page, title, link, displayedLink, snippet, date and sitelinks.inline[]. The pages field fetches 1 to 10 pages. Positions here are organic only; ads and features are not counted. Rank tracking on a SERP API explains what that means for position reporting.

People Also Ask

An expandable list of related questions. Each item in peopleAlsoAsk[] has question and type:

The content-strategy use of this block is in People Also Ask for SEO; extraction and expansion mechanics are in PAA keyword research.

Local pack

For local-intent queries, a map with a short list of businesses. localResults[] returns each place with position, title, placeId, rating, reviews, price, type, yearsInBusiness, address, phone, hours, description and links (website, directions). localResultsMoreLink is the URL of the expanded list. It is returned for desktop searches only and omitted when there is no pack. Set location to see the pack a searcher in a given city sees; see local rank tracking.

Shopping grids

Organic product grids such as “Popular products”. shoppingCards[] returns title, position, category (the grid’s header), price, oldPrice, promoLabel, store, rating, reviews, thumbnail and productLink, which is usually an empty string. Sponsored product cards are in ads[], not here.

Knowledge panel

A panel about an entity (a company, person, place or work). knowledgeGraph returns title, type, kgmid, description, source, website, imageUrl, attributes[] (key, value), profiles[] and peopleAlsoSearchFor[] (name, link), plus entity-specific arrays such as ratings[] for films or webRatings[] for local businesses. It is omitted when no panel appears. People also search for covers the related-entity list.

Discussions and forums

Google’s “What people are saying” or “Trending posts and discussions” module, often linking to Reddit or forum threads. peopleAreSaying[] returns position, title, link and date (Google’s relative text, such as “5 days ago”). Omitted when absent.

Query suggestions at the bottom of the page. relatedSearches[] returns query and link (a Google search URL for that query).

Field map

Block Field in result Notes
Ads (text and sponsored products) ads[] type, blockPosition, position per block
AI Overview aioverview Only with include.aioverview; +$0.00071; null if unavailable
Organic results organicResults[] position across pages, page, sitelinks
People Also Ask peopleAlsoAsk[] type LINK, AIOVERVIEW, UNKNOWN
Local pack localResults[], localResultsMoreLink Desktop only; omitted when absent
Shopping grid shoppingCards[] Omitted when absent
Knowledge panel knowledgeGraph Omitted when absent
Discussions peopleAreSaying[] Omitted when absent
Related searches relatedSearches[] query, link

Blocks with no structured field

These blocks are not returned as structured fields:

Block Structured field How to get it
Featured snippet None Not returned
Top stories None Not returned; for news results use the Google News endpoint
Image pack None Not returned
Video carousel on the results page None (only videos inside an AI Overview, in aioverview.videos[]) Not returned
Total result count, search time None Not returned
“People also search for” box shown after a back-click None Not returned; see people also search for

With include.html, html[] links a copy of each results page as it was captured, at no extra cost.

AI Mode is a separate surface

Google AI Mode is its own conversational search experience, separate from the regular results page. Google describes it as “particularly helpful for queries where further exploration, reasoning, or complex comparisons are needed” (AI features and your website, checked 2026-09-17). The API has a separate endpoint for it, POST /v1/monitor/aimode, which takes a prompt (not query) with country (or gl), location or uule, and hl, and returns text, sources[], citationPills[] and, for some prompts, places[]. It is priced separately ($0.00206 per request on every tier). See AI Mode and the AI Mode API post.

Why two people see different SERPs

The same query can produce different pages depending on:

When you collect SERPs for analysis, keep the market and request fields fixed per series. Google search parameters covers the targeting fields in more depth.

Request a SERP and list its blocks

curl -X POST https://api.answerline.dev/v1/monitor/google \
  -H "Authorization: Bearer $ANSWERLINE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "coffee roasters denver",
    "country": "US",
    "include": { "aioverview": {} }
  }'
import os
import requests

res = requests.post(
    "https://api.answerline.dev/v1/monitor/google",
    json={
        "query": "coffee roasters denver",
        "country": "US",
        "include": {"aioverview": {}},
    },
    headers={"Authorization": f"Bearer {os.environ['ANSWERLINE_API_KEY']}"},
    timeout=(10, 330),
)
res.raise_for_status()
result = res.json()["result"]

blocks = {
    "ads": len(result.get("ads") or []),
    "aioverview": result.get("aioverview") is not None,
    "organic": len(result.get("organicResults") or []),
    "people_also_ask": len(result.get("peopleAlsoAsk") or []),
    "local_pack": len(result["localResults"]) if "localResults" in result else None,
    "shopping_grid": len(result["shoppingCards"]) if "shoppingCards" in result else None,
    "knowledge_panel": "knowledgeGraph" in result,
    "discussions": len(result["peopleAreSaying"]) if "peopleAreSaying" in result else None,
    "related_searches": len(result.get("relatedSearches") or []),
}
print(blocks)
const res = await fetch("https://api.answerline.dev/v1/monitor/google", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.ANSWERLINE_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    query: "coffee roasters denver",
    country: "US",
    include: { aioverview: {} },
  }),
});
if (!res.ok) throw new Error(`HTTP ${res.status}: ${await res.text()}`);
const { result } = await res.json();

const present = [
  ["ads", (result.ads ?? []).length > 0],
  ["aioverview", result.aioverview != null],
  ["peopleAlsoAsk", (result.peopleAlsoAsk ?? []).length > 0],
  ["localResults", "localResults" in result],
  ["shoppingCards", "shoppingCards" in result],
  ["knowledgeGraph", "knowledgeGraph" in result],
  ["peopleAreSaying", "peopleAreSaying" in result],
].filter(([, on]) => on).map(([name]) => name);
console.log(present);

This call costs $0.00103 base on every tier and +$0.00071 for the AI Overview: $0.00174.

Two things to note in code:

What each block is useful for

Block Typical question it answers
Organic results Where do we rank, and who ranks above us?
AI Overview Is there a generated answer, and does it cite us?
People Also Ask What do searchers ask next, and who answers?
Local pack Which businesses does Google show for this city?
Ads Who bids on this query, and where do their ads sit?
Shopping grid Which products and stores appear, at what prices?
Knowledge panel Has Google resolved the query to an entity, and is it ours?
Discussions Which forum threads shape opinion on this topic?
Related searches Which adjacent queries should we cover?

Tracking how these blocks change over time is covered in SERP feature change tracking, and the data model behind the response in structured SERP data. If you are choosing a provider, best SERP APIs compares options.

Glossary

More terms are in the glossary. The full field list is on the Google Search engine page.

Questions

What does SERP stand for?

SERP stands for search engine results page: the page a search engine returns for a query. On Google it combines organic results with blocks such as ads, an AI Overview, People Also Ask, a local pack and a knowledge panel.

Which SERP blocks does the Google Search endpoint return as structured fields?

organicResults, ads, aioverview (when requested), peopleAlsoAsk, relatedSearches, localResults, shoppingCards, knowledgeGraph and peopleAreSaying. localResults, shoppingCards, knowledgeGraph and peopleAreSaying are omitted when the block is not on the page.

Does the API return featured snippets, top stories, image packs or video carousels?

No. Featured snippets, top stories, image packs and video carousels on the results page are not returned as structured fields. With include.html, html links a copy of each results page as it was captured.

Is Google AI Mode part of the SERP?

AI Mode is a separate Google surface with its own conversational answer, not a block on the regular results page. This API has its own endpoint for it, POST /v1/monitor/aimode, which returns text, sources and citation pills.

Why does the same query show different SERPs to different people?

Results depend on country, language, location and device, among other things. The Google Search request fixes them (country or gl, location or uule, hl and device) so that runs are comparable.

Try it on your own prompts

100 free requests on any engine, no card. One POST returns the answer, sources and citations as JSON.

Keep reading