AnswerLine Start free

Engines

Google Search API

Structured Google results: organic listings, ads, People Also Ask, knowledge graph, local pack and the AI Overview.

Price

$1.50 per 1,000 requests at Starter, down to $1.00 at Max, deducted from your prepaid USD balance.

AI Overview, when the page shows one: +$0.71 per 1,000

Each page after the first, up to 10: +$0.71 per 1,000

Each page with a search operator (site:, intitle:…), added to the page price: +$2.84 per 1,000

An AI Overview with a search operator, added to the AI Overview price: +$2.84 per 1,000

Endpoint

POST /v1/monitor/google

Or queue it with POST /v1/async/task and taskType: "GOOGLE".

Countries

213 countries, down to the city.

Coverage

Request

curl -X POST "https://api.answerline.dev/v1/monitor/google" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"project management software","country":"US","include":{"aioverview":{"markdown":true}}}'

Every request option is on the Google Search reference page.

What you get back

Field in resultTypeDescription
organicResultsobject[]Google organic results
adsobject[]Sponsored results in Google search: text ads (type: RESULT), plus sponsored shopping cards (type: SHOPPING_CARD) drawn from the carousels at the top of the page and in the right-hand column.
peopleAlsoAskobject[]Google's "People also ask" questions
peopleAreSayingobject[]Items from the Google results module titled "What people are saying" or "Trending posts and discussions". When the page has no such module, result leaves this field out instead of returning an empty array, so treat it as optional.
relatedSearchesobject[]Suggested related searches
knowledgeGraphobjectKnowledge Graph panel Google shows for the entity in the query. Not included in result if the results page has no such panel. Handle the field as optional: it is not sent as null.
localResultsobject[]Businesses in Google's local pack (the map-based "3-pack" of nearby businesses shown for local-intent searches, e.g. "best ramen in seattle"). If the SERP has no local pack, result does not contain this field at all, so treat it as optional instead of relying on an empty array. Applies to desktop only; neither the mobile layout nor the hotels/travel pack (a separate panel) is returned.
shoppingCardsobject[]Product cards taken from the organic shopping grids on the results page ("Popular products" / "More products"). When the page has no shopping section, result does not include this field at all, so clients should handle it as optional instead of relying on an empty array. The shape reuses field names from shopping_cards in AI Mode for consistency across endpoints, but its keys are camelCase (productLink, oldPrice) in the Google response.
recipesobject[]The cards of Google's Recipes carousel, in the order shown. Absent when the page shows none.
videosobject[]Cards of Google's Videos and Short videos blocks
imagesobject[]Pictures of Google's Images block
spellingobjectThe query Google corrected the search to, when it shows a correction above the results
aioverviewobjectData from Google's AI Overview, when requested; null if no AI Overview could be obtained after retrying.

Full field definitions are on the Google Search reference page.

The results page versus Google’s developer API

This endpoint returns Google’s results page for a query and market, as structured fields. Rank tracking and AI Overview monitoring measure that page, because it is what searchers see.

Google’s JSON API for web search results is the Custom Search JSON API. According to its overview (checked 2026-09-17, developers.google.com) it returns web and image results from a Programmable Search Engine, gives 100 free queries per day, costs $5 per 1,000 further queries up to 10,000 per day, is closed to new customers, and existing customers have until January 1, 2027 to move to an alternative. Its cse.list reference (checked 2026-09-17, developers.google.com) documents gl, hl, cr and lr and does not mention AI Overviews, People Also Ask, ads, local packs or knowledge panels.

Rank here is a page position: organicResults[].position and page describe where a listing appeared after ads, the AI Overview and other modules pushed it down. Those modules (aioverview, peopleAlsoAsk, peopleAreSaying, localResults, knowledgeGraph, shoppingCards, recipes, videos, images, ads) take attention before the first organic link, and tracking them explains traffic changes that rank alone cannot. Being cited in aioverview.sources or aioverview.citationPills is a separate outcome from ranking organically and needs its own tracking.

An annotated response

The excerpt follows the result schema for POST /v1/monitor/google. Values are illustrative; the request set include.aioverview.markdown to true.

{
  "success": true,
  "result": {
    "organicResults": [
      {
        "position": 1,
        "title": "Project Management Software for Teams | ExampleBoard",
        "link": "https://www.exampleboard.com/",
        "source": "ExampleBoard",
        "displayedLink": "https://www.exampleboard.com",
        "snippet": "Plan, track and deliver projects...",
        "page": 1,
        "sitelinks": { "inline": [{ "title": "Pricing", "link": "https://www.exampleboard.com/pricing", "snippet": "Plans for teams of every size..." }] }
      }
    ],
    // Set only when Google corrected the query. type: DID_YOU_MEAN | SHOWING_RESULTS_FOR |
    // INCLUDING_RESULTS_FOR | NO_RESULTS_FOUND_FOR.
    "spelling": { "query": "project management software", "type": "SHOWING_RESULTS_FOR" },
    // blockPosition: top | bottom | middle | rhs. type: RESULT | SHOPPING_CARD.
    "ads": [
      {
        "position": 1,
        "blockPosition": "top",
        "type": "RESULT",
        "title": "SampleTask - Free for Small Teams",
        "url": "https://www.sampletask.example/signup",
        "page": 1,
        "displayedUrl": "www.sampletask.example",
        "domain": "sampletask.example",
        "description": "Kanban, Gantt and time tracking in one tool..."
      }
    ],
    // type is AIOVERVIEW, LINK or UNKNOWN. markdown and sources on AIOVERVIEW
    // items require include.paaAioverview.
    "peopleAlsoAsk": [
      { "question": "What is the easiest project management software?", "type": "LINK", "title": "...", "link": "https://www.example-reviews.com/easy-pm", "snippet": "..." }
    ],
    "relatedSearches": [{ "query": "free project management software", "link": "https://www.google.com/search?q=free+project+management+software" }],
    // null when requested but Google showed no AI Overview.
    "aioverview": {
      "text": "Popular options include ExampleBoard and SampleTask...",
      "markdown": "Popular options include **ExampleBoard** and **SampleTask**...",
      "sources": [
        { "position": 1, "url": "https://www.example-reviews.com/best-pm-software", "label": "Best project management software", "description": "..." }
      ],
      // citationPillId is 1-based; position points into aioverview.sources.
      "citationPills": [
        { "label": "Best project management software", "citationPillId": 1, "url": "https://www.example-reviews.com/best-pm-software", "domain": "example-reviews.com", "position": 1 }
      ],
      // Links under a chip's "related links" flyout that are not in sources. No position.
      "relatedLinks": []
    }
    // Modules the page does not show are omitted (see Handling the results).
  }
}

Notes for this engine

Market targeting

Field Values Notes
country or gl ISO 3166-1 alpha-2 One is required with query; different values in both is a 400. GET /v1/countries?model=google lists codes (model=aioverview for AI Overview markets).
pages 1 to 10 Results pages to fetch.
location or uule Google canonical City,Region,Country name, e.g. Austin,Texas,United States, or a pre-encoded UULE City-level targeting; mutually exclusive, and neither goes with url. Without either, Google is localized to the requested country.
hl Interface language, e.g. en, pt-BR Without it, the country’s own language (de for DE, pt-BR for BR).
device desktop, mobile, ios, android Default desktop.

A US state is accepted and answered for the whole US; for a place inside the US use location, for example Texas,United States. Only ChatGPT and Gemini answer from inside a state (states).

With url, the query and gl are read from the URL, which may carry only q, gl, num, hl and uule; any other parameter (start, tbs, safe, tbm and the rest) is refused with a 400. For news results use Google News.

Handling the results

Whether an AI Overview appears can change between runs of the same query. Track presence as a rate over several runs, and store null as an observation.

Results differ by market and time of day. Keep the market fixed within a series and change one dimension at a time.

Many modules are omitted rather than returned empty, so default every module read (result.get("localResults", [])).

Ten pages per keyword is $0.00789 per task, $0.0086 with the AI Overview. Most rank tracking needs the first page or two; fetch deeper pages only for keywords where you rank there.

include.aioverview is enabled by the key being present, so {"markdown": false} still turns it on. It costs +$0.00071 only when Google shows one; a completed request with aioverview: null is still a success. Extra pages cost +$0.00071 each and paaAioverview is free, but responses with it take longer. A task costs at most $0.0086; a request reserves its maximum and is charged for the pages fetched.

Related: the best SERP APIs compared, every request field, pricing and failures, rank tracking, local rank tracking, monitoring Google AI Overviews, keyword research, People Also Ask keyword research, competitor analysis, web search API, brand protection, tracking SERP feature changes.

Questions

How much does a Google Search request cost?

A one-page request costs $0.0015 at the Starter tier ($1.00–$1.50 per 1,000 across tiers). Each extra page adds $0.00071, charged for the pages fetched; include.aioverview adds $0.00071 once when Google shows an overview; include.paaAioverview is free.

What happens when Google shows no AI Overview for my query?

If you requested it, result.aioverview is null. The +$0.00071 add-on is charged only when the response holds an overview, so a null overview costs nothing extra.

Can I send a Google search URL instead of a query?

Yes. Send url with a full Google web search URL on /search with a non-empty q; the query and gl are read from it. The URL may carry only q, gl, num, hl and uule; any other parameter, such as start, tbs, safe or tbm, is refused with a 400.

Can I target a city, a language or mobile results?

Yes. location (City,Region,Country, e.g. Austin,Texas,United States) or uule targets a city, hl sets the interface language, and device takes desktop, mobile, ios or android. localResults covers the desktop local pack.

How is this different from Google's Custom Search JSON API?

The Custom Search JSON API returns results from a Programmable Search Engine and, according to Google, is closed to new customers with existing customers transitioning by January 1, 2027. This endpoint returns the Google results page itself as structured data: organic results, ads, People Also Ask, local pack, knowledge graph, shopping cards and the AI Overview.

Are failed Google Search requests charged?

No. A failed request is charged nothing and its reservation is released. A completed request is charged even when Google shows no AI Overview.

From the blog

Docs

Other engines