# Instagram Email & Leads Scraper (`flash_scraper/instagram-leads-scraper`) Actor

Instagram email scraper that turns profiles into contactable leads — extract emails from bios and linked sites, follower/engagement filters, 0-100 lead score, and influencer leads export to CSV/JSON/Excel.

- **URL**: https://apify.com/flash\_scraper/instagram-leads-scraper.md
- **Developed by:** [Flash Scrape](https://apify.com/flash_scraper) (community)
- **Categories:** E-commerce, Lead generation, Social media
- **Stats:** 6 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $0.000035 / actor start

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/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 — Creator, Influencer & Business Leads

**Instagram email scraper that turns any list of Instagram profiles into a scored, contactable lead list.** Feed in usernames or profile URLs and get back each profile's **email** (from the bio and the linked website), follower/engagement stats, a 0–100 lead score with an A–F grade, and an optional AI cold-email opener — ready to export to CSV, JSON, or Excel.

***

### What does it do?

This **Instagram lead generation tool** pulls each profile through the official `apify/instagram-scraper`, then runs it through an enrichment and scoring pipeline: it extracts the **email** from the bio text or by crawling the profile's link-in-bio website (home, `/contact`, `/about`), resolves link-in-bio aggregators like Linktree, computes a real **engagement rate** from recent posts, and grades every lead 0–100 so you know which contacts are actually worth emailing. Duplicate handles, domains, and emails are collapsed automatically. Optionally, it writes a one-line **AI cold-outreach opener** per lead using your own OpenAI or Anthropic key.

### Why use it / who's it for

- **Influencer marketing agencies** building outreach lists of creators in a niche (fitness, beauty, travel, food) for brand-partnership pitches.
- **B2B sales teams** turning a list of Instagram business accounts into a cold-email-ready CRM import.
- **E-commerce brands** finding micro- and nano-influencers (5k–500k followers) with real engagement, not vanity follower counts.
- **Marketing freelancers and Fiverr/Upwork sellers** fulfilling "Instagram lead scraping" or "influencer outreach list" gigs for clients.
- **Recruiters and partnership managers** enriching a competitor's tagged-account list or a hashtag-research export into contactable leads.

### How to use it

1. **Add your profiles** — paste Instagram usernames or profile URLs, one per line (`natgeo`, `https://www.instagram.com/nike/`, an influencer export, or a competitor's tagged accounts).
2. **Set your lead filters** — follower range, verified-only, business-account-only, has-website, has-email, or a minimum lead score, so you only pay for leads worth contacting.
3. **Choose enrichment** — leave "find emails on the linked website" on for a higher email fill-rate, and optionally turn on AI cold openers with your own OpenAI/Anthropic key.
4. **Run and export** — the actor scores, dedupes, and sorts every lead best-first, then pushes a clean dataset you can download as CSV, JSON, or Excel, or pipe into your CRM via the Apify API.

### Output fields

| Field | Description |
|---|---|
| `handle` | Instagram username |
| `name` | Display / full name |
| `category` | Business category (e.g. "Clothing (Brand)") |
| `bio` | Raw bio text |
| `email` | Best contactable email found (bio or linked site) |
| `email_status` | `found` or `missing` |
| `phone` | Business phone number, if public |
| `website` | Link in bio |
| `domain` | Bare domain of the website |
| `followers` / `following` / `posts` | Profile stats |
| `verified` | Blue-check status (bool) |
| `is_business` | Business/creator account (bool) |
| `engagement_rate` | Avg (likes+comments) ÷ followers over recent posts, as % |
| `avg_likes` / `avg_comments` | Averages from recent posts |
| `related_profiles` | Up to 20 Instagram-suggested related accounts |
| `linkedin` / `facebook` / `twitter` | Social links found during enrichment |
| `extra_emails` | Additional emails found beyond the primary one |
| `lead_score` | 0–100 lead-quality score |
| `lead_grade` | `A`–`F` grade derived from the score |
| `lead_tier` | `hot` / `warm` / `cold` |
| `has_email` / `has_website` / `has_phone` | Boolean contactability flags |
| `icebreaker` | Optional AI-generated cold-outreach opener |
| `profile_url` | Canonical `instagram.com/<handle>/` URL |

### Input example

```json
{
  "profiles": ["natgeo", "https://www.instagram.com/nike/", "humansofny"],
  "minFollowers": 5000,
  "maxFollowers": 500000,
  "onlyWithEmail": true,
  "onlyBusinessAccount": true,
  "enrichEmails": true,
  "minScore": 50,
  "writeOpeners": false
}
```

See the full field list — `onlyVerified`, `onlyWithWebsite`, `llmProvider`, `llmApiKey`, `llmModel`, `minScore` — on the Input tab.

### How much does it cost?

This actor is **pay-per-result**: **$0.005 per lead delivered — $5 per 1,000 leads** (pay-per-event pricing, effective 2026-07-16). You're only charged for leads that survive your filters (follower range, verified, has-email, minimum score, etc.), so a tightly filtered run costs less than an unfiltered one. New Apify accounts get roughly **1,000 results free** on the platform's free tier, enough to test the actor on a real list before committing budget. Optional AI cold openers are billed separately, directly by your own OpenAI or Anthropic account — Flash Scrape never marks that up.

### FAQ

#### Is it legal to scrape Instagram for emails?

This actor only collects **public** profile data — the same bio and linked-website info any visitor to the profile can see. Use the leads for legitimate outreach and follow Instagram's terms plus anti-spam laws (CAN-SPAM, GDPR) in how you contact people.

#### How fresh is the data?

Every run scrapes live Instagram profiles at execution time via the official `apify/instagram-scraper`, so follower counts, bios, and engagement stats reflect the current state of each profile, not a cached snapshot.

#### Do I need a list of profiles, or can I search by hashtag/niche?

You need to supply usernames or profile URLs — Instagram has restricted open hashtag and keyword discovery, so this **Instagram contact scraper** works from a seed list (a niche you follow, a competitor's tagged accounts, or an influencer database export) rather than free-text search.

#### Will every profile have an email?

No. Instagram only exposes a public business email for some accounts; the rest depend on what's written in the bio or published on the linked website. Turn on `onlyWithEmail` to keep only the leads with a found email, and `minScore` to keep only your best A/B-grade leads.

#### Do I need an API key to run this?

No. Email finding and website enrichment need no key. An API key is only required if you enable AI cold openers, and it's **your own** OpenAI or Anthropic key — used only during the run, never stored.

### Other Flash Scrape lead tools

- [Email Verifier](https://apify.com/flash_scraper/email-verifier) — validate and clean any email list before you send
- [Company Domain Enricher](https://apify.com/flash_scraper/company-domain-enricher) — turn a company name into its real domain + contact email
- [Local Business Leads](https://apify.com/flash_scraper/local-business-leads) — multi-source local business leads with contact enrichment
- [Google Maps Leads Scraper](https://apify.com/flash_scraper/google-maps-leads-opener) — Google Maps business leads by city/category
- [TikTok Leads Scraper](https://apify.com/flash_scraper/tiktok-leads-scraper) — TikTok creator leads, same scoring pipeline
- [Restaurant Leads Scraper](https://apify.com/flash_scraper/restaurant-leads-scraper) — restaurant owner leads with POS/reservation tech stack

# Actor input Schema

## `profiles` (type: `array`):

Usernames or profile URLs to turn into leads — one per line. e.g. 'natgeo' or 'https://www.instagram.com/nike/'.

## `minFollowers` (type: `integer`):

Keep only profiles with at least this many followers (0 = no filter).

## `maxFollowers` (type: `integer`):

Keep only profiles with at most this many followers (0 = no cap). Use with min to target nano/micro/macro tiers.

## `onlyVerified` (type: `boolean`):

Keep only blue-check verified profiles.

## `onlyBusinessAccount` (type: `boolean`):

Keep only Instagram business or creator accounts (more likely to have public contact info).

## `onlyWithWebsite` (type: `boolean`):

Drop profiles with no external link (you can't enrich an email without one).

## `onlyWithEmail` (type: `boolean`):

Drop profiles where no email could be found. Best for cold-email campaigns.

## `enrichEmails` (type: `boolean`):

Visit each profile's link-in-bio site (home + /contact + /about) to extract emails and social links. Higher email fill-rate. No key needed.

## `writeOpeners` (type: `boolean`):

Generate a personalized one-sentence outreach opener for each lead. Requires your OpenAI/Anthropic key below.

## `llmProvider` (type: `string`):

AI provider used to write the cold openers — OpenAI (GPT) or Anthropic (Claude). Use the provider that matches the LLM API key you supply.

## `llmApiKey` (type: `string`):

Your own OpenAI or Anthropic API key. Used only to write the openers; never stored.

## `llmModel` (type: `string`):

Override the default model (gpt-4o-mini for OpenAI, claude-haiku-4-5-20251001 for Anthropic).

## `minScore` (type: `integer`):

Keep only leads scoring at or above this value, 0-100 (0 = no filter). Pay only for your best A/B leads.

## Actor input object example

```json
{
  "profiles": [
    "humansofny"
  ],
  "minFollowers": 0,
  "maxFollowers": 0,
  "onlyVerified": false,
  "onlyBusinessAccount": false,
  "onlyWithWebsite": false,
  "onlyWithEmail": false,
  "enrichEmails": true,
  "writeOpeners": false,
  "llmProvider": "openai",
  "minScore": 0
}
```

# Actor output Schema

## `results` (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 = {
    "profiles": [
        "natgeo",
        "nike",
        "starbucks"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("flash_scraper/instagram-leads-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 = { "profiles": [
        "natgeo",
        "nike",
        "starbucks",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("flash_scraper/instagram-leads-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 '{
  "profiles": [
    "natgeo",
    "nike",
    "starbucks"
  ]
}' |
apify call flash_scraper/instagram-leads-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

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