Skip to content

New Official SDKs for TypeScript, Python and Go

SerpKite
Get API key
Docs menu / Common parameters

Common parameters

Every request parameter the SerpKite search endpoints accept, with types, defaults and allowed values, grouped by what they control.

View as Markdown

All search endpoints under /v1 share one parameter set, with snake_case names. You send it as a JSON object on POST, or as a query string on GET with the same names. Only q is required. Each endpoint’s reference page lists exactly the parameters it accepts; for example /v1/reviews takes place_id (or cid, fid) instead of q, and /v1/lens and /v1/webpage take url.

All parameters

ParameterTypeDefaultDescription
q requiredstringThe search query. Required. Up to 2,048 characters.
countrystringusCountry to search from, as a two-letter ISO code (us, gb, de, in…).
languagestringenInterface language, as a language code (en, de, fr, pt-BR…).
locationstringCanonical location for local results, e.g. "Austin, Texas, United States". Overrides country for geo.
uulestringGoogle-encoded location string. Use instead of location if you already have it.
llstringMaps only: viewport as "@lat,lng,zoom", e.g. "@52.52,13.40,14z".
numinteger10Results per call. 10 per page; 100 fetches the top 100 as a depth bundle for 7 credits instead of 10. One of: 10, 20, 30, 50, 100.
pageinteger1Results page, 1–10. Each page is billed separately.
timestringRestrict to recent results. Shorthand for tbs=qdr:*. One of: hour, day, week, month, year.
tbsstringRaw Google tbs filter, e.g. qdr:w or cdr:1,cd_min:…
devicestringdesktopWhich SERP layout to fetch. One of: desktop, mobile.
safestringoffSafeSearch filtering. One of: off, active.
autocorrectbooleantrueLet Google correct misspelled queries. Set false to search the exact text.
formatstringjsonResponse format. markdown is LLM-ready prose; compact is JSON with only the fields agents need. One of: json, compact, markdown.
fieldsstringComma-separated projection, e.g. results.title,results.link,knowledge_graph. Cuts tokens.
include_contentinteger0Also fetch the top N result pages (0–5) as Markdown. +1 credit per page.
adsbooleanfalseInclude sponsored results in ads.
max_ageintegerAccept a cached result up to this many seconds old. Cache hits cost 50% of the credits.
enginestring or arraygoogleWhich search providers may answer. google is Google only (SerpKite still fails over across its own proxy pools); auto falls back to other providers when Google is blocked or times out; consensus (search only) asks several independent indexes in parallel, merges the results by URL, ranks them by agreement and lists each result's sources, at the sum of one page per provider that returned results; a provider name or a list (e.g. google,brave) restricts the request to those. meta.engine names the provider that answered. One of: google, auto, consensus, brave, bing, yahoo, duckduckgo, mojeek, wikipedia.
place_idstringReviews: Google place ID (from maps/places results). Or pass cid or fid instead.
cidstringReviews: Google customer ID of the place.
fidstringReviews: Google feature ID of the place.
sortstringmost_relevantReviews: sort order. One of: most_relevant, newest, highest_rating, lowest_rating.
page_tokenstringReviews: next_page_token from the previous page, unchanged (bound to the place and sort). Paging reaches the first 100 reviews per sort order.
urlstringLens: image URL. Webpage: page URL to fetch.
include_htmlbooleanfalseWebpage: also return the raw HTML.
domainstringRank: domain to find, e.g. example.com (subdomains match).

ll (the map viewport) applies only to /v1/maps. engine defaults to google (Google only); auto, a single provider or a list allows fallback engines on search, news, images and videos. See Search providers.

Sending parameters

The two requests below are equivalent:

curl https://api.serpkite.com/v1/search \
  -H "Authorization: Bearer $SERPKITE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"q":"coffee grinder","country":"de","language":"de","num":20,"time":"month"}'

Numbers and booleans are accepted either as JSON numbers and booleans or as strings ("num": "20", "autocorrect": "false"), so query strings and loosely typed clients both work. Invalid values return 400 invalid_request with a message naming the parameter, and are never billed.

The body must be a single JSON object. To run many queries at once, queue them with POST /v1/batches (up to 100 per call, at half price).

Strict validation

Unknown parameters are rejected, never silently ignored, so a typo can’t quietly fall back to a default (a misspelled country would otherwise search from the US). The API answers 400 invalid_request, names the parameter and, when it recognises a name used by other SERP APIs, tells you the replacement:

400 Bad Request
{
  "error": {
    "code": "invalid_request",
    "message": "unknown parameter \"gl\": use country",
    "request_id": "req_01J8ZK9W3HC2D"
  }
}
If you send Use instead
gl country
hl language
placeId place_id
sortBy sort
nextPageToken page_token
mode POST /v1/batches
type The endpoint path, e.g. /v1/news instead of "type": "news"

A JSON array body is rejected the same way (body must be a JSON object; to run many queries use POST /v1/batches). None of these errors is billed.

Query

q is the search query, 1 to 2,048 characters. Google operators work as they do on google.com: site:, -exclude, "exact phrase", filetype:, intitle: and so on.

ParameterTypeDefaultDescription
q requiredstringThe search query. Required. Up to 2,048 characters.

Location and language

country picks the country Google searches from and language the interface language. location narrows results to a city or region, which matters for local packs, maps and anything with local intent. uule is the pre-encoded form of a location if you already have one. See Localization for the full list of codes and how they interact.

ParameterTypeDefaultDescription
countrystringusCountry to search from, as a two-letter ISO code (us, gb, de, in…).
languagestringenInterface language, as a language code (en, de, fr, pt-BR…).
locationstringCanonical location for local results, e.g. "Austin, Texas, United States". Overrides country for geo.
uulestringGoogle-encoded location string. Use instead of location if you already have it.
llstringMaps only: viewport as "@lat,lng,zoom", e.g. "@52.52,13.40,14z".

Paging and depth

page walks through result pages, one credit each. num above 10 fetches deeper results in one call on /v1/search and /v1/news, and num=100 is a bundle of 10 pages for 7 credits. See Pagination and depth.

ParameterTypeDefaultDescription
numinteger10Results per call. 10 per page; 100 fetches the top 100 as a depth bundle for 7 credits instead of 10. One of: 10, 20, 30, 50, 100.
pageinteger1Results page, 1–10. Each page is billed separately.

Filters

time is a friendly shorthand for recency. tbs passes Google’s raw filter string through when you need something time doesn’t cover, like a custom date range. If you send both, tbs wins.

ParameterTypeDefaultDescription
timestringRestrict to recent results. Shorthand for tbs=qdr:*. One of: hour, day, week, month, year.
tbsstringRaw Google tbs filter, e.g. qdr:w or cdr:1,cd_min:…
devicestringdesktopWhich SERP layout to fetch. One of: desktop, mobile.
safestringoffSafeSearch filtering. One of: off, active.
autocorrectbooleantrueLet Google correct misspelled queries. Set false to search the exact text.
time Equivalent tbs
hour qdr:h
day qdr:d
week qdr:w
month qdr:m
year qdr:y

A custom date range uses tbs directly, for example cdr:1,cd_min:1/1/2026,cd_max:3/31/2026.

Output

These parameters change the shape and size of the response, not the search itself. See Output formats and Page content.

ParameterTypeDefaultDescription
formatstringjsonResponse format. markdown is LLM-ready prose; compact is JSON with only the fields agents need. One of: json, compact, markdown.
fieldsstringComma-separated projection, e.g. results.title,results.link,knowledge_graph. Cuts tokens.
include_contentinteger0Also fetch the top N result pages (0–5) as Markdown. +1 credit per page.
adsbooleanfalseInclude sponsored results in ads.

Cost and delivery

max_age lets you accept a recent cached result for half the credits. For work that doesn’t need an answer right now, send the same request bodies to POST /v1/batches, also at half price, and get the results by polling or webhook. See Caching.

ParameterTypeDefaultDescription
max_ageintegerAccept a cached result up to this many seconds old. Cache hits cost 50% of the credits.
enginestring or arraygoogleWhich search providers may answer. google is Google only (SerpKite still fails over across its own proxy pools); auto falls back to other providers when Google is blocked or times out; consensus (search only) asks several independent indexes in parallel, merges the results by URL, ranks them by agreement and lists each result's sources, at the sum of one page per provider that returned results; a provider name or a list (e.g. google,brave) restricts the request to those. meta.engine names the provider that answered. One of: google, auto, consensus, brave, bing, yahoo, duckduckgo, mojeek, wikipedia.

Reviews, Lens and Webpage

These endpoints take an identifier or URL instead of q. Reviews page with a cursor: pass next_page_token from the previous response as page_token. See Pagination and depth.

ParameterTypeDefaultDescription
place_idstringReviews: Google place ID (from maps/places results). Or pass cid or fid instead.
cidstringReviews: Google customer ID of the place.
fidstringReviews: Google feature ID of the place.
sortstringmost_relevantReviews: sort order. One of: most_relevant, newest, highest_rating, lowest_rating.
page_tokenstringReviews: next_page_token from the previous page, unchanged (bound to the place and sort). Paging reaches the first 100 reviews per sort order.
urlstringLens: image URL. Webpage: page URL to fetch.
include_htmlbooleanfalseWebpage: also return the raw HTML.

Which endpoint takes what

Each endpoint page lists exactly the parameters it supports:

EndpointMethod and pathCreditsReturns
Google SearchPOST /v1/search1request, results, answer_box, knowledge_graph, people_also_ask, related_searches, top_stories, places, ads, meta
Google NewsPOST /v1/news1request, results, meta
Google ImagesPOST /v1/images1request, results, meta
Google VideosPOST /v1/videos1request, results, meta
Google MapsPOST /v1/maps1request, results, meta
Google PlacesPOST /v1/places1request, results, meta
Google ReviewsPOST /v1/reviews1request, results, next_page_token, meta
Google ShoppingPOST /v1/shopping1request, results, meta
Google ScholarPOST /v1/scholar1request, results, meta
Google PatentsPOST /v1/patents1request, results, meta
Google AutocompletePOST /v1/autocomplete0.5request, results, meta
Google LensPOST /v1/lens2request, results, meta
Webpage to MarkdownPOST /v1/webpage1request, url, status_code, markdown, text, metadata, meta
Custom Search (CSE-compatible)GET /customsearch/v11kind, searchInformation, items, queries

Last updated: 2026-09-29