← 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"withlanguage: "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.