# SpyFu Domain Scraper — SEO & PPC Competitor Report (`hipersoft/spyfu-domain-scraper`) Actor

Bulk SEO and PPC reports for any domain from SpyFu: organic keywords, monthly SEO clicks and value, Google Ads budget, paid keywords, top keywords, competitors, top countries and monthly history. Competitor research for agencies. Export CSV/JSON.

- **URL**: https://apify.com/hipersoft/spyfu-domain-scraper.md
- **Developed by:** [hiper soft](https://apify.com/hipersoft) (community)
- **Stats:** 5 total users, 5 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.004 / domain report

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## SpyFu Domain Scraper: Bulk SEO & PPC Competitor Reports

**SpyFu Domain Scraper** builds an **SEO and PPC competitor report for any website** from SpyFu data. For each domain you get **organic keyword count, estimated monthly SEO clicks and their dollar value, average ranking, paid keyword count, monthly Google Ads clicks and estimated ad budget**. Each report also includes **top organic and paid keywords, top SEO and PPC competitors, the countries where the site ranks, and month-by-month history**. You can analyze **hundreds of domains in one run** and export to **CSV, Excel or JSON**, with no SpyFu subscription and no per-seat fees.

### What does SpyFu Domain Scraper do?

SpyFu estimates how much search traffic every website gets from Google and how much it spends on Google Ads. This scraper pulls that competitive intelligence for a whole list of domains at once:

- 📈 **SEO metrics**: organic keywords, monthly organic clicks, organic traffic value in USD, average organic rank and an SEO strength score.
- 💰 **PPC metrics**: paid keywords, monthly paid clicks, estimated monthly Google Ads budget and average ad position.
- 🔑 **Top keywords**: the most valuable organic keywords, newly ranked keywords and the most successful paid keywords, with search volume, keyword difficulty, CPC and ranking URL.
- 🥊 **Competitors**: top organic (SEO) and paid (PPC) competitors with the number of shared keywords.
- 🌍 **Top countries**: where the domain ranks and how many keywords it has in each country.
- 🗓️ **History**: monthly SEO and PPC metrics going back as far as you need.

### What data can you get?

| Metric | Description |
|---|---|
| `seoStrength` | Overall SEO strength score (0–100). |
| `organicKeywords` | Number of keywords the domain ranks for. |
| `monthlyOrganicClicks` | Estimated organic clicks per month. |
| `monthlyOrganicValueUsd` | What those clicks would cost in Google Ads. |
| `averageOrganicRank` | Average organic position. |
| `paidKeywords` | Number of keywords the domain buys ads on. |
| `monthlyPaidClicks` | Estimated paid clicks per month. |
| `monthlyAdBudgetUsd` | Estimated monthly Google Ads spend. |
| `averageAdRank` | Average ad position. |
| `topOrganicKeywords` | Most valuable organic keywords with volume, difficulty, CPC, rank and URL. |
| `newlyRankedKeywords` | Keywords the domain started ranking for recently. |
| `topPaidKeywords` | Most successful paid keywords. |
| `organicCompetitors` / `paidCompetitors` | Top competing domains with shared keywords. |
| `topCountries` | Keyword counts by country. |
| `history` | Month-by-month SEO and PPC metrics. |

### Use cases

- **SEO and PPC agencies**: run quick audits and pitch decks for prospects in bulk.
- **Competitor research**: see how much traffic and ad spend your competitors have, and which keywords drive it.
- **Lead generation**: qualify prospects by ad budget. Companies spending on Google Ads are buying marketing services.
- **Market sizing and due diligence**: compare online visibility across a list of companies or acquisition targets.
- **Content strategy**: find a competitor's most valuable and newly ranked keywords.
- **Tracking**: schedule monthly runs to follow competitors' SEO and PPC trends.

### How to get SEO and PPC data for a list of domains

1. Click **Try for free** to open SpyFu Domain Scraper in Apify Console.
2. Paste your **domains**, one per line (bare domains or full URLs).
3. Pick the **country** (Google market).
4. Choose whether to include **top keywords**, **competitors** and **monthly history**.
5. Click **Start** and download one report per domain as **CSV, Excel or JSON**.

### Input

#### Example input

```json
{
  "domains": ["hubspot.com", "shopify.com", "apify.com"],
  "country": "US",
  "includeKeywords": true,
  "includeCompetitors": true,
  "includeHistory": true,
  "historyMonths": 12
}
```

| Field | Description |
|---|---|
| **Domains** | Websites to analyze. One report per domain. |
| **Country** | Google market: US, UK, CA, AU, DE, FR, ES, IT, NL, BR, MX, IN and more. |
| **Include top keywords** | Most valuable, newly ranked and top paid keywords. |
| **Include competitors** | Top SEO and PPC competitors. |
| **Include monthly history** | Month-by-month metrics. |
| **History months** | How many recent months to include. |

### Output

#### Domain report example

```json
{
  "domain": "shopify.com",
  "country": "US",
  "month": "2026-09",
  "seoStrength": 72,
  "organicKeywords": 1102000,
  "monthlyOrganicClicks": 1503000,
  "monthlyOrganicValueUsd": 15490000,
  "averageOrganicRank": 38.2,
  "paidKeywords": 344700,
  "monthlyPaidClicks": 10230000,
  "monthlyAdBudgetUsd": 10090000,
  "averageAdRank": 2.2,
  "topCountries": [{ "country": "US", "organicKeywords": 1102000, "isPrimary": true }, { "country": "UK", "organicKeywords": 712500, "isPrimary": false }],
  "topOrganicKeywords": [{ "keyword": "shopify", "rank": 1, "url": "https://www.shopify.com/", "searchVolume": 870000, "keywordDifficulty": 9, "costPerClick": 5.16, "estimatedMonthlyClicks": 143000 }],
  "organicCompetitors": [{ "domain": "wix.com", "commonKeywords": 61000 }, { "domain": "hubspot.com", "commonKeywords": 53067 }],
  "paidCompetitors": [{ "domain": "wix.com", "commonKeywords": 9800 }],
  "history": [{ "month": "2026-08", "organicKeywords": 1090000, "monthlyOrganicClicks": 1480000, "monthlyAdBudgetUsd": 9800000 }]
}
```

Domains without enough search data in the chosen country get a row with `hasData: false` and an `error` message, and **are not charged**.

### How much does it cost?

SpyFu Domain Scraper uses **pay-per-report** pricing: one fixed price per domain report, and domains without data are free. Higher Apify plans get an automatic discount. See the **Pricing** tab for the exact price per domain.

### More marketing and SEO tools

- [Tech Stack Detector](https://apify.com/hipersoft/tech-stack-detector): find the CMS, analytics, ad pixels and hosting behind any website.
- [Google Search Scraper](https://apify.com/hipersoft/google-search-scraper): Google search results for any query.
- [Website Content Crawler Pro](https://apify.com/hipersoft/web-content-crawler-pro): turn whole websites into clean Markdown.

### FAQ

**Do I need a SpyFu account?**
No. Just add domains and click Start.

**How accurate are the traffic and budget numbers?**
They are SpyFu's estimates based on keyword rankings, search volumes and CPCs. Use them to compare sites and spot trends, not as exact analytics.

**How many keywords and competitors are included?**
Each report includes the top keywords in three lists (most valuable, newly ranked and top paid) and the top SEO and PPC competitors.

**Which countries are supported?**
US, UK, Canada, Australia, Germany, France, Spain, Italy, the Netherlands, Brazil, Mexico, India and more. Pick one per run.

**Can I analyze hundreds of domains?**
Yes. Paste a long list; domains are processed in parallel.

**What formats can I export?**
CSV, Excel, JSON, XML, HTML and RSS, or read the results through the Apify API.

**Can I integrate SpyFu Domain Scraper with other apps?**
SpyFu Domain Scraper can be connected with almost any cloud service or web app thanks to [integrations on the Apify platform](https://apify.com/integrations). It works with [Make](https://apify.com/integrations/make), [Zapier](https://apify.com/integrations/zapier), [Slack](https://docs.apify.com/platform/integrations/slack), [Airbyte](https://docs.apify.com/platform/integrations/airbyte), [GitHub](https://docs.apify.com/platform/integrations/github), [Google Drive](https://docs.apify.com/platform/integrations/drive) and [many more](https://apify.com/integrations), plus the [Apify API](https://docs.apify.com/api/v2), JS/Python clients and MCP. Or use [webhooks](https://docs.apify.com/platform/integrations/webhooks) to trigger an action whenever a run finishes.

### Related Actors

- [Tech Stack Detector](https://apify.com/hipersoft/tech-stack-detector)
- [Google Search Scraper](https://apify.com/hipersoft/google-search-scraper)

### Notes

Original clean-room implementation. Returns only publicly available data; you are responsible for compliance with SpyFu's terms. Not affiliated with SpyFu.

# Actor input Schema

## `domains` (type: `array`):

Websites to analyze, e.g. hubspot.com or https://www.shopify.com. One report per domain. Bulk lists are fine.

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

Google market to report on.

## `includeKeywords` (type: `boolean`):

Add the domain's most valuable organic keywords, newly ranked keywords and most successful paid keywords.

## `includeCompetitors` (type: `boolean`):

Add the top organic (SEO) and paid (PPC) competitors with shared keyword counts.

## `includeHistory` (type: `boolean`):

Add month-by-month SEO and PPC history.

## `historyMonths` (type: `integer`):

How many recent months of history to include.

## `proxyConfiguration` (type: `object`):

Not required for normal use.

## Actor input object example

```json
{
  "domains": [
    "hubspot.com",
    "shopify.com"
  ],
  "country": "US",
  "includeKeywords": true,
  "includeCompetitors": true,
  "includeHistory": true,
  "historyMonths": 12,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (type: `string`):

The results as dataset items.

# 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 = {
    "domains": [
        "hubspot.com",
        "shopify.com"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("hipersoft/spyfu-domain-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 = { "domains": [
        "hubspot.com",
        "shopify.com",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("hipersoft/spyfu-domain-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "domains": [
    "hubspot.com",
    "shopify.com"
  ]
}' |
apify call hipersoft/spyfu-domain-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,hipersoft/spyfu-domain-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/TALE4GI5huRcDkjce/builds/TE7uxfNLHCZ8DM3kZ/openapi.json
