# Instagram Influencer Finder & API: Emails by Keyword (`s_actors/instagram-influencer-email-finder`) Actor

Find Instagram influencers, creators and local businesses by keyword and city: bio, followers, emails from the bio and the bio link website, phones, Facebook page, other socials, engagement rate. Filter by followers, only with email, only new. No login.

- **URL**: https://apify.com/s_actors/instagram-influencer-email-finder.md
- **Developed by:** [Superior Actors](https://apify.com/s_actors) (community)
- **Categories:** Social media, Lead generation, Marketing
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $6.99 / 1,000 profiles

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 Influencer Finder

Find **Instagram influencers, creators and local businesses by keyword and city**, with their **emails**: "fitness coach", "wedding photographer Austin", "dentist chicago", "vegan bakery london". For every account you get the bio, followers, posts count, the **email and phone from the bio and from the website or link-in-bio page behind it**, the linked Facebook page, TikTok and YouTube links, and the **engagement rate** of the latest posts.

```json
{ "keywords": ["wedding photographer"], "location": "Austin", "minFollowers": 1000, "onlyWithEmail": true }
```

No Instagram login, no cookies, no browser. Type a niche, get a lead list. Use it as an **Instagram influencer search tool**, an **Instagram email finder** for outreach, an **Instagram leads scraper** for local businesses, or an API for your CRM and AI agents.

#### What you get

Real example, 22 October 2026, keyword "wedding photographer austin" (part of 50 profiles):

| username | followers | engagement, % | email | from | phone |
|---|---|---|---|---|---|
| twofishweddings | 3,284 | 8.30 | hello@twofishweddings.com | website | |
| mackenziesmithphoto | 7,294 | 6.92 | mackenziesmithphoto@gmail.com | website | |
| ruetphoto | 13,316 | 7.50 | hello@ruetphoto.com | website | |
| davidcallenphoto | 2,623 | 37.60 | info@davidcallenphoto.com | bio | |
| wildflowerbarnphotography | 2,222 | 5.63 | info@wildflowerbarnphotography.com | website | 5127512739 |
| picsbycamjae | 3,669 | 25.68 | picsbycamjae@gmail.com | website | 2144548878 |

Three searches of 50 profiles ("fitness coach", "dentist chicago", "wedding photographer austin") found an email for **62 of 150 accounts (41%)**, 55 of them **on the website behind the bio link**, not in the bio itself; phone numbers for 32 (27 of the 50 dentists).

Every row:

| Field | Example | What it is |
|---|---|---|
| `keyword`, `rank`, `foundVia` | wedding photographer austin, 3, profile | the search that found it, its place in Google, profile or post link |
| `username`, `fullName`, `userId`, `profileUrl` | twofishweddings, Austin Wedding Photographer & Videographer | TwoFish | the account |
| `biography` | "Polished, yet playful: A recipe for iconic images ✨…" | the bio text |
| `followers`, `following`, `postsCount` | 3,284, 1,791, 945 | exact counts |
| `isVerified`, `isPrivate` | false, false | blue check, private account |
| `email`, `emails`, `emailSource` | hello@twofishweddings.com, website | the best email (the bio first, then the site's own domain, business addresses first) and all of them |
| `emailMailServer` | true | the email's domain receives mail (MX check, nothing is sent) |
| `phone`, `phones` | 3122635090 (chicagodental312) | phone numbers in the bio and the `tel:` links of the website |
| `website`, `linkInBio`, `bioLinks` | https://twofishweddings.com/ | the link in bio and every bio link |
| `facebookPageUrl`, `facebookPageName` | https://www.facebook.com/1549707095299736 (thelittleblogofvegan) | the Facebook page linked to the account |
| `tiktok`, `youtube`, `facebook`, `x`, `linkedin`, `whatsapp`, `telegram` | https://www.tiktok.com/@… | other profiles found on the bio link |
| `avgLikes`, `avgComments`, `engagementRate` | 261, 12, 8.30 | averages of the 6 latest posts; (likes + comments) / followers × 100 |
| `postsPerWeek`, `latestPostAt` | 1.34, 2026-10-14T17:25:35Z | posting frequency and the newest post |
| `googleTitle`, `googleSnippet` | "Austin Wedding Photographer & Videographer | TwoFish ..." | how Google lists the account |
| `profilePicUrl`, `country`, `scrapedAt` | | picture (Instagram links expire after a few days), Google market, time |

Dataset views: **Leads** (email, phone, website), **Influencers** (followers, engagement, posting frequency) and **All contacts**. Export to Excel, CSV, JSON or Google Sheets.

#### How to use it

1. Add **keywords**, one search per line: a niche ("skincare influencer"), a job ("personal trainer"), a business type ("nail salon"), with or without a city.
2. Optionally add a **city or region** for every keyword and pick the **country** (the Google market).
3. Set the **filters**: min and max followers, only profiles with an email, skip private accounts. Profiles left out by a filter are free.
4. Run, then open the dataset or call it from the API. Turn on **Only new profiles** and schedule the Actor weekly for a feed of new accounts.

More profiles: add similar keywords ("wedding photographer", "elopement photographer", "engagement photos"). Google lists about 50-90 Instagram accounts per keyword.

#### Why this Actor

| | This Actor | Typical influencer search tools |
|---|---|---|
| Login, cookies | none | some need your Instagram session |
| Search | any keyword + city, 32 Google markets | hashtags or username lists |
| Emails | bio **and** the website or link-in-bio page (Linktree, Beacons, Stan…) with its contact page | bio text or the contact button only |
| Email check | mail server (MX) of every email | rarely |
| Phones | bio and the website's `tel:` links | bio only |
| Facebook page | linked page of the account | no |
| Engagement | engagement rate, average likes, posts a week | often a paid add-on |
| Repeat searches | "only new profiles" for weekly lead feeds | no |
| Price | **$8.99 per 1,000 profiles**, filtered-out profiles free | $10-20 per 1,000 |

#### Pricing

Pay per result, no subscription:

| Event | Price | When |
|---|---|---|
| Profile | $8.99 per 1,000 ($7.99 on Scale, $6.99 on Business) | each profile in the results |
| Run start | $0.001 | |

Free: profiles outside your follower range, private accounts (when skipped), profiles without an email when you ask for emails only, repeats across keywords, deleted accounts.

Examples: 50 profiles ≈ **$0.45**; 1,000 profiles ≈ **$9**; a weekly feed of 20 new local businesses ≈ $0.75 a month.

#### FAQ

**Do I need an Instagram account?** No. Profiles are found through Google and read the way a logged-out visitor sees them.

**Where do the emails come from?** From the bio text (also "name \[at] site \[dot] com"), then from the website or link-in-bio page in the bio and its contact or about page. The email of Instagram's own "Contact" button is shown only to logged-in users, so it is not in the results; most businesses also put their email on their website.

**Why fewer profiles than I asked for?** Google lists a limited number of Instagram accounts per keyword (about 50-90), and your filters may leave some out. Add similar keywords or a nearby city.

**Can I search by hashtag or location tag?** Instagram's hashtag and location pages need a login. Write the hashtag word or the city as a keyword instead: "vegan recipes", "yoga studio Lisbon".

**Can I check a list of usernames I already have?** Use [Instagram Profile Scraper](https://apify.com/s_actors/instagram-profile-scraper): bio, emails and phones from the bio, followers and engagement for any list of usernames.

**How fast is it?** About 35 profiles a minute with the website check on (150 profiles in about 4 minutes).

#### Use with the API and AI agents

Run it from your code or an AI agent with the Apify API, the Apify MCP server or the Python and JavaScript clients; read the results from the dataset (`?view=leads`, `?view=influencers`, `?view=contacts`).

#### Other social media tools

| Tool | What it does |
|---|---|
| [Instagram Profile Scraper](https://apify.com/s_actors/instagram-profile-scraper) | Bio, followers, emails and phones from the bio, engagement and follower change for any list of usernames |
| [Instagram Reels Scraper](https://apify.com/s_actors/instagram-reels-scraper) | All Reels of any profile with plays, likes, comments, MP4 links and engagement |
| [Instagram Post Scraper](https://apify.com/s_actors/instagram-post-scraper) | Any post, Reel or carousel by link with the exact posting time, likes, comments and plays |
| [Instagram Video Downloader](https://apify.com/s_actors/instagram-video-downloader) | Reels, videos and carousels as MP4 files in 1080p from links or whole profiles, one ZIP |
| [Instagram Reel Transcript](https://apify.com/s_actors/instagram-reel-transcript) | Reels and videos to text by link or profile: AI transcript in 99 languages, hook, SRT and VTT |
| [Instagram Audio Scraper](https://apify.com/s_actors/instagram-audio-scraper) | The Reels using any sound or song, with its exact Reels count, growth per day and Spotify link |
| [Instagram Trending Audio](https://apify.com/s_actors/instagram-trending-audio) | Reels sounds trending right now in any country, with Reels counts and daily growth |
| [TikTok Email Finder](https://apify.com/s_actors/tiktok-email-scraper) | Emails of TikTok creators by username or keyword, from the bio and the bio link |
| [Facebook Page Search](https://apify.com/s_actors/facebook-page-search-scraper) | Facebook business pages by keyword and city with emails, phones and websites |

# Actor input Schema

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

What the creators or businesses do, one search per line: "fitness coach", "wedding photographer", "dentist chicago", "skincare influencer". Each keyword is searched on Google together with "instagram"; a city in the keyword (or below) finds local accounts. Up to 200 keywords.

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

Added to every keyword: "Miami", "Berlin", "Texas". Leave empty to search the whole market.

## `maxProfilesPerKeyword` (type: `integer`):

Google shows about 50-90 Instagram accounts per keyword; profiles left out by the filters below do not count and are free. More profiles: add similar keywords ("personal trainer", "online fitness coach").

## `country` (type: `string`):

Google market the search runs in (results in its language and region). Pick the country of the creators or businesses you want.

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

Skip accounts with fewer followers. Empty or 0 = no minimum. Example: 1000 for micro-influencers.

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

Skip accounts with more followers (celebrities, big brands). Empty or 0 = no maximum. Example: 100000.

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

Return only accounts whose bio or bio link shows an email. Profiles without one are left out and not charged.

## `skipPrivate` (type: `boolean`):

Private accounts are left out (free). Turn off to get them too (bio, followers and contacts are still public).

## `onlyNew` (type: `boolean`):

Skip profiles that earlier runs already returned for the same keyword and country. Schedule the Actor weekly to get a feed of new accounts only.

## `scanBioLink` (type: `boolean`):

Open the website or link-in-bio page (Linktree, Beacons, Stan...) of each profile and its contact page to find emails and other social profiles. Off = emails from the bio only (faster).

## `checkMailServer` (type: `boolean`):

Drop emails whose domain cannot receive mail (no MX records). No email is sent.

## `includeEngagement` (type: `boolean`):

Posts count, average likes and comments of the 6 latest posts, engagement rate, posts a week and the latest post date.

## `includePostAuthors` (type: `boolean`):

Google also lists posts and Reels for a keyword: their authors are added (about +50% profiles per keyword).

## `maxConcurrency` (type: `integer`):

How many profiles are read in parallel.

## `debugLog` (type: `boolean`):

Log every retried request.

## Actor input object example

```json
{
  "keywords": [
    "vegan bakery london"
  ],
  "maxProfilesPerKeyword": 15,
  "country": "us",
  "onlyWithEmail": false,
  "skipPrivate": true,
  "onlyNew": false,
  "scanBioLink": true,
  "checkMailServer": true,
  "includeEngagement": true,
  "includePostAuthors": true,
  "maxConcurrency": 5,
  "debugLog": false
}
```

# Actor output Schema

## `leads` (type: `string`):

One row per profile with its best email, phone and links.

## `influencers` (type: `string`):

Audience and activity: followers, engagement, posting frequency.

## `contacts` (type: `string`):

Every email and phone found, the link in bio and other social profiles.

## `all` (type: `string`):

Every field of every row.

# 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": [
        "vegan bakery london"
    ],
    "maxProfilesPerKeyword": 15
};

// Run the Actor and wait for it to finish
const run = await client.actor("s_actors/instagram-influencer-email-finder").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": ["vegan bakery london"],
    "maxProfilesPerKeyword": 15,
}

# Run the Actor and wait for it to finish
run = client.actor("s_actors/instagram-influencer-email-finder").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": [
    "vegan bakery london"
  ],
  "maxProfilesPerKeyword": 15
}' |
apify call s_actors/instagram-influencer-email-finder --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,s_actors/instagram-influencer-email-finder"
        }
    }
}
```

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/m8NsqVMn8wJALnDmg/builds/bQEcyF7qz3VwkeK6b/openapi.json
