Get Started

Go from zero to your first API response in under five minutes. Follow the steps below.

1

Create an account

Sign up with your email or Google account. It takes less than a minute.

Sign Up Free
2

Choose a plan

Pick the plan that fits your needs. All plans include the 10 core endpoints, JSON + HTML responses, and a 99.9% uptime SLA. Pro and above also include async date-range review exports. Annual billing saves you 2 months.

PlanRequests/monthPrice
Starter80,000$40/mo
Pro800,000$300/mo
Business3,000,000$1,000/mo
EnterpriseCustomContact us

Compare all plan features · Already subscribed and need more quota this month? Top up from $10 for 20,000 requests, no plan change needed.

3

Generate an API key

Go to the API Keys page in your dashboard and create a new key. Keep it safe - you will need it for every request.

Authorization: Bearer gt_live_xxxxxxxxxxxxxxxxxxxxxxxx
4

Make your first request

Send a search query using GET or POST. Here are examples in popular languages:

cURL

curl -G https://api.serpsearch.com/api/v1/search \
  -H "Authorization: Bearer gt_live_xxxxxxxxxxxxxxxxxxxxxxxx" \
  --data-urlencode "query=hello world"

Python

import requests

resp = requests.get(
    "https://api.serpsearch.com/api/v1/search",
    headers={"Authorization": "Bearer gt_live_xxxxxxxxxxxxxxxxxxxxxxxx"},
    params={"query": "hello world"},
)
resp.raise_for_status()
data = resp.json()
print(data["organic_results"])

JavaScript (fetch)

const res = await fetch(
  "https://api.serpsearch.com/api/v1/search?query=hello+world",
  {
    headers: {
      Authorization: "Bearer gt_live_xxxxxxxxxxxxxxxxxxxxxxxx",
    },
  }
);
const data = await res.json();
console.log(data.organic_results);

Go

req, _ := http.NewRequest("GET",
    "https://api.serpsearch.com/api/v1/search?query=hello+world", nil)
req.Header.Set("Authorization",
    "Bearer gt_live_xxxxxxxxxxxxxxxxxxxxxxxx")

resp, err := http.DefaultClient.Do(req)
if err != nil {
    panic(err)
}
defer resp.Body.Close()

var data map[string]interface{}
json.NewDecoder(resp.Body).Decode(&data)
fmt.Println(data["organic_results"])
5

Parse the response

The API returns sparse structured JSON with organic results, knowledge graph data, and whichever rich modules Google rendered. Missing modules are omitted rather than returned as null placeholders. Here is a representative response:

{
  "search_info": {
    "total_results": "About 21,600,000 results",
    "time_taken": "0.29 seconds"
  },
  "organic_results": [
    {
      "title": "Beautiful Soup: Build a Web Scraper With Python",
      "url": "https://realpython.com/beautiful-soup-web-scraper-python/",
      "website": "Real Python",
      "position": 1,
      "description": "Learn how to scrape web pages and parse HTML with Beautiful Soup.",
      "visible_url": "https://realpython.com › beautiful-soup-web-scraper-python",
      "sitelinks": [
        {
          "title": "Parse HTML",
          "url": "https://realpython.com/beautiful-soup-web-scraper-python/#parse-html",
          "description": "Inspect and extract structured content."
        }
      ]
    }
  ],
  "knowledge_graph": {
    "title": "Beautiful Soup",
    "category": "Python library",
    "description": "A Python package for parsing HTML and XML documents.",
    "source_name": "Wikipedia",
    "source_link": "https://en.wikipedia.org/wiki/Beautiful_Soup_(HTML_parser)",
    "facts": [
      {
        "key": "initial release",
        "value": "2004"
      }
    ]
  },
  "ai_overview": {
    "answer": "Beautiful Soup parses HTML into a tree that Python code can search and traverse.",
    "citations": [
      {
        "title": "Beautiful Soup documentation",
        "url": "https://www.crummy.com/software/BeautifulSoup/bs4/doc/"
      }
    ]
  }
}

See the complete response schema for calculator, translation, flights, sports, jobs, hotels, products, image packs, AI Overviews, and movie showtimes.

6

Monitor your usage

Track your API usage and remaining quota from the Usage page in your dashboard. Every response also includes X-Quota-Used, X-Quota-Reserved, X-Quota-Remaining, and X-Quota-Limit headers so you can monitor programmatically.

Need more detail?

Check the full API documentation for parameters, error codes, response headers, and advanced examples.