# 📸 Instagram Email & Phone Lead Scraper (`automation_studio/instagram-email-phone-lead-scraper`) Actor

Bulk-enrich Instagram profiles and discover high-value leads with verified business emails, phone numbers, WhatsApp, external bio links, and follower metrics. 100% genuine data, no login required.

- **URL**: https://apify.com/automation\_studio/instagram-email-phone-lead-scraper.md
- **Developed by:** [Automation Studio](https://apify.com/automation_studio) (community)
- **Categories:** Lead generation, Social media
- **Stats:** 9 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 enriched creator & influencer leads

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

## 📸 Instagram Email & Phone Lead Scraper 🚀 \[No Login • Direct Profile Enrichment & Niche Discovery]

The most reliable, comprehensive, and cost-effective **Instagram Lead & Contact Scraper** on Apify. Bulk-enrich creator handles, discover targeted niche leads, and extract **100% verified public business emails**, phone numbers, WhatsApp, follower tiers, and bio links—without needing an Instagram login or risk of account bans.

***

### ⚡ Why Choose This Actor Over Competitors?

| Feature | Competitor Scrapers (`astounding_stork`, etc.) | **Instagram Email & Phone Lead Scraper (This Actor)** |
| :--- | :--- | :--- |
| **Pricing** | $0.008 – $0.016 per lead | **$0.003 per verified lead (Over 60% cheaper!)** |
| **Dual-Mode Engine** | Usernames only OR keywords only | **Dual Mode**: Direct Usernames (Mode A) + Niche Discovery (Mode B) |
| **Deep Bio Link Crawling** | ❌ No (misses external emails) | **✅ Yes (Crawls Linktree, Beacons, and personal sites for emails)** |
| **Proxy Compatibility** | Restricted proxy group required | **✅ Universal Apify Proxy + automatic direct fallback** |
| **Success Rate** | High timeout rate (up to 31%) | **✅ 100% Guaranteed Success Rate (Zero Timeouts)** |
| **Proprietary Scoring** | ❌ None | **✅ Lead Quality Score (0–100) & Follower Tier Segmentation** |
| **Instagram Login Required** | ❌ None | **❌ 100% No Login Required (Zero Ban Risk)** |

***

### 🎯 Supported Workflows

#### Mode A: Bulk Profile & Username Enrichment

Have a list of Instagram handles from influencer databases, CRM sheets, or competitor follower exports?

- Input a list of handles: `["noahfleming", "fashioncrave", "@taliacadet", "https://instagram.com/gymshark"]`
- The Actor enriches each profile with:
  - **Verified Public Business Email**
  - **Direct Phone / WhatsApp Contact**
  - **Full Display Name & Clean Biography**
  - **Followers, Following, and Posts Count**
  - **Follower Tier** (`Nano`, `Micro`, `Mid-Tier`, `Macro`, `Mega`)
  - **Lead Quality Score** (0–100)
  - **External Bio Links** (Linktree, Beacons, Stan Store, custom domains)

#### Mode B: Niche & Keyword Lead Discovery

Looking to build fresh outreach lists for influencer marketing, creator gifting, or B2B sales?

- Search target niches: `"fitness coach"`, `"luxury realtor"`, `"sustainable fashion"`, `"coffee roaster"`
- Target specific locations: `"Miami"`, `"Los Angeles"`, `"London"`, `"United States"`
- Filter by email providers: `@gmail.com`, `@yahoo.com`, or **Custom Business Domains Only** (`@brand.com`, `@agency.co`).

***

### 📥 Input Parameters

| Parameter | Type | Default | Description |
| :--- | :--- | :--- | :--- |
| `usernames` | Array (StringList) | `["noahfleming", "fashioncrave", "taliacadet"]` | Instagram handles or profile URLs to enrich in bulk. |
| `search_keywords` | Array (StringList) | `[]` | Niche keywords or profession titles for lead discovery. |
| `hashtags` | Array (StringList) | `[]` | Optional Instagram hashtags (e.g. `#fitnesscoach`). |
| `location_filter` | String | `""` | Optional city or country filter (e.g. `"Miami"`, `"California"`). |
| `only_custom_domains`| Boolean | `false` | When enabled, only captures business domains (`@brand.com`). |
| `crawl_bio_links` | Boolean | `true` | Crawls Linktree, Beacons, and website links for hidden contact info. |
| `max_results` | Integer | `50` | Maximum total leads to extract per run (up to 10,000). |
| `only_with_email` | Boolean | `true` | Only exports profiles with a verified public email. |
| `extract_phone_numbers` | Boolean | `true` | Extracts phone numbers and direct WhatsApp links. |
| `proxyConfiguration` | Object | `{"useApifyProxy": true}` | Apify Proxy configuration (runs with automatic group selection). |

***

### 📊 Sample Output Data

```json
{
  "email": "contact@noahfleming.com",
  "username": "noahfleming",
  "full_name": "Noah Fleming",
  "phone": "+14155552671",
  "followers_count": 6055,
  "follower_tier": "Nano (1k-10k)",
  "lead_quality_score": 95,
  "category": "Profile Enrichment",
  "biography": "Advisor to CEOs & Consultants | Author of Evergreen & The Customer Loyalty Loop | Keynote Speaker",
  "external_url": "https://linktr.ee/noahfleming",
  "bio_email_found": "EXTERNAL_BIO_LINK",
  "social_links": {
    "linkedin": "https://www.linkedin.com/in/noahfleming",
    "twitter": "https://x.com/noahfleming"
  },
  "profile_url": "https://www.instagram.com/noahfleming/",
  "scraped_at": "2026-09-17T10:35:00.000Z"
}
```

***

### 💰 Transparent & Fair Pricing

- **$0.001 Actor Start Fee**
- **$0.003 Per Verified Lead Output**
- **10 Free Leads** included on every test run!
- You are **never charged** for blocked queries or empty results.

***

### 🛠️ Python API Example

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run_input = {
    "usernames": ["gymshark", "hudabeauty", "noahfleming"],
    "max_results": 10,
    "crawl_bio_links": True,
    "only_with_email": True
}

run = client.actor("automation_studio/instagram-email-phone-lead-scraper").call(run_input=run_input)

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"@{item['username']} -> {item['email']} ({item['followers_count']} followers)")
```

# Actor input Schema

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

Choose your operating mode:

• **Mode A: 🎯 Profile Enrichment**: Provide a list of specific Instagram usernames/handles to extract their business email, phone, bio link, follower count, and lead score.

• **Mode B: 🔍 Niche Lead Discovery**: Automatically discover new targeted leads by searching keywords or hashtags (e.g. 'fitness coach', 'clothing brand').

## `usernames` (type: `array`):

Enter Instagram usernames or full profile URLs to bulk-enrich with contact info (e.g. 'fashioncrave', '@taliacadet', 'noahfleming'). Used when Mode A is selected.

## `search_keywords` (type: `array`):

Enter target niches, professions, or industry terms to discover fresh leads (e.g. 'fitness coach', 'clothing brand', 'real estate agent'). Used when Mode B is selected.

## `hashtags` (type: `array`):

Optional list of Instagram hashtags to target (e.g. '#fitnesscoach', '#fashionboutique', '#miamirealtor').

## `location_filter` (type: `string`):

Optional geographic filter to focus results (e.g. 'United States', 'California', 'Miami', 'London').

## `email_domains` (type: `array`):

Restrict results to specific email providers (e.g. 'gmail.com', 'yahoo.com', 'outlook.com'). Leave empty for all providers.

## `only_custom_domains` (type: `boolean`):

When enabled, filters out free webmail (Gmail, Yahoo, Outlook) and only keeps verified corporate/custom domains (@brand.com, @agency.co) — ideal for high-ticket B2B outreach.

## `crawl_bio_links` (type: `boolean`):

When enabled, proactively crawls external bio landing pages (Linktree, Beacons, personal websites) to discover contact emails hidden from text bios.

## `max_results` (type: `integer`):

Maximum number of total unique leads to output for this run.

## `only_with_email` (type: `boolean`):

When enabled, saves only profiles that contain a verified public email address.

## `extract_phone_numbers` (type: `boolean`):

Extract phone numbers and direct WhatsApp links from bio and contact info.

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

Apify Proxy configuration. Runs smoothly on standard Apify proxies or direct connections.

## Actor input object example

```json
{
  "mode": "MODE_B",
  "usernames": [
    "fashioncrave",
    "taliacadet",
    "noahfleming"
  ],
  "search_keywords": [
    "fitness coach",
    "clothing brand"
  ],
  "hashtags": [],
  "location_filter": "",
  "email_domains": [],
  "only_custom_domains": false,
  "crawl_bio_links": true,
  "max_results": 20,
  "only_with_email": true,
  "extract_phone_numbers": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

Default dataset containing all scraped Instagram leads.

# 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 = {
    "mode": "MODE_B",
    "usernames": [
        "fashioncrave",
        "taliacadet",
        "noahfleming"
    ],
    "search_keywords": [
        "fitness coach",
        "clothing brand"
    ],
    "hashtags": [],
    "email_domains": [],
    "max_results": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation_studio/instagram-email-phone-lead-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 = {
    "mode": "MODE_B",
    "usernames": [
        "fashioncrave",
        "taliacadet",
        "noahfleming",
    ],
    "search_keywords": [
        "fitness coach",
        "clothing brand",
    ],
    "hashtags": [],
    "email_domains": [],
    "max_results": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("automation_studio/instagram-email-phone-lead-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 '{
  "mode": "MODE_B",
  "usernames": [
    "fashioncrave",
    "taliacadet",
    "noahfleming"
  ],
  "search_keywords": [
    "fitness coach",
    "clothing brand"
  ],
  "hashtags": [],
  "email_domains": [],
  "max_results": 20
}' |
apify call automation_studio/instagram-email-phone-lead-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,automation_studio/instagram-email-phone-lead-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/hw3ctMbV5EKsadJ9C/builds/sQYYQyyWYq2peKP5p/openapi.json
