# Instagram Email Scraper (`email_scraper/instagram-email-scraper`) Actor

Instagram Email Scraper extracts publicly surfaced email addresses from Instagram-related search results using targeted keywords, locations, and custom email domains. Build structured Instagram leads with email, title, description, URL, and keyword data for research, and contact discovery.

- **URL**: https://apify.com/email\_scraper/instagram-email-scraper.md
- **Developed by:** [Email Scraper](https://apify.com/email_scraper) (community)
- **Categories:**
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.49 / 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.
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?

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 – Overview

**Instagram Email Scraper** helps you discover publicly surfaced email addresses associated with Instagram-related search results using targeted keywords, optional locations, and customizable email domain suffixes. Instead of manually searching profiles one by one, you can provide a list of relevant terms and let the Actor collect matching contact data into a structured Apify dataset.

The **Instagram Email Scraper** is designed for lead generation, prospect research, contact discovery, influencer research, business outreach preparation, and other workflows where publicly available Instagram contact information is useful. You can search broadly across Instagram-related results or narrow discovery with a country, state, city, or other location.

> 💡 **What does Instagram Email Scraper do?**
> It searches for relevant Instagram results based on your keywords, identifies publicly surfaced email addresses matching your selected domains, and returns structured lead records containing the keyword, title, description, URL, and email address.

A simple run can start with terms such as `manager`, `founder`, `fitness coach`, `photographer`, `real estate agent`, or any other search phrase relevant to your target audience. For better coverage, use several specific keywords instead of relying on one broad term.

> ✅ **Best starting approach:** Use multiple closely related search terms, combine them with relevant email domains, and optionally add a location to improve targeting.

The Actor is particularly useful when you want structured contact discovery without manually reviewing large numbers of search results. Results are pushed into the Apify dataset as they are collected, making the output easy to inspect and process.

### Instagram Email Scraper – Key Features

The **Instagram Email Scraper** provides several practical controls for targeted Instagram email discovery.

> 🚀 **Key Features**
>
> - Search using multiple keywords or queries
> - Optional country, state, city, or regional targeting
> - Filter results by custom email domain suffixes
> - Set a maximum email target for each keyword + domain combination
> - Exclude unwanted words or phrases from profile description snippets
> - Avoid duplicate email addresses during the run
> - Store collected leads in a structured Apify dataset
> - Continue processing across multiple keyword and domain combinations
> - Export collected dataset data into common structured formats through Apify

#### Targeted keyword search

The **Instagram Email Scraper** accepts a list of keywords, allowing you to build a more focused prospecting strategy. Instead of searching for only `fitness`, you can use combinations such as `fitness coach`, `fitness trainer`, `online fitness coach`, and `fitness influencer`.

More specific search terms can help you discover different segments of the same market and increase the chances of finding relevant publicly surfaced contact information.

#### Location-based targeting

The optional location field lets you narrow your search to a specific geographic context. You can enter a city, state, country, or another location manually.

For example, you can pair a keyword like `real estate agent` with `New York`, or use `restaurant owner` with `London`.

> 📍 **Location tip:** Leave the location empty for broader discovery. Add a location when geographic relevance is more important than maximum coverage.

#### Custom email domains

You can specify the email domain suffixes you want the Actor to look for. The default configuration includes `@gmail.com`, while you can add domains such as `@yahoo.com`, `@outlook.com`, `@hotmail.com`, `@icloud.com`, or business-specific domains.

Using multiple domains can broaden the range of publicly surfaced email contacts discovered for each keyword.

#### Exclusion filtering

The **Instagram Email Scraper** includes an `excludeWords` input that can remove unwanted search-result snippets before email extraction.

You can enter words or phrases such as `crypto` or `onlyfans`. If a profile description snippet contains an excluded term, the entire snippet is skipped and no email is extracted from that result.

This helps reduce irrelevant contacts and can make your resulting lead dataset more targeted.

### Instagram Email Scraper – What Data You Can Extract

The **Instagram Email Scraper** returns structured records so that collected contacts can be reviewed, filtered, or exported from the Apify dataset.

> 📦 **Output Data**
>
> | Field         | Description                                                                |
> | ------------- | -------------------------------------------------------------------------- |
> | `network`     | Identifies the source network as Instagram.com                             |
> | `keyword`     | Keyword that produced the search result                                    |
> | `title`       | Title associated with the result                                           |
> | `description` | Public result description or snippet containing the discovered information |
> | `url`         | URL associated with the result                                             |
> | `email`       | Extracted email address matching the selected domain suffix                |

The primary contact field is `email`, while the accompanying keyword, title, description, and URL provide useful context for understanding where the contact was discovered.

This structure is useful for lead qualification because the email address is not returned alone. You also receive contextual information that can help identify the relevant Instagram-related result.

> 🔎 **Data quality note:** The Actor can only extract email addresses that are publicly surfaced in the search data available to it. It does not guarantee that every Instagram profile contains an email address or that a requested target will always be reached.

Duplicate email addresses are tracked during the run so the same email is not repeatedly added to the dataset when encountered across different search combinations.

### Instagram Email Scraper – How to Use It

Using the **Instagram Email Scraper** requires only a few input settings.

#### 1. Enter your keywords

Add one or more search terms to `keywords`.

Examples:

```text
fitness coach
fitness trainer
personal trainer
online fitness coach
fitness influencer
```

For business prospecting, you might use:

```text
agency owner
marketing manager
startup founder
business consultant
ecommerce founder
```

#### 2. Add an optional location

Enter a geographic target in `location` when you need regional results.

Examples:

```text
New York
United States
London
Los Angeles
Toronto
```

Leave the field empty to avoid adding a geographic restriction.

#### 3. Select email domains

Use `customDomains` to determine which email suffixes the Actor should search for.

Example:

```json
[
  "@gmail.com",
  "@outlook.com",
  "@yahoo.com"
]
```

You can also include business domains when your prospecting strategy specifically targets company contact addresses.

#### 4. Set the email limit

`maxEmails` determines the target number of emails for each keyword + domain combination.

For example, with 3 keywords, 2 domains, and a limit of 20, the Actor can work through 6 keyword-domain combinations, targeting up to 20 results for each combination.

> ⚠️ **Important:** `maxEmails` is not a guaranteed number of available contacts. Actual results depend on how many relevant, publicly surfaced email addresses exist for your search criteria.

#### 5. Add exclusions

Use `excludeWords` to remove unwanted result snippets.

Example:

```json
[
  "crypto",
  "onlyfans"
]
```

Matching is case-insensitive. Single words are matched as complete words, while phrases are matched as phrases.

#### 6. Run the Actor

Start the Actor from the Apify interface and review the resulting dataset. Records are stored incrementally, allowing you to inspect collected data while the run progresses.

### How to scrape Instagram emails with keywords

The most effective way to use **Instagram Email Scraper** is to build keyword groups around the type of people, businesses, or creators you want to discover.

A single generic term can be too broad or produce limited relevant contacts. Instead, combine roles, industries, services, and niches.

For example, a fitness-focused campaign could use:

```text
fitness coach
personal trainer
online trainer
fitness influencer
gym owner
nutrition coach
```

A marketing campaign could use:

```text
marketing agency
social media manager
digital marketer
SEO consultant
content creator
brand strategist
```

Adding multiple relevant domains can further expand discovery because different profiles may publicly surface different email providers.

You can also run separate campaigns for different locations. For example, one run can target `New York`, while another can target `Chicago` or `Toronto`.

> 🎯 **Lead discovery strategy:** Start with several highly relevant keywords, review the output, then broaden or refine your search terms based on the contacts you actually discover.

### Can Instagram Email Scraper find business emails?

Yes, the **Instagram Email Scraper** can extract publicly surfaced email addresses associated with relevant Instagram search results when those email addresses match the domain suffixes you selected.

Business-focused searches can include terms such as `founder`, `agency owner`, `business consultant`, `restaurant owner`, or industry-specific roles.

For B2B prospecting, adding custom company domains can also be useful where those domains are publicly visible in the searchable result data.

However, the Actor does not create or infer private contact information. The output is based on email addresses that are publicly surfaced in the searchable information available to the Actor.

### Instagram Email Scraper – Use Cases

The **Instagram Email Scraper** can support a wide range of contact discovery and research workflows.

#### Lead generation

Build targeted prospect lists around industries, job roles, services, or interests. Use several search terms to explore multiple segments of the same market.

#### Influencer and creator research

Search for terms such as `fitness influencer`, `travel creator`, `beauty influencer`, or `fashion creator` to identify publicly surfaced contact emails associated with relevant Instagram results.

#### B2B prospecting

Use business-oriented keywords such as `founder`, `agency owner`, `marketing director`, or `consultant`, then optionally include company email domains.

#### Local business discovery

Combine a business keyword with a city or region to identify relevant local prospects.

Examples include:

```text
restaurant owner + Chicago
photographer + London
real estate agent + Miami
```

#### Outreach list preparation

Create a structured dataset of publicly surfaced email contacts that can later be reviewed and qualified for your own legitimate outreach workflows.

#### Market research

Collect contact-related information associated with specific industries, roles, or locations to support research and segmentation projects.

> 💼 **Workflow idea:** Use different keyword sets for different segments, keep locations consistent within each campaign, and export the resulting dataset for downstream analysis.

### Input

The **Instagram Email Scraper** supports the following inputs.

| Input           | Type    | Default              | Purpose                                            |
| --------------- | ------- | -------------------- | -------------------------------------------------- |
| `keywords`      | Array   | `manager`, `founder` | Search terms or queries                            |
| `location`      | String  | Empty                | Optional geographic filter                         |
| `customDomains` | Array   | `@gmail.com`         | Email suffixes to search for                       |
| `maxEmails`     | Integer | `10`                 | Maximum target per keyword + domain combination    |
| `excludeWords`  | Array   | Empty                | Words or phrases that cause snippets to be skipped |

#### Keywords

`keywords` is the main required input. Add one or multiple terms depending on your targeting strategy.

#### Location

`location` is optional. It accepts manually entered geographic text such as a city, state, or country.

#### Custom Domains

`customDomains` controls which email domain suffixes are eligible for extraction.

#### Max Emails

`maxEmails` accepts values from `1` to `10,000` in the input configuration. The requested target is applied independently to each keyword + domain combination.

#### Exclude Words

`excludeWords` is optional and can contain individual words or phrases you do not want included in the discovery process.

### Output

Each collected record contains structured contact information.

```json
{
  "network": "Instagram.com",
  "keyword": "fitness coach",
  "title": "Example Result",
  "description": "Public result description...",
  "url": "https://www.instagram.com/...",
  "email": "example@gmail.com"
}
```

The dataset is designed for convenient table-based inspection and structured processing.

> 📊 **Dataset:** Results are stored in the Actor's Apify dataset and can be reviewed after or during the run.

Apify dataset tools can also be used to process or export collected records into formats supported by the platform, making the output suitable for spreadsheets, data pipelines, and other workflows.

### Pricing and Limits

The Actor's runtime behavior includes a free-tier email limitation.

> 💰 **Free-tier limit:** Free users are limited to a maximum of **100 collected emails** during a run. Paid users do not receive this 100-email ceiling from the Actor.

The `maxEmails` input still controls the requested collection target for individual keyword + domain combinations. Actual results may be lower when suitable publicly surfaced contacts are unavailable.

No fixed per-email price is stated in the provided Actor configuration, so this README does not claim a specific monetary cost.

### Tips and Best Practices

For stronger results with **Instagram Email Scraper**, focus on search quality rather than simply increasing the limit.

#### Use specific keywords

Instead of one broad keyword such as `fitness`, try several focused variations.

```text
fitness coach
personal trainer
online fitness coach
fitness instructor
gym owner
```

#### Use multiple domains

Including several common email domains can reveal contacts that would not appear when searching only one suffix.

#### Test location carefully

A narrow geographic filter can improve relevance but may reduce the number of available results. Remove the location or use a broader region when results are sparse.

#### Avoid overly narrow combinations

Using a highly specific keyword, a very narrow location, and one uncommon domain at the same time can significantly reduce available contacts.

#### Review output quality

Before using collected emails for outreach, validate the relevance of the associated profile or business and follow applicable privacy, marketing, and communication laws.

> ⚠️ **Important:** Public availability does not automatically mean a contact is appropriate for every outreach purpose. Review and use collected information responsibly.

### Frequently Asked Questions

#### What is Instagram Email Scraper?

Instagram Email Scraper is an Apify Actor for discovering publicly surfaced email addresses associated with Instagram-related search results. It supports keyword targeting, location filtering, custom email domains, exclusion words, and structured dataset output.

#### How does Instagram Email Scraper find email addresses?

The Actor searches for relevant publicly indexed Instagram results based on the keywords, location, and email domains you provide. Matching email addresses are extracted from available result descriptions and stored as structured records.

#### Can I scrape Instagram emails by keyword?

Yes. Keyword search is the primary discovery method. You can provide multiple keywords to cover different roles, niches, industries, or search intents.

#### Can I scrape Instagram emails by location?

Yes. The optional `location` input can be used to narrow your search to a country, state, city, or other geographic phrase.

#### Can I search for Gmail, Yahoo, Outlook, and custom emails?

Yes. Use `customDomains` to specify the email suffixes you want to include, such as `@gmail.com`, `@yahoo.com`, `@outlook.com`, or relevant business domains.

#### What does maxEmails mean?

`maxEmails` is the target limit for each individual keyword + domain combination. It is not a guarantee that the Actor will return that many contacts.

#### Why did I receive fewer emails than my maxEmails value?

The Actor cannot manufacture additional contacts when suitable public search results are unavailable. Narrow keywords, restrictive locations, uncommon domains, or limited indexed results can all reduce the final count.

#### Can I exclude unwanted Instagram results?

Yes. Add words or phrases to `excludeWords`. When an excluded term appears in a result description snippet, that snippet is skipped.

#### Does the Actor return duplicate email addresses?

The Actor tracks collected email addresses during the run and avoids adding the same email address repeatedly when it appears in multiple search results.

#### What data does the Instagram Email Scraper return?

The Actor returns `network`, `keyword`, `title`, `description`, `url`, and `email` fields for each collected record.

#### Can I export Instagram email leads?

Yes. Collected records are stored in an Apify dataset, which can be reviewed and exported using the dataset capabilities provided by Apify.

#### Does Instagram Email Scraper guarantee a specific number of leads?

No. `maxEmails` defines a target or cap, not a guaranteed number of available contacts. Results depend on the publicly surfaced data matching your search criteria.

#### Is a location required?

No. `location` is optional. Leave it empty when you want broader discovery across regions.

#### What keywords should I use for better Instagram email discovery?

Use specific, descriptive terms that identify your target audience. Role, profession, service, niche, and business-category keywords generally provide more focused searches than very broad terms.

#### Can I use multiple keywords and multiple email domains together?

Yes. The Actor processes combinations of keywords and email domains, allowing you to create broader discovery campaigns from a single run.

### Support

Questions, improvements, or custom requirements related to the **Instagram Email Scraper** can be directed to the developer contact provided in the Actor configuration.

> 💬 **Need a tweak or a bespoke build?**
> Contact: <alphascraper69@gmail.com>

> ✅ **Final reminder:** Better results usually come from better targeting. Use several relevant keywords, select appropriate email domains, add location only when useful, and adjust your filters based on the quality of the returned dataset.

# Actor input Schema

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

A list of keywords or queries to search for.

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

Optional country, state or city used to narrow the search. Leave it empty to search without a geographic filter.

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

List of custom email domains

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

How many addresses each search keyword + domain suffix combination may collect before the finder moves on to the next one. This is a per-combination target, not a run-wide total: with 3 keyword and 2 Domains and a limit of 20, the run works through all 6 combinations and aims for up to 20 addresses in each, so up to 120 overall. Lower values finish sooner and cost less; higher values dig deeper but never guarantee a fuller result, since the run can only find what is publicly listed.

## `excludeWords` (type: `array`):

Words or phrases you do not want to see.

## Actor input object example

```json
{
  "keywords": [
    "manager",
    "founder"
  ],
  "location": "New york",
  "customDomains": [
    "@gmail.com"
  ],
  "maxEmails": 10,
  "excludeWords": []
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# 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": [
        "manager",
        "founder"
    ],
    "location": "New york",
    "customDomains": [
        "@gmail.com"
    ],
    "excludeWords": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("email_scraper/instagram-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": [
        "manager",
        "founder",
    ],
    "location": "New york",
    "customDomains": ["@gmail.com"],
    "excludeWords": [],
}

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

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,email_scraper/instagram-email-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/2Gf0ILLIvD0eLZulg/builds/ZffHBe7XH1taJEw8y/openapi.json
