Skip to main content

Google Search Scraper API

Written by Kadri - RichAPI Support Team

POST /google_search_scraper_sync • Credits: 0.2 credits per organic result returned

Google Search Scraper runs a Google search and returns each results page as structured JSON. One object in the response array holds the results for one page. Each organic result in organicResults costs 0.2 credits, so a response with 10 organic results costs 2 credits, or $0.04.

What Google Search Scraper does

Google Search Scraper sends a search query to Google and returns the search engine results page. RichAPI reads the page through a managed scraping provider. You do not need a proxy pool, a headless browser, or a CAPTCHA solver. The search_query parameter carries the search term. The limit parameter sets how many result pages Google Search Scraper fetches for that term. One fetched page becomes one object in the response array. RichAPI bills each organic result in those objects at 0.2 credits.

Endpoint

  • Method: POST

  • URL: https://api.richapi.ai/api/v1/google_search_scraper_sync

  • Authentication: x-api-key header

  • Response: synchronous JSON array

  • Credits: 0.2 per organic result in the response

How to send a Google Search Scraper request

  1. Create an API key in the RichAPI dashboard.

  2. Set the x-api-key header to your API key.

  3. Set the Content-Type header to application/json.

  4. Add search_query to the request body. This parameter is required.

  5. Set limit to the number of Google result pages that you want.

  6. Send the request to https://api.richapi.ai/api/v1/google_search_scraper_sync.

  7. Read the organicResults array inside each object of the response.

  8. Read richapi_meta.credits.charged in the first object of the response to confirm the credit charge.

The three samples below send limit: 1. Each sample returns one object. Each organic result in that object costs 0.2 credits.

cURL

curl -X POST https://api.richapi.ai/api/v1/google_search_scraper_sync   
-H "x-api-key: YOUR_API_KEY"
-H "Content-Type: application/json"
-d '{
"search_query": "best CRM software 2025",
"limit": 1
}'

Python

import requests

response = requests.post(
"https://api.richapi.ai/api/v1/google_search_scraper_sync",
headers={"x-api-key": "YOUR_API_KEY"},
json={
"search_query": "best CRM software 2025",
"limit": 1,
},
timeout=60,
)
response.raise_for_status()
print(response.json())

Node.js

const response = await fetch(
"https://api.richapi.ai/api/v1/google_search_scraper_sync",
{
method: "POST",
headers: {
"x-api-key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
search_query: "best CRM software 2025",
limit: 1,
}),
},
);

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

Request parameters

The Google Search Scraper request body accepts two parameters. RichAPI rejects every other key with a 400 response.

Parameter

Type

Required

Default

Description

search_query

string

Yes

""

The Google search term, for example best CRM software 2025.

limit

integer

No

0

The number of Google result pages to fetch. One fetched page returns one object.

The n8n operation google_search_scraper_sync and the MCP tool google_search_scraper_sync use the same two names as the request body: search_query and limit.

Response

A Google Search Scraper response is a JSON array. The array holds one object for each result page that the request fetched. This is an example response for the request above, which sends limit: 1. The values are illustrative.

[
{
"searchQuery": {
"term": "best CRM software 2025",
"url": "https://www.google.com/search?q=best+CRM+software+2025",
"device": "DESKTOP",
"page": 1,
"type": "SEARCH",
"domain": "google.com",
"countryCode": "US"
},
"url": "https://www.google.com/search?q=best+CRM+software+2025",
"hasNextPage": true,
"resultsTotal": 48300000,
"relatedQueries": [
{
"title": "best crm for small business 2025",
"url": "https://www.google.com/search?q=best+crm+for+small+business+2025"
},
{
"title": "crm software comparison",
"url": "https://www.google.com/search?q=crm+software+comparison"
}
],
"paidResults": [
{
"title": "Northwind CRM — Pipeline Automation Built In",
"url": "https://www.northwindcrm.com/pricing",
"displayedUrl": "https://www.northwindcrm.com",
"description": "Start a 14-day trial. No credit card required.",
"type": "paid",
"position": 1
}
],
"paidProducts": [],
"organicResults": [
{
"title": "The 9 Best CRM Software Platforms of 2025",
"url": "https://www.softwarereviewhub.com/best-crm-software",
"displayedUrl": "https://www.softwarereviewhub.com › best-crm-software",
"description": "We compared 30 CRM platforms on pricing, pipeline automation, and reporting depth.",
"type": "organic",
"position": 1,
"emphasizedKeywords": ["best", "CRM software", "2025"]
},
{
"title": "CRM Buyer Guide 2025: Pricing and Feature Comparison",
"url": "https://www.lumengridsystems.com/blog/crm-buyer-guide-2025",
"displayedUrl": "https://www.lumengridsystems.com › blog › crm-buyer-guide-2025",
"description": "A buyer guide for sales teams of 10 to 200 people, updated for 2025.",
"type": "organic",
"position": 2,
"emphasizedKeywords": ["CRM", "2025"]
}
],
"aiOverview": {
"type": "ai_overview",
"content": "Buyers rank CRM platforms in 2025 on pipeline automation, native email, and reporting.",
"sources": [
{
"url": "https://www.softwarereviewhub.com/best-crm-software",
"title": "The 9 Best CRM Software Platforms of 2025",
"description": "A comparison of 30 CRM platforms for 2025."
}
]
},
"htmlSnapshotUrl": "https://storage.example.com/snapshots/page-1-html"
}
]

The example response holds 2 organic results. The charge is 2 x 0.2 = 0.4 credits, or $0.008.

Response fields

Every field in this table belongs to one object of the Google Search Scraper response array.

Field

Type

Description

searchQuery

object

The search that produced this result page.

searchQuery.term

string

The search term that the request sent in search_query.

searchQuery.url

string

The Google URL that the provider requested.

searchQuery.device

string

The device profile of the request, for example DESKTOP.

searchQuery.page

integer

The page number of this result page.

searchQuery.type

string

The Google search type, for example SEARCH.

searchQuery.domain

string

The Google domain that served the page, for example google.com.

searchQuery.countryCode

string

The two-letter country code of the search.

url

string

The URL of the result page that the provider read.

hasNextPage

boolean

true for a term with a further Google result page.

resultsTotal

integer

The total number of results that Google reports for the term.

relatedQueries

array of objects

The related searches that Google shows for the term.

relatedQueries[].title

string

The text of the related search.

relatedQueries[].url

string

The Google URL of the related search.

paidResults

array of objects

The paid text ads on the result page.

paidProducts

array of objects

The paid shopping listings on the result page.

organicResults

array of objects

The organic results on the result page.

organicResults[].title

string

The title text of the organic result.

organicResults[].url

string

The destination URL of the organic result.

organicResults[].displayedUrl

string

The breadcrumb URL that Google shows under the title.

organicResults[].description

string

The snippet text of the organic result.

organicResults[].type

string

The result type, for example organic.

organicResults[].position

integer

The rank of the result on the page. The first result is 1.

organicResults[].emphasizedKeywords

array of strings

The words that Google emphasizes in the snippet.

aiOverview

object

The Google AI overview for the term.

aiOverview.type

string

The type of the AI overview block.

aiOverview.content

string

The text of the AI overview.

aiOverview.sources

array of objects

The pages that the AI overview cites.

aiOverview.sources[].url

string

The URL of a cited page.

aiOverview.sources[].title

string

The title of a cited page.

aiOverview.sources[].description

string

The snippet of a cited page.

htmlSnapshotUrl

string

The location of the stored HTML snapshot of the result page.

How much does Google Search Scraper cost?

Google Search Scraper costs 0.2 credits for each organic result that the response returns. One credit costs $0.02 on the 1,000 and 5,000 credit packs. Larger packs cost less per credit. RichAPI counts the entries in organicResults across every object in the response array. Paid results, related queries and the AI overview are not counted. The limit parameter sets how many result pages one request fetches, so a higher limit returns more organic results.

The formula is:

credits = number of organic results in the response x 0.2
cost = credits x $0.02

CAUTION: Set limit on every Google Search Scraper request. Each extra result page adds its organic results to the charge.

Organic results returned

Arithmetic

Credits

Cost

1

1 x 0.2

0.2

$0.004

10

10 x 0.2

2

$0.04

30

30 x 0.2

6

$0.12

100

100 x 0.2

20

$0.40

1,000

1,000 x 0.2

200

$4.00

RichAPI bills only a 2xx response. A failed Google Search Scraper request costs 0 credits. A response with no organic results also costs 0 credits.

How do you control the cost of a Google Search Scraper request?

The limit parameter is the cost control for Google Search Scraper. limit sets the number of result pages, and the organic results on those pages set the charge. Set limit to 1 for a rank check of the first Google page. When you need results below the first page, raise limit.

Task

limit value

Check the first-page ranking of one keyword

1

Read the first three Google pages of one keyword

3

Build a deep link list for one keyword

10

CAUTION: Do not send Google Search Scraper without limit. Send a limit of 1 or more on every request.

Google Search Scraper or Bing Search: which one costs less?

Google Search Scraper and Bing Search bill on different units. Google Search Scraper costs 0.2 credits for each organic result in the response. Bing Search costs 1 credit per call, and the number of results in the Bing Search response does not change that charge. One Bing Search call returns one page of results, and the limit parameter sets the page size, up to 50.

Job

Google Search Scraper

Bing Search

One query, 5 results

1 credit, $0.02

1 call, 1 credit, $0.02

One query, 10 results

2 credits, $0.04

1 call with limit: 10, 1 credit, $0.02

One query, 50 results

10 credits, $0.20

1 call with limit: 50, 1 credit, $0.02

100 queries, 10 results each

200 credits, $4.00

100 calls, 100 credits, $2.00

A call that returns no result

0 credits, $0.00

1 credit, $0.02

At 5 results per query the two endpoints cost the same. Below 5 results, Google Search Scraper costs less. Above 5 results, Bing Search costs less, because one call returns up to 50 result links for 1 credit. An empty Google Search Scraper response costs 0 credits. An empty Bing Search response costs 1 credit. The data that you need decides the choice.

What you need

The right choice

The Google AI overview for a term

Google Search Scraper

The paid text ads or the paid shopping listings on a Google page

Google Search Scraper

The related queries that Google shows for a term

Google Search Scraper

The Google ranking position of a URL

Google Search Scraper

No charge for a search that returns nothing

Google Search Scraper

Many plain result links at the lowest cost

Bing Search

A flat charge that the result count never changes

Bing Search

How do you use Google Search Scraper for SEO research?

Google Search Scraper reports the ranking order of a Google page, the related searches, and the AI overview sources. Use it to track keyword positions and to find the pages that Google cites.

  1. Send one request for each target keyword. Set limit to 1.

  2. Read organicResults in the first object of the response array.

  3. Read position and url for each entry to record the ranking order.

  4. Read relatedQueries to collect the searches that Google links to the term.

  5. Read aiOverview.sources to find the pages that Google cites in the AI overview.

  6. Read resultsTotal to record how many pages compete for the term.

  7. Repeat the request on a schedule to track a position over time.

If the first page holds 10 organic results, one keyword at limit: 1 costs 2 credits, or $0.04. A weekly check of 50 such keywords costs 100 credits per run, or $2.00. The same check across 52 weeks costs 5,200 credits, or $104.00.

How do you use Google Search Scraper for competitive research?

Google Search Scraper returns the paid results and the organic results of the same page. Use it to see which competitors buy a keyword and which competitors rank for it.

  1. Send a request for a buying keyword, for example best CRM software 2025. Set limit to 1.

  2. Read paidResults to list the competitors that buy the keyword.

  3. Read paidProducts to list the shopping listings for the keyword.

  4. Read organicResults[].displayedUrl to list the domains on the first page.

  5. Send the same request for each competitor brand name.

  6. Read organicResults in each response to find the pages that rank for that brand.

If each page holds 10 organic results, a scan of 20 buying keywords at limit: 1 costs 40 credits, or $0.80. A scan of the same 20 keywords across the first three pages costs 120 credits, or $2.40.

Errors

Status

Meaning

What to do

400

The request body failed validation.

Correct the parameter that the message names. Send only search_query and limit.

401

The API key is missing, wrong or revoked.

Send a valid key in the x-api-key header.

402

Insufficient credits: the organization has too few credits. Or Monthly spend limit reached: the team hit its monthly spend limit.

Buy credits in the RichAPI dashboard, or ask the organization owner to raise the spend limit.

403

Endpoint not available on your plan: this API key has no access to this endpoint.

Call GET /api/v1/my-endpoints to list the endpoints this key can use. Contact support for access.

405

The request used a method other than POST.

Send the request again with POST.

429

Rate limit exceeded (too many requests per second).

Wait for the Retry-After seconds, then retry the request.

500

The API failed.

Send the request again. If the failure repeats, contact support.

502

The upstream search provider failed.

Send the request again with exponential backoff.

A failed request returns a JSON object with an error field. RichAPI charges no credits for a failed request.

A 400 response with the message Unknown input field(s) names each key that RichAPI does not accept. Remove those keys, then send the request again.

Frequently asked questions

How much does one Google Search Scraper request cost?

One Google Search Scraper request costs 0.2 credits for each organic result in the response, and one credit costs $0.02. A response with 10 organic results costs 2 credits, or $0.04.

What does the limit parameter do in Google Search Scraper?

The limit parameter sets how many Google result pages one Google Search Scraper request fetches. Each fetched page returns one object in the response array, and each organic result in it costs 0.2 credits, so limit is the cost control.

Can you set other search options on a Google Search Scraper request?

No. The Google Search Scraper request body accepts only search_query and limit, and any other key returns 400. The search runs on desktop Google results.

Does Google Search Scraper charge for a request that returns no result?

No. RichAPI counts the organic results in the Google Search Scraper response and charges 0.2 credits for each one. A response with no organic results costs 0 credits, and a failed request costs 0 credits.

Which is cheaper, Google Search Scraper or Bing Search?

At 5 results per query the two cost the same: 5 Google organic results cost 1 credit, and one Bing Search call costs 1 credit. Bing Search costs less for more result links, because one Bing Search call returns up to 50 results for 1 credit.

Does Google Search Scraper return the Google AI overview?

Yes. Each object in the Google Search Scraper response array carries an aiOverview object with type, content, and a sources array. Each entry in sources holds the url, the title, and the description of a cited page.

Is Google Search Scraper synchronous?

Yes. Google Search Scraper returns the result pages in the response of the same HTTP request. Google Search Scraper needs no polling and no webhook.

Related articles

Did this answer your question?