Scraper API

Google SERP API

for structured results in seconds

Get real-time Google SERP data as clean JSON. One request in, structured results out. No parsing, no maintenance, no headaches.

SUCCESS
99.3%

of requests succeed

P50
1.8s

median response

P95
4.1s

95% finish faster

PRICE
$0.75

per 1k SERPs at volume

Stop maintaining scrapers

Google reshuffles the page. Your code shouldn't care.

  • Rotating proxies & residential IPs
  • Rate limits and retries
  • A headless fleet to keep warm
  • A parser per SERP feature
  • Fix the parsers again next week
One integration commit replaces a backlog you’ll never finish.
scraper | git log
hotfix: markup changed, nulls in output
fix: headless Chrome OOM under load
fix: retry storm on 429s
chore: refresh residential IPs again
fix: selector drift after redesign
fix: rate-limit loop on every session
chore: rotate user-agents, again
fix: pagination broke after redesign
hotfix: wrong-country results on shared IPs
fix: consent interstitial before results
hotfix: markup changed, nulls in output
fix: headless Chrome OOM under load
fix: retry storm on 429s
chore: refresh residential IPs again
fix: selector drift after redesign
fix: rate-limit loop on every session
chore: rotate user-agents, again
fix: pagination broke after redesign
hotfix: wrong-country results on shared IPs
fix: consent interstitial before results
hotfix: markup changed, nulls in output
fix: headless Chrome OOM under load
fix: retry storm on 429s
chore: refresh residential IPs again
fix: selector drift after redesign
fix: rate-limit loop on every session
chore: rotate user-agents, again
fix: pagination broke after redesign
hotfix: wrong-country results on shared IPs
fix: consent interstitial before results
hotfix: markup changed, nulls in output
fix: headless Chrome OOM under load
fix: retry storm on 429s
chore: refresh residential IPs again
fix: selector drift after redesign
fix: rate-limit loop on every session
chore: rotate user-agents, again
fix: pagination broke after redesign
hotfix: wrong-country results on shared IPs
fix: consent interstitial before results
feat: integrate HasData API
Code Examples

One GET Request. That's the whole integration.

Start with just a query. Add more parameters when your use case needs them.

request example
curl -G 'https://api.hasdata.com/scrape/google/serp' \
	--data-urlencode 'q=Coffee' \
	--data-urlencode 'location=Austin,Texas,United States' \
	--data-urlencode 'deviceType=desktop' \
	--header 'x-api-key: <YOUR_API_KEY>' \
	--header 'Content-Type: application/json'
q * Search Query
Specify the search term for which you want to scrape the SERP.
location Location
Google canonical location for the search.
uule Encoded Location
The encoded location parameter.
domain Domain
Google domain to use. Default is google.com.
gl Country
The two-letter country code for the country you want to limit the search to.
hl Language
The two-letter language code for the language you want to use for the search.
lr Set Multiple Languages
The 'lr' parameter specifies the language of the websites to return results from. This parameter filters results based on the language of the web content.
tbs Advanced Search Parameters
This parameter supports various filters that can be combined by separating them with a comma. Here are examples of these filters: - Specific Time Range: `cdr:1,cd_min:10/17/2018,cd_max:3/8/2021` - Filter results to show only those within the defined date range. - Sort by Date: `sbd:1` - Results are sorted by date, from the most recent to the oldest. - Sort by Relevance: `sbd:0` - Results are sorted by relevance to the search query. - Sites with Images: `img:1` - Only show results from webpages that contain images. Quick Date Range (qdr): - `qdr:h` - Show results from the past hour. - `qdr:d` - Limit results to the past day. - `qdr:w` - Filter results from the week. - `qdr:m` - Display results from the past month. - `qdr:y` - Show results from the past year. - `qdr:h10`, `qdr:d10`, `qdr:w10`, `qdr:m10`, `qdr:y10` - Specify a number to show results from the last 10 hours, days, weeks, months, or years respectively. These filters enhance the control over search results, allowing for precise retrieval of information based on specific criteria.
safe Adult Content Filtering
Adult Content Filtering option.
filter Results Filtering
Defines whether to enable or disable the filters for 'Similar Results' and 'Omitted Results'. Set to 1 (default) to enable these filters, or 0 to disable them.
nfpr Auto-corrected Results
Controls if auto-corrected results are shown. 0 includes them (default), 1 shows only the original query. Google may still return auto-corrected results if no others are available.
start Result Offset
This parameter specifies the number of search results to skip and is used for implementing pagination. For example, a value of 0 (default) indicates the first page of results, 10 refers to the second page, and 20 to the third page. For Google Local Results, the start value must be in multiples of 20, such as 20 for the second page, 40 for the third page, etc.
num Number of Results
Number of results per page, ranging from 10 to 100.
tbm Search Type
Specify the type of search.
deviceType Device
Specify the device type for the search.
ludocid Google Place ID
The Google Place ID for a specific location.
lsig Additional Google Place ID
Additional Google Place ID.
kgmid Google Knowledge Graph ID
Google Knowledge Graph ID.
si Google Cached Search Parameters ID
Google Cached Search Parameters ID.
TRY ALL 19 PARAMETERS FREE
No-Code Alternative

Get Google SERP data without code

Prefer no code? Get the same SERP data from a visual scraper. No API, no setup, just a query and a location.

Google SERP Scraper
Google SERP Scraper
Search query
pizza near me
Location
Austin, Texas
Run scrape
Response

Every SERP feature, one predictable schema

The same keys come back on every request. Map the fields once and forget about it.

organicResults.json
[
  {
    "position": 1,
    "title": "Starbucks",
    "link": "https://en.wikipedia.org/wiki/Starbucks",
    "displayedLink": "https://en.wikipedia.org › wiki › Starbucks",
    "source": "Wikipedia",
    "snippet": "Starbucks Corporation is an American multinational chain of coffeehouses and roastery reserves headquartered in Seattle, Washington. It was founded in 1971",
    "snippetHighlitedWords": [
      "an American multinational chain of coffeehouses and roastery reserves"
    ]
  }
]
Fields in organicResults
position number

Rank on the page

title string

Result title

link string

Destination URL

displayedLink string

Breadcrumb-style shown URL

source string

Site / brand name

snippet string

Description text

snippetHighlitedWords string[]

Terms Google bolded

What We Offer

An all-in-one scraping service

Every feature you need to collect Google search results data from thousands to millions of requests.

Loved by developers

Teams that deleted their scraper

Now it's the part of the pipeline they don't think about

4.8 ★★★★★
across 100+ reviews on 5 platforms
Trustpilot Trustpilot ★★★★★

HasData delivers exactly what we need: speed and comprehensive search features. It's the fastest API we've used in this space. Plus, their customer support is fantastic.

Denver Sinclair
Denver Sinclair
Capterra Capterra ★★★★★

The SERP API provides accurate, structured search engine data across multiple regions and devices, enabling us to monitor market trends and performance with ease.

DD
Doaa D.
Trustpilot Trustpilot ★★★★★

We use the Google SERP API by HasData for its AI-overview feature. It delivers real-time data with consistent reliability. The JSON output includes an actual SERP screenshot, ensuring full accuracy.

Liam Hawthorne
Liam Hawthorne
Capterra Capterra ★★★★★

We rely on HasData for search performance data and broader scraping needs. Their APIs deliver highly structured data that integrates directly into our platforms.

JN
Jacob N.
Trustpilot Trustpilot ★★★★

We are using this service for google scraping and it works well. We used to use several services, but this looks like best match efficiency/cost.

Jan Svanda
Jan Svanda
CEO at E-solutions LLC
Pricing

Plans that get cheaper at scale

Fixed price, fixed volume, no surprises at the end of the month. Upgrade when you need more.

Free
$0 /mo
One-time free trial
100 SERPs to start
1 concurrent request
Team seats
Community support
Start free
Startup
$41 /mo
$2.04 / 1k SERPs
20K SERPs / month
15 concurrent requests
Team seats
Email support
Get started
Business
Recommended
$83 /mo
$0.82 / 1k SERPs
100K SERPs / month
30 concurrent requests
Team seats
Priority email support
Get started
Growth
$208 /mo
$0.69 / 1k SERPs
50 concurrent requests
Team seats
Dedicated account manager
Get started
Monthly SERP volume
Free 100K 500K 2M 6M 10M
Best fit
Business
SERPs / mo
100K
Concurrency
30
$ / 1k SERPs
$0.82
$83 /mo
Get Started
Enterprise
Custom price based on required volume

Past 100M scrapes a month, or terms the self-serve plans do not cover. We shape the contract around your workload.

Credits rollover
Unused credits carry into the next billing period.
Concurrency 2000+
Parallel request limits set to your peak load.
#1 request priority
Highest speed, always first in the queue.
Personal manager
A direct line to the founding team.
SSO
SAML single sign-on for the whole team.
SOC-2 compliance
Security review, DPA, and audit reports.
Talk to sales Quote within one business day
FAQ

Questions, answered

1 Grab your API key 2 Send a GET request 3 Get structured JSON

Your first Google SERP
is minutes away

100 SERPs free · no credit card