# Google SERP Scraper (`novashieldai/google-serp-scraper`) Actor

Scrape Google search results including organic results, ads, People Also Ask, related searches, featured snippets, knowledge panels. Supports web, news, images, and shopping search.

- **URL**: https://apify.com/novashieldai/google-serp-scraper.md
- **Developed by:** [Ali haydar Karadaş](https://apify.com/novashieldai) (community)
- **Categories:** SEO tools, Developer tools
- **Stats:** 5 total users, 2 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $40.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Google SERP Scraper

Scrape Google search results pages -- organic results, ads, featured snippets, People Also Ask, knowledge panels, related searches, news, images, and shopping results. We built this to be the most complete Google SERP scraper available, returning every element on the search results page in clean, structured JSON.

### What does Google SERP Scraper do?

This actor supports four search types, each returning different result formats.

**Web search** returns the full Google search results page structure: organic results with position, title, URL, snippet, domain, date, and sitelinks. It also captures paid ads (top and bottom), featured snippets, People Also Ask questions with answers, related searches, and knowledge panel data when present. You get the total results count and search time too.

**News search** pulls Google News results for any query -- article title, URL, source name, publication date, thumbnail, and description. Great for media monitoring and trend tracking.

**Images search** returns Google Images results with image URL, source page URL, title, dimensions (width and height), and thumbnail URL.

**Shopping search** scrapes Google Shopping results including product title, price, store/source, URL, rating, review count, and thumbnail. Useful for price monitoring and competitive analysis.

All search types support language and country targeting, pagination, and configurable result counts up to 100 per query.

### What data do you get?

- Organic results: position, title, URL, displayed URL, description, domain, date, sitelinks, cached URL, featured flag
- Ad results: position, title, URL, displayed URL, description, top/bottom placement
- Featured snippet: text, source URL, source title, type (paragraph, list, table)
- People Also Ask: question, answer snippet, source URL, source title
- Related searches: query text and search URL
- Knowledge panel: title, type, description, source, image, key-value attributes
- News results: position, title, URL, source, date, thumbnail, description
- Image results: position, title, URL, source URL, dimensions, thumbnail
- Shopping results: position, title, price, source, URL, rating, review count, thumbnail
- Search metadata: query, language, country, total results count, time taken

### Who is this for?

- **SEO professionals** tracking keyword rankings and SERP feature presence
- **PPC managers** monitoring competitor ad copy and positioning
- **Content strategists** analyzing People Also Ask and featured snippets for content ideas
- **E-commerce teams** tracking Google Shopping prices and competitor listings
- **Researchers** collecting large-scale search data for market analysis

### How to use it

1. Choose your search type: web, news, images, or shopping.
2. Enter your search query.
3. Set the number of results you want (up to 100).
4. Optionally pick a language and country for localized results.
5. Run it and export your structured SERP data.

### Input parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| mode | string | web | Search type: web, news, images, or shopping |
| query | string | - | Search query. Required |
| num | integer | 10 | Number of results to return (1-100) |
| language | string | en | Language code: en, es, fr, de, it, pt, nl, pl, ru, ja, ko, zh, ar, tr, hi, sv, da, no, fi, th |
| country | string | us | Country code for localized results |
| page | integer | 1 | Results page number (1-10) |

### Sample output

```json
{
  "query": "best laptop 2026",
  "language": "en",
  "country": "us",
  "total_results": "About 1,240,000,000",
  "time_taken": "0.52 seconds",
  "organic_results": [
    {
      "position": 1,
      "title": "Best Laptops 2026: Top Picks for Every Budget",
      "url": "https://www.techradar.com/best/best-laptops",
      "displayed_url": "techradar.com > best > best-laptops",
      "description": "We tested over 50 laptops to find the best options for work, gaming, and everyday use...",
      "domain": "techradar.com",
      "date": "3 days ago",
      "is_featured": false
    }
  ],
  "featured_snippet": {
    "text": "The MacBook Pro M4 leads our ranking for the best overall laptop in 2026...",
    "url": "https://www.techradar.com/best/best-laptops",
    "title": "Best Laptops 2026 - TechRadar",
    "type": "paragraph"
  },
  "people_also_ask": [
    {
      "question": "What is the best laptop to buy right now?",
      "snippet": "The MacBook Pro M4 is our top pick for most users...",
      "url": "https://www.techradar.com/best/best-laptops",
      "title": "Best Laptops 2026"
    }
  ],
  "related_searches": [
    { "query": "best laptop for students 2026", "url": "https://www.google.com/search?q=..." }
  ]
}
```

### How much does it cost?

This actor costs **$0.003 per result**. 1,000 SERP queries run you $3, and 10,000 cost $30.

Every Apify account comes with $5 in free monthly credits, so you can run plenty of test queries for free.

### Common questions

**Can I track my keyword rankings over time?**
Yes. Schedule the actor to run daily or weekly with your target keywords, then compare your domain's position across runs. The structured output makes it straightforward to build a rank tracker on top of this.

**Does it return Google Ads data?**
Yes. Web search mode captures both top and bottom ads with titles, URLs, descriptions, and position numbers.

**Can I get results for specific locations within a country?**
The country parameter targets results at the national level. For city-level targeting, include the city name in your query (e.g., "plumber in Chicago").

### Contact & Custom Solutions

Need a custom scraper, higher volume, or a specific integration? We're here to help.

If anything isn't working right or you need support, don't hesitate to reach out.

- Telegram: [t.me/novashield\_dev](https://t.me/novashield_dev)
- Email: novashield.dev@gmail.com

# Actor input Schema

## `mode` (type: `string`):

Search type: 'web' for web results, 'news' for news, 'images' for image results, 'shopping' for products.

## `query` (type: `string`):

Search query string. Example: 'best restaurants in NYC'.

## `num` (type: `integer`):

Results Count

## `language` (type: `string`):

Search language code. Example: 'en', 'fr', 'de'.

## `country` (type: `string`):

Country code for localized results. Example: 'us', 'uk', 'de'.

## `page` (type: `integer`):

Page

## Actor input object example

```json
{
  "mode": "web",
  "query": "best laptop 2026",
  "num": 10,
  "language": "en",
  "country": "us",
  "page": 1
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "query": "best laptop 2026"
};

// Run the Actor and wait for it to finish
const run = await client.actor("novashieldai/google-serp-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "query": "best laptop 2026" }

# Run the Actor and wait for it to finish
run = client.actor("novashieldai/google-serp-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "query": "best laptop 2026"
}' |
apify call novashieldai/google-serp-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=novashieldai/google-serp-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/z9AqIVxvJpYiMLHHD/builds/ggEFDXuz4TfcPsYLs/openapi.json
