# Feedspot Email Scraper (`scrapyspider/feedspot-scraper`) Actor

Extracts emails from blogs and websites listed on Feedspot.com category pages. Searches Google for Feedspot listings, crawls them for website URLs, then scrapes contact emails from each site. Fully automated pipeline — just enter a niche keyword. Outputs deduplicated emails as JSON, CSV, or Excel.

- **URL**: https://apify.com/scrapyspider/feedspot-scraper.md
- **Developed by:** [ScrapySpider](https://apify.com/scrapyspider) (community)
- **Categories:** Lead generation, SEO tools, Automation
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

### Feedspot Email Scraper

Extract contact emails from blogs and websites listed on [Feedspot.com](https://www.feedspot.com/) category pages — automatically discovered via Google Search.

### Key Highlights

- **Fully automated pipeline** — Google Search → Feedspot category pages → website crawling → email extraction, all in one run
- **No manual URL collection needed** — just enter a niche keyword and the scraper finds relevant Feedspot lists automatically
- **Extracts emails from hundreds of websites per run** — scales to large niches with minimal effort
- **URL exclusion filters** — skip irrelevant results by providing partial URL patterns to exclude
- **Automatic deduplication** — all extracted emails are deduplicated before output
- **Clean JSON output** — ready for CRM import, outreach tools, or further processing

### What Data You Get

Each output row contains a single unique email address:

```json
{
  "email": "contact@example.com"
}
````

The scraper also persists all results to a named dataset called **AllEmails**, with the original search query attached for reference across multiple runs.

### Use Cases

- **Blogger outreach** — find contact emails for bloggers in any niche for PR campaigns and product reviews
- **Niche lead generation** — collect email addresses from websites listed in specific Feedspot categories
- **Content partnership discovery** — identify potential collaborators by extracting contacts from curated blog lists
- **Influencer and blogger recruitment** — build targeted lists of bloggers to recruit for campaigns or affiliate programs
- **Market research** — gather contact information for businesses and content creators in specific industries

### How to Use

1. **Click "Try for free"** on the Actor page in Apify Console.
2. **Enter your Google search query** in the `query` field. Use the format `<niche keyword> inurl:.feedspot.com` — for example, `mommy inurl:.feedspot.com` finds Feedspot pages listing mommy blogs.
3. **Optionally add URL exclusion patterns** in the `excludeList` field to filter out unwanted results (e.g., `["influencers."]`).
4. **Set crawling limits** — adjust `maxRequestsPerCrawl` (Feedspot URLs) and `maxRequestsPerStartUrl` (pages per website) to control run size and cost.
5. **Click "Start"** to begin the run.
6. **Download results** from the Output tab once the run completes. Export as JSON, CSV, or Excel.

### Input Parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `query` | String | Yes | — | Google search query to find Feedspot category pages. Example: `mommy inurl:.feedspot.com` |
| `excludeList` | Array of Strings | No | `["influencers."]` | Partial URL strings to exclude from results. Any Feedspot-listed URL containing these substrings will be skipped. |
| `maxRequestsPerCrawl` | Integer | No | `100` | Maximum number of Feedspot URLs to crawl during the run. |
| `maxRequestsPerStartUrl` | Integer | No | `20` | Maximum number of pages to crawl per extracted website when searching for contact emails. |

### Output Sample

```json
{
  "email": "sarah@mommyblogger.com"
}
```

A typical run targeting a broad niche can return dozens to hundreds of unique email addresses, depending on the number of websites listed on the matching Feedspot pages.

### Pricing

Free to use — standard Apify platform credits apply based on compute and memory usage.

**Important:** This Actor calls two other Actors during each run:

- [`apify/google-search-scraper`](https://apify.com/apify/google-search-scraper) — for the initial Google Search step
- [`vdrmota/contact-info-scraper`](https://apify.com/vdrmota/contact-info-scraper) — for email extraction from each discovered website

Both consume additional platform credits. Larger runs (more Feedspot URLs or deeper website crawling) will use proportionally more credits.

### Technical Notes

- Uses **Apify residential proxy** (`RESIDENTIAL` proxy group) for crawling Feedspot pages to avoid blocking
- Calls `apify/google-search-scraper` to find Feedspot category pages matching the search query
- Calls `vdrmota/contact-info-scraper` to extract contact emails from each website found on Feedspot lists
- **Migration-safe** — persists crawling state across Actor restarts, so interrupted runs can resume
- Large runs may take significant time because the contact-info-scraper individually crawls each discovered website

### Integrations

Connect this Actor's output to your existing tools and workflows using standard Apify integrations:

- **[Make](https://apify.com/integrations/make)** — trigger scenarios when new emails are extracted
- **[Zapier](https://apify.com/integrations/zapier)** — push results to Google Sheets, CRMs, or email tools
- **[n8n](https://apify.com/integrations)** — build custom automation workflows
- **[Google Sheets](https://apify.com/integrations)** — export results directly to a spreadsheet
- **[REST API](https://docs.apify.com/api/v2)** — programmatically start runs and retrieve results

### Support

- **Email:** ScrapySpider@protonmail.com
- **Website:** [ScrapySpider.com](https://scrapyspider.com)
- **Apify:** Open a support issue on this Actor's page in the Apify Console
- **Response time:** Within 24–48 hours on weekdays

# Actor input Schema

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

Google dork query to find Feedspot category pages (e.g., 'mommy inurl:.feedspot.com').

## `excludeList` (type: `array`):

Partial URL strings to exclude from results (e.g., 'influencers.' to skip influencer pages).

## `maxRequestsPerCrawl` (type: `integer`):

Maximum number of Feedspot requests that can be made by this crawler.

## `maxRequestsPerStartUrl` (type: `integer`):

Maximum number of pages the contact-info scraper will crawl per discovered website.

## Actor input object example

```json
{
  "query": "mommy inurl:.feedspot.com",
  "excludeList": [
    "influencers."
  ],
  "maxRequestsPerCrawl": 100,
  "maxRequestsPerStartUrl": 20
}
```

# Actor output Schema

## `emails` (type: `string`):

Deduplicated email addresses extracted from websites found on Feedspot category pages.

# 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": "mommy inurl:.feedspot.com",
    "excludeList": [
        "influencers."
    ],
    "maxRequestsPerStartUrl": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapyspider/feedspot-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": "mommy inurl:.feedspot.com",
    "excludeList": ["influencers."],
    "maxRequestsPerStartUrl": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("scrapyspider/feedspot-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": "mommy inurl:.feedspot.com",
  "excludeList": [
    "influencers."
  ],
  "maxRequestsPerStartUrl": 20
}' |
apify call scrapyspider/feedspot-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Feedspot Email Scraper",
        "description": "Extracts emails from blogs and websites listed on Feedspot.com category pages. Searches Google for Feedspot listings, crawls them for website URLs, then scrapes contact emails from each site. Fully automated pipeline — just enter a niche keyword. Outputs deduplicated emails as JSON, CSV, or Excel.",
        "version": "1.0",
        "x-build-id": "K31JX3CStZVxHrJYf"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapyspider~feedspot-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapyspider-feedspot-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/scrapyspider~feedspot-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapyspider-feedspot-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/scrapyspider~feedspot-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapyspider-feedspot-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "query"
                ],
                "properties": {
                    "query": {
                        "title": "Google Search Query for FeedSpot.com",
                        "type": "string",
                        "description": "Google dork query to find Feedspot category pages (e.g., 'mommy inurl:.feedspot.com')."
                    },
                    "excludeList": {
                        "title": "URL Exclusion Patterns",
                        "type": "array",
                        "description": "Partial URL strings to exclude from results (e.g., 'influencers.' to skip influencer pages).",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxRequestsPerCrawl": {
                        "title": "Max Feedspot URLs per Crawl",
                        "type": "integer",
                        "description": "Maximum number of Feedspot requests that can be made by this crawler.",
                        "default": 100
                    },
                    "maxRequestsPerStartUrl": {
                        "title": "Maximum pages per start URL of Contact Details Scraper",
                        "type": "integer",
                        "description": "Maximum number of pages the contact-info scraper will crawl per discovered website.",
                        "default": 20
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
