Google Search Results Scraper - Rankings, SERP, Position avatar

Google Search Results Scraper - Rankings, SERP, Position

Pricing

from $11.00 / 1,000 source checks

Go to Apify Store
Google Search Results Scraper - Rankings, SERP, Position

Google Search Results Scraper - Rankings, SERP, Position

Scrape Google search results for any keyword: position, title, URL, domain and snippet, and where your own site ranks. Export to JSON, CSV or Excel, or call it from the API, n8n or Make. No login or Google API key needed. For SEO rank checks, keyword research and competitor analysis.

Pricing

from $11.00 / 1,000 source checks

Rating

0.0

(0)

Developer

Khandji Omar

Khandji Omar

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

0

Monthly active users

17 hours ago

Last modified

Share

Google Search Results Scraper — Rankings, SERP, Position

Scrape Google search results for any keyword: position, title, URL, domain and snippet, and where your own site ranks. Export to JSON, CSV or Excel, or call it from the API, n8n or Make. No login or Google API key needed. For SEO rank checks, keyword research and competitor analysis.

Free tier — 10 results free on every run

The first 10 results of every run are free, on every run you ever make — not a one-off trial. Run it on your own subjects and see the real output before you are billed for a single result.

One guard: the free allowance never covers more than half of a run, so a run returning 6 results gets 3 free. That keeps the offer sustainable.

What it does

Run it once and get the full, current data as clean rows you can export to JSON, CSV or Excel, or pull through the API. Need only fresh data? Turn on monitorEnabled and schedule it: every later run returns only what is new or changed since the previous one, so you never re-download or re-pay for the same rows.

Why this scraper

  1. Try before you pay. The first 10 results of every run are free, on every run.
  2. Pay only for data delivered. Failed sources and failed inputs are never billed.
  3. Hard cost cap. Set maxTotalChargeUsd and a run can never cost more than you allow.
  4. Only-new mode. With monitorEnabled on a schedule, you get just the new or changed rows, plus a spike signal when volume suddenly jumps.
  5. Clean, normalized rows with the same field names every run, plus a RUN_SUMMARY.json — ready for spreadsheets, databases, n8n/Make/Zapier and AI agents (MCP).

Example input

{
"keywords": [
"running shoes",
"project management software"
]
}

This returns every website ranking on page 1 for each keyword, with its position, title, URL and description. Add "trackedDomains": ["yourshop.com"] to get only your own best position per keyword. To track rankings over time, schedule it with monitorEnabled: true: the first monitored run stores a free baseline, later runs return only position changes.

Output

Each row is a normalized record: record_id, change_type, keyword, domain, position, title, url, description, plus previous_position, position_change and magnitude on monitored runs. A RUN_SUMMARY.json accompanies every run with the aggregated signal (counts, velocity spikes, trend).

How you're charged

  • Ranking change alert — billed once per new ranking change since the last check (this is the only charge that scales with change).
  • Monitoring check ($0.02) — only when you turn on scheduled monitoring (monitorEnabled), once per target per run, and only when the source responded. One-off runs never pay it: you pay only per result.
  • One-off runs pay only per result. The monitoring check applies only to scheduled monitoring; every upstream call is capped, so a run can never cost more than you allow.

How to use it in 3 steps

  1. Click Try for free and fill in Keywords to track (keywords).
  2. Optional: adjust the other fields; every one has a description and a sensible default.
  3. Click Start and download the results as JSON, CSV or Excel, or read them from the API.

Use cases

  • SEO rank checks
  • Keyword research
  • Competitor analysis

Use it from code (API)

Every Apify Actor is an API. Start a run and read the results with one call.

Python

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("om_kh/google-search-results-scraper").call(run_input={"keywords": ["running shoes", "project management software"], "countryCode": "us", "languageCode": "en"})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('om_kh/google-search-results-scraper').call({
"keywords": [
"running shoes",
"project management software"
],
"countryCode": "us",
"languageCode": "en"
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

One HTTP call (cURL) — runs the Actor and returns the dataset in the same response:

curl -X POST "https://api.apify.com/v2/acts/om_kh~google-search-results-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"keywords": ["running shoes", "project management software"], "countryCode": "us", "languageCode": "en"}'

Integrations: n8n, Make, Zapier, Google Sheets

  • n8n — the official Apify node, operation Run Actor and get dataset, Actor om_kh/google-search-results-scraper.
  • Make — Apify › Run an Actor, then Apify › Get Dataset Items.
  • Zapier — Apify › Run Actor; map the dataset items into your next step.
  • Google Sheets, webhooks, Slack — add an integration from the Integrations tab of this Actor.
  • Schedules — run it every hour or day from Schedules in Apify Console.

Use it from an AI agent (MCP and x402)

Connect Claude Desktop, Cursor, VS Code or any MCP client to Apify's MCP server at https://mcp.apify.com and add this Actor, om_kh/google-search-results-scraper, as a tool — the agent passes the same JSON as the run input and gets the dataset back.

AI agents that pay with x402 can run it too, without an Apify account: the Actor charges only per result delivered, so an agent pays exactly for what it gets.

FAQ

Is it legal to scrape Google? This Actor collects only publicly available Google data and never logs in. You are responsible for how you use it; check Google's terms and your local law (GDPR, CCPA) if you store personal data, and ask a lawyer if unsure.

Do I need an account, cookies or an API key? No. You only need an Apify account to run it.

What data do I get? Google results with position, title, URL and the site's rank. Download it as JSON, CSV, Excel, HTML or XML, or read it from the API.

Am I charged when something fails? No. An input that fails is listed with its reason in the run summary and is never charged.

Can I run it on a schedule? Yes. Create a schedule in Apify Console (hourly, daily, weekly) and connect webhooks, Google Sheets, Slack, n8n, Make or Zapier.

Can I use it from Python, JavaScript or an AI agent? Yes: see the code samples above, or connect AI agents through MCP with the serp_rank_check tool.

More Actors from the same author