# Gumroad Email Scraper (`solid-scraper/gumroad-email-scraper`) Actor

📧 Gumroad Email Scraper finds verified emails from Gumroad listings fast—helping you build targeted leads for sales, agencies, and marketing teams. 🔎🚀 Export results in minutes and boost outreach with less effort.

- **URL**: https://apify.com/solid-scraper/gumroad-email-scraper.md
- **Developed by:** [SolidScraper](https://apify.com/solid-scraper) (community)
- **Categories:** Lead generation, Automation, E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.99 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

### Instagram Email Scraper 📬

**Instagram Email Scraper** helps you extract email addresses tied to Instagram bios and posts using your chosen keywords and email-domain filters—so you can build targeted outreach lists faster than manual searching. This **instagram email scraper tool** is ideal for anyone looking for an **instagram email extractor**, an **instagram contact email finder**, or an **instagram lead generation email scraper** to support B2B enrichment and campaign research. Whether you’re a marketer, researcher, or data analyst, this actor automates the process of collecting relevant contacts at scale, saving you hours of manual work.

***

### Why choose Instagram Email Scraper?

| Feature | Benefit |
| --- | --- |
| ✅ **Keyword-driven discovery** | Uses your `keywords` to focus results on profiles likely to mention relevant contact details |
| ✅ **Email-domain filtering** | Collects emails only matching your `customDomains` patterns (for better targeting) |
| ✅ **Proxy + fallback engine options** | Improves reliability with selectable engines and built-in resilience for harder-to-access pages |
| ✅ **Retries & fallbacks** | Includes retries and fallbacks to keep scraping running when results are temporarily limited |
| ✅ **Structured JSON output** | Produces consistent fields like `email`, `title`, `description`, and the originating `url` for easy analysis |
| ✅ **Scales with limits** | Lets you cap results with `maxEmails` to control runtime while building a usable dataset |

***

### Key features

- 🔍 **Accurate email extraction**: Extracts email addresses from publicly available page content using your selected email-domain filters
- 🧠 **Flexible keyword targeting**: Searches across Instagram-related publicly indexed pages using the `keywords` you provide (like “founder” or “marketing”)
- 🎯 **Custom email domains**: Use `customDomains` such as `@gmail.com` to focus on specific email types (e.g., Gmail-only outreach)
- 🛡️ **Reliability with engine options**: Choose between `engine` values (`cost-effective` or `legacy`) for different reliability/performance tradeoffs
- 🔄 **Resilient scraping behavior**: Includes retries and stopping conditions to avoid wasting time when results diminish
- 📊 **Dataset-ready results**: Pushes each discovered email with context (title, description, and url) for straightforward import
- 💾 **Progress persistence**: Saves progress after each discovered email to support longer runs and resumability

***

### Input

Provide input via an `input.json` file. Example structure:

```json
{
  "keywords": ["founder", "marketing"],
  "location": "",
  "platform": "Instagram",
  "customDomains": ["@gmail.com"],
  "maxEmails": 20,
  "engine": "legacy",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

#### Input Fields

| Field | Required | Description |
| --- | --- | --- |
| `keywords` | ✅ Yes | A list of keywords to search for. The scraper uses these to find emails mentioned in Instagram bios and posts related to your keywords. |
| `location` | ❌ No | Location to filter search results. Leave it empty (`""`) for no location filtering. |
| `platform` | ❌ No | Select platform. This actor supports `Instagram` (default: `Instagram`). |
| `customDomains` | ❌ No | List of custom email domains to target (e.g. `@gmail.com`). Helps the Instagram email harvesting tool focus on the email types you want. |
| `maxEmails` | ❌ No | Maximum number of emails to collect. The scraper stops once this limit is reached. Higher values can take longer, and does not guarantee hitting the exact number. |
| `engine` | ❌ No | Choose scraping engine: `cost-effective` (Cost Effective (New)) or `legacy` (Legacy). If you run into low results, you can try switching engines. |
| `proxyConfiguration` | ❌ No | Configure proxies for this Actor. Use this for environments where proxy control is required. |

***

### Output

The actor saves each discovered email as a JSON row in the output dataset.

```json
[
  {
    "network": "Instagram.com",
    "keyword": "founder",
    "title": "Example result title",
    "description": "Example result description (publicly available text)",
    "url": "https://example.com/public-page-or-result-url",
    "email": "name@gmail.com",
    "proxyGroups": ["..."],
    "proxyGroups": ["..."]
  }
]
```

#### Output Fields

| Field | Type | Description |
| --- | --- | --- |
| `network` | string | The source network label used by the actor (set to `Instagram.com`). |
| `keyword` | string | The keyword currently being used for the search run. |
| `title` | string | Title text associated with the discovered item. |
| `description` | string | Description text from the discovered item (public page content). |
| `url` | string | The originating url associated with the discovered email context. |
| `email` | string | The extracted email address. |
| `proxyGroups` | array | The proxy groups list associated with the run for that result. |

**Note:** The actor also persists internal progress (e.g., cursor and seen emails) via a key-value store during execution, but those fields are not pushed as dataset rows.

***

### How to use Instagram Email Scraper (via Apify Console)

1. **Open Apify Console**\
   Sign in at https://console.apify.com and go to the **Actors** page.

2. **Find and open the actor**\
   Search for **Instagram Email Scraper** and open the actor detail page.

3. **Configure the INPUT**\
   In the **INPUT** tab, set your `keywords` (required). Add optional refinements like `location`, `customDomains`, and `maxEmails`.

4. **Pick an engine**\
   Choose `engine` (`legacy` or `cost-effective`) based on your preference for reliability vs. cost/performance. If you see low results, rerun with broader keywords, more `customDomains`, or switch the engine.

5. **(Optional) Configure proxies**\
   If you need proxy control, fill in `proxyConfiguration`. For many runs, leaving it default still works; for strict environments, explicitly configure it.

6. **Run the actor**\
   Click **Run**. Watch the logs as it discovers and pushes emails one by one. For large searches or high `maxEmails`, runs may take longer.

7. **Review the output dataset**\
   After completion, open the **OUTPUT** dataset to view fields like `email`, `url`, `title`, and `description`, then export as needed (JSON/CSV depending on your workflow).

No coding required—get accurate results in minutes with this **instagram email scraper tool**.

***

### Advanced features & SEO optimization

- 🚀 **Engine selection for different scraping needs**: Use `engine: "cost-effective"` for residential-proxy-based async behavior, or switch to `engine: "legacy"` when you prefer the older approach for reliability.
- 🧲 **Targeted harvesting for marketing pipelines**: This **instagram email extractor** is designed to scrape emails that appear in Instagram bios and posts related to your `keywords`.
- 🔄 **Resilience-oriented execution**: Includes retries, fallbacks, and stop conditions so the run can continue intelligently even when results are limited.
- 🎛️ **Domain-focused lead generation**: With `customDomains`, this **bulk instagram email scraper** helps you build a cleaner list aligned to your outreach strategy.

***

### Best use cases

- 📈 **B2B lead generation**: Build a focused **instagram lead generation email scraper** list of contacts for outreach and partnerships
- 🎯 **Marketing research**: Collect emails tied to brands and creators whose bios/posts match your niche keywords
- 🧾 **Data analysts**: Export structured email records (`email`, `title`, `description`, `url`) for enrichment and downstream scoring
- 👥 **Recruiting & talent sourcing**: Find publicly listed contact emails associated with founders, agencies, and marketing leads
- 🏗️ **CRM pipeline automation**: Feed results from an **instagram email list builder** into your CRM to streamline segmentation
- 🧠 **Competitive intel**: Use an **instagram contact email finder** approach to understand how different accounts present contact info
- 💬 **Outbound campaign ops**: Quickly generate a usable email list for cold email workflows and marketing testing

***

### Technical specifications

- **Supported Input Formats**\
  ✅ JSON input matching the **Instagram Email Scraper Input** schema\
  ✅ `keywords` as a required array of strings

- **Proxy Support**\
  ✅ Uses selectable `engine` options (`cost-effective`, `legacy`)\
  ✅ Supports `proxyConfiguration` input for proxy setup

- **Retry Mechanism**\
  ✅ Includes retries and fallbacks for improved resilience when results are temporarily limited

- **Dataset Structure**\
  ✅ Pushes one dataset row per discovered email with fields: `network`, `keyword`, `title`, `description`, `url`, `email`, `proxyGroups`

- **Rate Limits & Performance**\
  ✅ Use `maxEmails` to cap runtime and control scraping time for large batches

- **Limitations**\
  ❌ Extracted emails depend on what appears in publicly available sources (e.g., bios/posts related to your keywords)\
  ❌ Higher `maxEmails` may take longer and still may not reach the exact requested number of emails

***

### FAQ

#### ✅ Where does Instagram Email Scraper find the emails?

It extracts emails from publicly available sources that contain contact information tied to Instagram bios and posts relevant to the `keywords` you provide.

#### ❌ Why are there fewer results than expected?

Low results can happen when fewer pages mention emails matching your `customDomains`, when the keywords are too narrow, or when result availability is limited. The actor’s own guidance suggests rerunning with broader keywords, more related terms, or more domains.

#### 💡 Can I target specific email types (like Gmail only)?

Yes. Use `customDomains` to restrict which emails are collected (for example `@gmail.com`). This is useful for building a cleaner **instagram email list builder** dataset.

#### 🔁 What does “maxEmails” do?

`maxEmails` sets the maximum number of emails to collect. The scraper stops once that limit is reached, which helps control scraping time and overall cost.

#### 🧰 Do I need coding to use it?

No coding is required. You can run it directly in Apify Console by filling out the INPUT form or providing an `input.json` file.

#### 🌐 Does it support proxies?

Yes. You can configure proxies using the `proxyConfiguration` field, and you can also switch the `engine` between `cost-effective` and `legacy` depending on your reliability/performance preferences.

#### 💾 Can I export the dataset?

Yes. After the run, open the OUTPUT dataset and export the results in a format that fits your workflow (typically JSON/CSV through Apify’s dataset tools).

#### ⚖️ Is this scraping compliant?

The actor collects information only from **publicly accessible sources**. It’s your responsibility to comply with applicable laws (including GDPR/CCPA where relevant), spam regulations, and platform terms.

***

### Support & feature requests

Want to improve your Instagram Email Scraper experience? Share feedback and feature requests such as CSV export enhancements, additional filtering options, or CRM-friendly output improvements.

- 💡 **Feature Requests**: Tell us what you want to add to your **instagram email extractor** workflow (for example: better export formats, more flexible filters, or integrations).
- 📧 **Contact**: Email us at <dataforleads@gmail.com> for support, help, or questions.

Your feedback directly shapes the roadmap for this **Instagram Email Scraper**.

***

*Make your **Instagram Email Scraper** runs more targeted, faster, and dataset-ready—this is the most SEO-optimized instagram email harvesting tool built for practical lead generation at scale.*

### Disclaimer

This tool only accesses **publicly accessible sources**. It does not access private profiles, authenticated data, or password-protected pages.

You are responsible for ensuring your use complies with applicable laws (including GDPR/CCPA where relevant), spam regulations, and Instagram’s/platform policies. For data removal requests, contact <dataforleads@gmail.com>.

Use Instagram Email Scraper responsibly, ethically, and for legitimate purposes only.

# Actor input Schema

## `keywords` (type: `array`):

A list of keywords to search for.

## `location` (type: `string`):

Location to filter search results.

## `platform` (type: `string`):

Select platform.

## `customDomains` (type: `array`):

List of custom email domains

## `maxEmails` (type: `integer`):

Maximum number of emails to collect. The scraper will stop once this limit is reached. Setting a higher limit allows for more potential results but doesn't guarantee reaching that number. This helps save costs by controlling scraping time.

## `engine` (type: `string`):

Choose scraping engine. 🚀 Cost Effective (New): Uses residential proxies with async requests for faster, cheaper scraping. 🔧 Legacy: Uses GOOGLE\_SERP proxy with traditional selectors - more reliable but slower and more expensive.

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

Configure proxies for this Actor.

## Actor input object example

```json
{
  "keywords": [
    "founder",
    "marketing"
  ],
  "location": "",
  "platform": "Instagram",
  "customDomains": [
    "@gmail.com"
  ],
  "maxEmails": 20,
  "engine": "legacy"
}
```

# 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 = {
    "keywords": [
        "founder",
        "marketing"
    ],
    "location": "",
    "customDomains": [
        "@gmail.com"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("solid-scraper/gumroad-email-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 = {
    "keywords": [
        "founder",
        "marketing",
    ],
    "location": "",
    "customDomains": ["@gmail.com"],
}

# Run the Actor and wait for it to finish
run = client.actor("solid-scraper/gumroad-email-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 '{
  "keywords": [
    "founder",
    "marketing"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com"
  ]
}' |
apify call solid-scraper/gumroad-email-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

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