Skip to content

New Official SDKs for TypeScript, Python and Go

SerpKite
Get API key

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.

Get a free API key Try in playground
1 credit per page of 10 results 2,500 free credits, no card Failed calls are free

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_graph object
Entity panel: title, type, website, description with source, and attributes.
answer_box object
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.
meta object
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)

200 OK · application/json
{
  "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.

Google Search API parameters
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

01

Grounding for agents

Give an LLM fresh facts with citations. Markdown output keeps the context window small.

02

SEO and rank tracking

Positions, sitelinks and SERP features per country and device, top 100 in one call.

03

SERP feature monitoring

See which SERP features (answer box, knowledge graph, PAA, top stories) appear for a query.

04

RAG retrieval

Search, then pull the top pages as Markdown with include_content, in one request.

05

Market and competitor research

Track who ranks, which ads show and how the SERP changes by market.

06

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.

See all pricing
Google Search API cost per pack
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

Start building

Start with the Google Search API

2,500 free credits, then 1,000 every month. No credit card.