POST /v1/search
Google Search API
One call returns the full Google results page, parsed: organic results with resolved URLs, knowledge graph, answer box, People Also Ask, top stories and related searches. JSON for code, Markdown for LLMs.
Overview
What the Google Search API does
The Google Search API is the core SerpKite endpoint. Send a query with a country and language and you get back what a logged-out user in that market sees on google.com, parsed into stable snake_case JSON keys: results, answer_box, knowledge_graph, people_also_ask, related_searches and meta. The official TypeScript, Python and Go SDKs wrap it in one typed call: sk.search({ q }).
Every results[].link is the real destination URL, never a google.com/url or /goto redirect, and every result carries a canonical domain. For agents, format=markdown returns a compact, readable page and fields= trims the JSON to only the keys you use.
What you get
-
results[]array - Organic results: position, title, link (resolved), domain, displayed_link, snippet, date, sitelinks, rating when Google shows one.
-
knowledge_graphobject - Entity panel: title, type, website, description with source, and attributes.
-
answer_boxobject - Featured snippet or direct answer, with the source link.
-
people_also_ask[]array - Question, snippet, title and link for each PAA entry.
-
related_searches[]array - Google's related queries, useful for query expansion.
-
top_stories[]array - News carousel: title, source, date, link, image.
-
places[]array - Local pack results when the query has local intent.
-
metaobject - request_id, credits_used, cached, engine, latency_ms, resolved_urls and parse_quality. parse_quality=empty means the call was not billed.
Request
curl https://api.serpkite.com/v1/search \
-H "Authorization: Bearer $SERPKITE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"q":"best espresso machine 2026","country":"us","language":"en"}'Response (illustrative, placeholder domains)
{
"request": {
"endpoint": "search",
"engine": "google",
"q": "best espresso machine 2026",
"country": "us",
"language": "en",
"page": 1
},
"results": [
{
"position": 1,
"title": "The Best Espresso Machines of 2026, Tested and Reviewed",
"link": "https://www.example.com/best-espresso-machines",
"domain": "example.com",
"snippet": "We pulled more than 1,200 shots on 42 machines to find the best espresso makers for every budget.",
"date": "Sep 12, 2026",
"sitelinks": [
{
"title": "Best budget pick",
"link": "https://www.example.com/best-espresso-machines#budget"
}
]
},
{
"position": 2,
"title": "Espresso Machine Buying Guide (2026)",
"link": "https://coffee.example.org/guides/espresso",
"domain": "coffee.example.org",
"snippet": "Single boiler, heat exchanger or dual boiler? What the specs mean and which features are worth paying for."
}
],
"people_also_ask": [
{
"question": "Is a $500 espresso machine worth it?",
"snippet": "For daily drinkers, a mid-range machine usually pays for itself within a year…",
"link": "https://coffee.example.org/guides/espresso"
}
],
"related_searches": [
{
"query": "best espresso machine under $500"
},
{
"query": "dual boiler vs heat exchanger"
}
],
"meta": {
"request_id": "req_01J8ZK4M6Q2V7",
"credits_used": 1,
"engine": "google",
"cached": false,
"latency_ms": 812,
"resolved_urls": true,
"parse_quality": "ok"
}
}
Every response also carries X-Credits-Used, X-Credits-Remaining,
X-Cache and X-Tokens-Estimate headers.
Run this query in the playground
Reference
Parameters
The parameters /v1/search accepts, in the JSON body or the query string.
| Name | Type | Default | Description |
|---|---|---|---|
q
required
|
string | – | The search query. Required. Up to 2,048 characters. |
country
|
string | us | Country to search from, as a two-letter ISO code (us, gb, de, in…). |
language
|
string | en | Interface language, as a language code (en, de, fr, pt-BR…). |
location
|
string | – | Canonical location for local results, e.g. "Austin, Texas, United States". Overrides country for geo. |
num
|
integer | 10 | Results per call. 10 per page; 100 fetches the top 100 as a depth bundle for 7 credits instead of 10. Values: 10, 20, 30, 50, 100. |
page
|
integer | 1 | Results page, 1–10. Each page is billed separately. |
time
|
string | – | Restrict to recent results. Shorthand for tbs=qdr:*. Values: hour, day, week, month, year. |
device
|
string | desktop | Which SERP layout to fetch. Values: desktop, mobile. |
safe
|
string | off | SafeSearch filtering. Values: off, active. |
format
|
string | json | Response format. markdown is LLM-ready prose; compact is JSON with only the fields agents need. Values: json, compact, markdown. |
fields
|
string | – | Comma-separated projection, e.g. results.title,results.link,knowledge_graph. Cuts tokens. |
include_content
|
integer | 0 | Also fetch the top N result pages (0–5) as Markdown. +1 credit per page. |
max_age
|
integer | – | Accept a cached result up to this many seconds old. Cache hits cost 50% of the credits. |
Full reference, error codes and headers are in the API docs. Send a JSON array of up to 100 request objects to run them in one call.
Use cases
What people build with the Google Search API
Grounding for agents
Give an LLM fresh facts with citations. Markdown output keeps the context window small.
SEO and rank tracking
Positions, sitelinks and SERP features per country and device, top 100 in one call.
SERP feature monitoring
See which SERP features (answer box, knowledge graph, PAA, top stories) appear for a query.
RAG retrieval
Search, then pull the top pages as Markdown with include_content, in one request.
Market and competitor research
Track who ranks, which ads show and how the SERP changes by market.
Custom Search replacement
A Custom Search–compatible endpoint for apps moving off Google's CSE before it shuts down.
Pricing
Google Search API pricing
Cost per call
1 credit
per page of 10 results
- From $0.60 per 1,000 calls at volume.
- Credits never expire. No subscription.
- Failed, empty and blocked calls are refunded.
- 2,500 free credits = 2,500 calls, then 1,000 credits a month.
For reference: Serper lists Google searches at $1.00 per 1k on its entry tier and $0.30 at its best tier, and its credits expire after 6 months. SerpKite credits cost $1.00 to $0.60 per 1k.
| Pack | Price | Per 1k credits | Per 1k calls | Calls per pack |
|---|---|---|---|---|
| Starter | $10 | $1.00 | $1.00 | 10,000 |
| Growth | $50 | $0.80 | $0.80 | 62,500 |
| Pro | $300 | $0.60 | $0.60 | 500,000 |
FAQ
Google Search API: common questions
Keep exploring
Related APIs and integrations
Start building
Start with the Google Search API
2,500 free credits, then 1,000 every month. No credit card.