← Back to Explore

Google Search Scraper

Collect Google Search results instantly with our SERP Scraper API. Get organic listings, ads, snippets, and metadata for SEO and automation.

6 credits / req
4

Overview

Scrape real-time Google search results for any keyword, in any country or language. Get clean, structured organic results, sponsored listings, related searches, AI overviews, and FAQs from a single API call — no proxies, no CAPTCHAs, no HTML parsing. Built for SEO rank tracking, SERP monitoring, keyword research, and AI-powered search data pipelines at scale.

Who Is This For?

Role Use Case
SEO Teams Track keyword rankings and monitor SERP volatility across countries and languages.
Growth & Marketing Teams Analyze competitor visibility, ad presence, and content gaps directly from search results.
AI & LLM Developers Feed live, structured Google search data into RAG pipelines, agents, and research tools.
Data Engineers Automate large-scale SERP data collection for analytics and reporting pipelines.

What You Can Build

  • Keyword rank trackers — Monitor organic positions for target keywords across countries, languages, and devices.
  • Competitor SERP analysis tools — Compare organic and sponsored listings to spot competitor strategy shifts.
  • AI search & RAG pipelines — Ground LLM responses with live, structured Google search data including AI overviews and FAQs.
  • Content gap finders — Use related searches and FAQs to uncover topics your content is missing.
  • SERP monitoring dashboards — Schedule recurring queries and visualize ranking changes over time.

Endpoint

POST https://api.scravity.com/v1/google/search

Cost: 6 credits per successful extraction  ·  No Results Found: 0 credits

Authentication

Include your API key as a Bearer token in the Authorization header.

Authorization: Bearer YOUR_API_KEY

Request Body

Parameter Type Required Description
query string Yes The search query string (max 500 characters).
device string No Device type to simulate: desktop or mobile. Defaults to desktop.
country string No Target country for geo-specific results (ISO 3166-1 alpha-2, e.g. US, DE, GB). Uses the matching local Google domain. Defaults to US.
language string No Interface language for the results (Google's hl parameter, e.g. en, fr, zh-CN). Defaults to en.
page integer No The page number of results to scrape (1–10). Page 1 returns the first set of organic results. Defaults to 1.

Code Examples

cURL

curl -X POST https://api.scravity.com/v1/google/search \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "best web scraping api", "country": "US", "language": "en", "device": "desktop", "page": 1}'

Python

import requests

url = "https://api.scravity.com/v1/google/search"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
}
payload = {
    "query": "best web scraping api",
    "country": "US",
    "language": "en",
    "device": "desktop",
    "page": 1
}

r = requests.post(url, json=payload, headers=headers)
print(r.json())

JavaScript

const res = await fetch("https://api.scravity.com/v1/google/search", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    query: "best web scraping api",
    country: "US",
    language: "en",
    device: "desktop",
    page: 1
  })
});

const data = await res.json();
console.log(data);

Response Format

Success (200)

{
  "data": {
    "organic_results": [
      {
        "position": 1,
        "title": "Example Result Title",
        "link": "https://example.com",
        "snippet": "Example description text extracted from the search result..."
      }
    ],
    "sponsored_results": [],
    "related_searches": [
      { "query": "web scraping api free" }
    ],
    "ai_overview": {
      "text": "Example AI-generated overview text summarizing top results..."
    },
    "faqs": [
      { "question": "What is a web scraping API?", "answer": "Example answer text..." }
    ]
  },
  "credit_cost": 6
}

No Results Found (404)

{
  "error": "No search results found for the query",
  "query": "your search query here",
  "details": ["No organic results could be found for the specified query."]
}

Credits

Metric Cost
Successful extraction (1+ results returned) 6 credits
No results found 0 credits

Rate Limits

Window Limit
Per minute 1000 requests

Tips

  • Use the country and language parameters together to get truly localized SERP data — e.g. country: "DE" with language: "de" for a German-language, German-market search.
  • Set device: "mobile" when tracking rankings the way most real searchers see them, since mobile and desktop SERPs often differ.
  • Only successful extractions consume credits—queries with no results cost nothing, so it's safe to test edge-case keywords.
  • Use the ai_overview and faqs fields to power AI search and RAG applications with grounded, up-to-date search context.
  • Paginate with the page parameter (1–10) to analyze deeper rankings beyond the first page of results.