Docs / API reference /
Track Google Search results
POST https://api.answerline.dev/v1/monitor/google
Get structured output from Google Search: organic listings, related searches, People Also Ask and, optionally, the AI Overview
From $1.00 per 1,000 Failed requests are free Async task type GOOGLE Google Search fields and prices
Body
-
querystring -
Query to run on Google. Mandatory when 'url' is not given; send one or the other, never both.
-
urlstring -
A full URL of a Google web search, executed as-is in place of a request assembled from 'query' plus the targeting fields. It has to be absolute and http(s), hosted on one of Google's web search domains (google.com, google.co.uk, www.google.de, ...), with '/search' as its path and a 'q' that is not empty. Cannot be combined with 'query', 'location', 'uule' or 'pages', since the URL already determines them. It may carry only these query parameters, which are kept: 'q', 'gl', 'num' (treated as result depth), 'hl' and 'uule'; a URL with any other (such as 'start', 'tbs' or 'safe') is refused with a 400. Without 'uule', the search is localized to the requested country. A URL containing 'tbm' is refused: it points at a Google vertical that has a separate endpoint and price (for tbm=nws, call POST /v1/monitor/google/news).
-
countrystring -
Country for localized search results, as an ISO 3166-1 alpha-2 code. Mandatory in the standard request form. If you send 'url' instead, the country is taken from the URL's 'gl' parameter; set it yourself to override that value, or when the URL carries no 'gl'.
-
glstring -
Google's own name for the result-geography parameter, usable in place of
country. Takes ISO 3166-1 alpha-2 codes, ascountrydoes, in upper or lower case (usorUS), and the country has to be one this endpoint supports (list them withGET /v1/countries; Google News has nomodelvalue there, and its edition countries are listed at https://answerline.dev/docs/coverage#countries). Send eithercountryorgl; if both are sent with differing values, the request fails with400. -
statestring -
US state code (e.g. "CA", "DC" included). Sent without a country, the request asks for the US; sent with any country other than "US", it is refused with a 400, uncharged. ChatGPT and Gemini answer as a person in that state sees it; every other engine accepts it and answers for the whole US, at the price of a request without it. provenance.requestedState reports the state asked. See https://answerline.dev/docs/coverage#states
-
hlstring -
Interface language, in the format of Google's
hlparameter (for exampleen,de,pt-BR). Case-insensitive free text; Google defines which codes exist. Takes precedence over the language Answerline infers from the country, which lets interface language and result geography differ. -
locationstring -
Location name in Google's canonical comma-separated form 'City,Region,Country' (roughly 100,000 accepted locations are listed at https://developers.google.com/google-ads/api/reference/data/geotargets). Combine with 'country' to target a specific city. Cannot be sent together with 'uule'; choose one of the two. Not allowed when 'url' is set.
-
uulestring -
A ready-made Google UULE string for exact geo-targeting, in the location-name form (starting w+CAIQICI); the coordinate form (a+) is refused with a 400. Supply it when you already have an encoded UULE rather than a location name. Cannot be sent together with 'location'; pass only one of the two. Not allowed together with 'url'; in that case add 'uule' to the URL's query string.
-
device"desktop" | "mobile" | "ios" | "android" -
Device to run the search on. 'desktop' gives the desktop SERP, while 'ios' (Safari on an iPhone), 'android' (Chrome on an Android phone) and 'mobile' (same as 'android') each give the mobile SERP.
-
pagesinteger -
How many pages of search results to retrieve (1-10). Not allowed together with 'url': when 'url' is given, depth is taken from the URL's 'num' parameter (rounded up to full 10-result pages, at most 10 pages).
-
includeobject -
Flags that add extra data to the response (optional)
6 properties
-
include.htmlboolean -
A copy of each Google results page as it was when the answer was captured, stored on our file host and linked in
html, to check the answer against. No extra cost. -
include.aioverviewobject -
Add Google's AI Overview to the response
-
include.paaAioverviewboolean -
Fill People Also Ask items of the AI Overview type with markdown content and their sources. Free: only include.aioverview is billed, as the AI Overview add-on. Every hydrated item needs one more fetch (usually 1-2 on a page), which makes responses slower.
-
include.googleGotoboolean -
Has had no effect since 8th September 2026. Each redirect link is now always returned as
redirectLinknext to its target, so you get both without setting this flag. Requests that still include it are handled as though it were omitted. -
include.rawWireboolean -
Return the engine's own response as received in result.rawWire: the answer stream, the rendered results pages or the RSS feed, without Gemini's detected location or ChatGPT's session tokens; null where it was not captured. Free. See https://answerline.dev/docs/output-formats#raw-wire
-
include.screenshotboolean -
Return a full-page PNG screenshot of the engine's page as it showed the finished answer, in result.screenshot: a link, or one link per results page on Google Search. On ChatGPT, Gemini, AI Mode, Google Search, Perplexity and Grok; other engines refuse it with a 400. Absent when the answer was read without a rendered page or its page was not available. Free. See https://answerline.dev/docs/output-formats#screenshots
-
-
answerDepth"any" | "full" | "quick" -
Accepted so existing requests stay valid; it does not change the answer or the price. Every engine writes one depth: Perplexity answers every request with its Quick Search answer, and provenance.answerDepth says quick. See https://answerline.dev/docs/engine-features/#answer-depth
Returns
-
result.organicResultsobject[] -
Google organic results
-
result.peopleAlsoAskobject[] -
Google's "People also ask" questions
-
result.peopleAreSayingobject[] -
Items from the Google results module titled "What people are saying" or "Trending posts and discussions". When the page has no such module,
resultleaves this field out instead of returning an empty array, so treat it as optional. -
result.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,
resultdoes 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. -
result.localResultsMoreLinkstring -
Full URL of the "More places" / "More businesses" control shown under the local pack; it opens Google's larger Local Finder for this query. Present only together with
localResults, and only if the SERP shows that control. -
result.relatedSearchesobject[] -
Suggested related searches
-
result.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. -
result.aioverviewobject -
Data from Google's AI Overview, when requested; null if no AI Overview could be obtained after retrying.
-
result.shoppingCardsobject[] -
Product cards taken from the organic shopping grids on the results page ("Popular products" / "More products"). When the page has no shopping section,
resultdoes 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 fromshopping_cardsin AI Mode for consistency across endpoints, but its keys are camelCase (productLink,oldPrice) in the Google response. -
result.knowledgeGraphobject -
Knowledge Graph panel Google shows for the entity in the query. Not included in
resultif the results page has no such panel. Handle the field as optional: it is not sent as null.30 properties
-
result.knowledgeGraph.titlestring -
Name of the entity from the panel's heading
-
result.knowledgeGraph.typestring -
Category label for the entity exactly as Google shows it (for instance "British singer", "Italian cathedral"). Any string is possible; it is not an enum.
-
result.knowledgeGraph.kgmidstring -
The entity's ID in the Google Knowledge Graph
-
result.knowledgeGraph.descriptionstring -
Brief summary of the entity (can come from Wikipedia or from Google's knowledge base)
-
result.knowledgeGraph.imageUrlstring -
Image URL for the entity, as Google delivers it
-
result.knowledgeGraph.websitestring -
The entity's official website URL
-
result.knowledgeGraph.menustring -
Link to the menu (given for restaurants and other food businesses)
-
result.knowledgeGraph.trailerstring -
Link to the trailer; included for movies and TV series
-
result.knowledgeGraph.sourceobject -
Where the entity description comes from (usually Wikipedia)
-
result.knowledgeGraph.attributesobject[] -
Facts from the panel as key-value pairs (such as founded, headquarters, CEO). Keys are arbitrary strings, taken as Google shows them.
-
result.knowledgeGraph.profilesobject[] -
Links to the entity's social media and other external profiles
-
result.knowledgeGraph.peopleAlsoSearchForobject[] -
Other entities people search for alongside this one
-
result.knowledgeGraph.thingsToKnowobject[] -
Topic groups parsed from the "Things to know" panel
-
result.knowledgeGraph.ratingsobject[] -
Ratings from review platforms (e.g. Rotten Tomatoes, IMDb); included for movies and TV series
-
result.knowledgeGraph.streamingOptionsobject[] -
Links to streaming platforms for movies and TV series
-
result.knowledgeGraph.webRatingsobject[] -
Ratings collected from online review sites; included when the result is a local business (such as Google, Tripadvisor, Yelp)
-
result.knowledgeGraph.statsCardobject -
Card with statistics; included for entities such as sports teams and organizations
-
result.knowledgeGraph.socialPostsobject[] -
Latest social media posts published by the entity's official accounts
-
result.knowledgeGraph.notableAlumniobject[] -
Well-known alumni (given for universities and other educational institutions)
-
result.knowledgeGraph.contactobject[] -
Links for contacting or ordering; included for local businesses
-
result.knowledgeGraph.weatherobject -
Weather right now; included for geographic entities such as cities and regions
-
result.knowledgeGraph.ratingobject -
Overall star rating; included for local businesses
-
result.knowledgeGraph.admissionobject[] -
Ticket choices; included for museums, parks and other venues that charge entry
-
result.knowledgeGraph.artworksobject[] -
Well-known artworks (given for artists and for art institutions)
-
result.knowledgeGraph.has3dModelboolean -
True if Google offers an interactive 3D view of the entity
-
result.knowledgeGraph.hotelOptionsobject[] -
Options for booking the hotel, only for hotel entities
-
result.knowledgeGraph.trendingProductsobject[] -
Products currently trending; included for retail brands
-
result.knowledgeGraph.merchantVideosobject[] -
Videos from the merchant or brand (given for retail businesses)
-
result.knowledgeGraph.listenOnobject[] -
Links to music streaming services (given for musicians and bands)
-
result.knowledgeGraph.redirectLinkstring -
The
/gotoredirect Google used for this link, given in the absolute form thatPOST /v1/monitor/google/gototakes. Only set when Google delivered the link through a redirect; the neighbouring link field contains the destination Answerline reached by following it.
-
-
result.htmlstring[] -
Present when include.html is true: the links to the stored copy of each results page, in page order.
-
result.screenshotstring[] -
Present when include.screenshot is true and the pages were rendered: the links to the PNG screenshot of each results page, in page order.
-
result.recipesobject[] -
The cards of Google's Recipes carousel, in the order shown. Absent when the page shows none.
-
result.videosobject[] -
Cards of Google's Videos and Short videos blocks
-
result.imagesobject[] -
Pictures of Google's Images block
-
result.spellingobject -
The query Google corrected the search to, when it shows a correction above the results
2 properties
-
result.spelling.querystring -
The corrected query
-
result.spelling.type"DID_YOU_MEAN" | "SHOWING_RESULTS_FOR" | "INCLUDING_RESULTS_FOR" | "NO_RESULTS_FOUND_FOR" -
How Google showed it: "Did you mean", "Showing results for", "Including results for" or "No results found for"
-
Responses
- 200
- Google monitoring result (success)
- 400
- Bad Request - one or more parameters are not valid
- 401
- Unauthorized - API key absent or not valid
- 403
- Forbidden - INSUFFICIENT_CREDITS: the balance does not cover this request
- 404
- Not Found - No such route, or the engine is paused
- 409
- Conflict - the resource is in a conflicting state
- 429
- Too Many Requests - the call could not start now (
CONCURRENT_LIMIT_EXCEEDED), or the service dropped the request because it was overloaded (SERVICE_OVERLOADED); that case returnsRetry-Afterwithout any limit headers.RATE_LIMIT_EXCEEDED, withRetry-After, is sent only when one address presented too many unknown keys - 499
- Client Closed Request - the client cancelled the request
- 500
- Internal Server Error
- 502
- Bad Gateway - the engine failed