# Instagram Influencer Finder: Lookalike Creators (`deepmine/instagram-influencer-finder`) Actor

Instagram influencer finder: start from creators you like and get lookalike influencers from Instagram's suggested similar accounts, filtered by followers, with engagement, Reels views and business emails from their own pages, plus category and email when shown. A related profiles scraper, no login.

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

## Pricing

from $0.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: Lookalike Creators

Instagram influencer finder: type a few creators you like and get the lookalike influencers Instagram suggests next to them, kept between the follower counts you set, with each one's bio, links, exact followers, engagement rate and reel views, plus its category and contact email when the profile shows them and a business email from its own link page or website.

| 🏷️ Username | 👤 Name | 👥 Followers | 📈 Engagement | 🎬 Reel Views | 🌱 Seed |
|---|---|---|---|---|---|
| kk_fit\_ | K A T H R Y N & K E N D R A | 937,309 | 0.58% | 85,274 | gainsbybrains |
| natacha.oceane | Natacha Oceane | 921,677 | 4.70% | 755,616 | krissycela |
| s_abdelhady | Sherein Abdelhady 🇪🇬 | 684,629 | 1.76% | 186,706 | lilylifts |

<sub>Collected 2026-10-07 with the prefilled input: four fitness creators, 10,000 to 1,000,000 followers, contact details on.</sub>

**$0.79 per 1,000 profiles** on the Starter plan ($0.94 Free, $0.69 Scale, $0.59 Business). The prefilled run (up to 60 profiles) costs at most $0.05 ($0.06 on Free). Bio, links, followers, posts, engagement and Reels views are included, and so are category and contact email when the profile shows them. No start fee, no minimum.

### Build an influencer shortlist

Start from 3-5 creators in one niche: Instagram's suggestions for them are their closest lookalikes. Min and Max followers keep the tier you want (the form starts at 10,000 to 1,000,000), Min engagement rate and Bio keywords narrow it further, and profiles the filters leave out aren't charged. **Include business contact details** is on here: the Actor looks for a business email on each creator's link-in-bio page, website, YouTube or TikTok, and the **📇 Contacts** view lists it next to the bio email. Same engine and price as [Instagram Related Profiles](https://apify.com/deepmine/instagram-related-profiles).

### What you get

- **Similar accounts from Instagram's own suggestions.** Instagram suggests up to 50 accounts per profile (fewer for small creators, and none for many big brand accounts). Depth 2 adds the accounts suggested for each of those: hundreds more per input profile, but they drift away from your niche (a fitness creator's list can lead to actors and pop stars). Depth 3 to 5 go further.
- **Bio and links, plus category and email when shown**: full bio, website and every bio link with its title, account type (personal, business, creator), the category when the profile shows one (Digital creator, Athlete...; about a third of profiles in our runs of the prefilled input), an email address when the bio has one (about half), a phone number when the bio or a WhatsApp link has one (rare for creators: none of the 73 fitness creators in our test runs), following count, the Facebook page it links, Threads handle, @mentions in the bio, pronouns, state-media labels, the full-size profile picture and every account flag Instagram shows visitors. That's every profile field instagram-scraper's related profiles Actor returns without a paid add-on, except its picture id (latest posts too, as a free option).
- **Followers, posts and engagement at no extra cost**: exact follower and post counts, average likes and comments on each profile's latest posts, engagement rate (missing for the few profiles that hide their likes) and the date of its last post.
- **Reels views at no extra cost**: each profile's latest 12 reels with their views, likes and comments, plus the median and average reel views, median views over followers and the date of the last reel, as the profile's reels tab shows them (every profile with reels in our test runs).
- **Business contact details, optional**: a business email from the profile's own pages (a phone too, when its website lists one), the Contact button's type (call, email, text), the business address with coordinates when the profile shows one, and the story highlight count. Instagram hides the Contact button's own email and number from visitors who aren't logged in, so the Actor looks where profiles publish them: their Facebook Page (the email its intro shows, and the phone when it lists one; for brands that's usually the Contact button's: brooklinen's hello@brooklinen.com), their link-in-bio page, their website and its contact page, and the YouTube channel or TikTok profile those pages link to. A Facebook Page counts only when it names the profile's own website; in a list of related profiles only business accounts' Pages are read. It never logs in. On by default in this Actor (the **📇 Contacts** view lists what it finds); turn it off for a faster run (it adds a few seconds per profile). Instagram answers the Contact-button part with an error for about a quarter of profiles (20 of 73 in our test run), which then come without the button type and address.
- **Clean rows in the order Instagram ranks them**: username, name, picture, profile URL, verified and private flags, which input profile it came from, the depth, its rank in the list, and the profile that listed it. Each profile comes once per run, under the first input profile that reached it.
- **A match score with reasons, free**: every related profile gets a 0-100 match score against the profile it was found for, with the reasons in plain words, as in our live run of four fitness creators: "shares niche words: trainer, gymshark, athlete, program", "category Fitness Trainer, like 4 others here", "similar engagement: 1.47% vs 1.22%", "Instagram's #7 suggestion for @krissycela" (also the same language or city, and for deeper profiles the account that suggested them). The higher the score, the more its bio, category, engagement and language have in common with your profile and its niche; in that run half the profiles scored 50 to 78 (median 68), the fitness trainers 70 to 96, and a clothing brand, an actor and a lash brand founder Instagram suggested anyway 28 to 36. On 142 profiles we judged by hand (the ones its weights were set on), it put a good match above a poor one 87% of the time; Instagram's own order did 63%. The score uses what the run already reads, so it adds no charge. Set **Min match score** to keep only close matches (profiles left out aren't charged). See [How the match score works](#how-the-match-score-works).
- **Best match order, for several input profiles**: give it the 5-10 creators you already work with and set **Sort by** to *Best match*: the creators that several of them lead to come first (`matchedSeeds`, `seedCount`), then the highest match scores. Instagram's raw list ranks each profile on its own; this ranks the accounts your whole list agrees on. With one profile and depth 2 or more, accounts that several of its suggestions suggest come first (`suggestedByCount`). Each account still comes once and is charged once.
- **Latest posts, free and optional**: each profile's latest posts with caption, likes, comments, time, image, location and coauthors.
- **Free filters**: min and max followers (for example micro-influencers under 100,000), min and max posts, min and max engagement rate, verified, private and business account (yes or no, the same names as instagram-scraper's), and bio keywords. Profiles the filters leave out aren't charged.
- **No login, no cookies, no account of yours involved.** The Actor reads only what Instagram shows to visitors who aren't logged in.

Typical uses: influencer discovery (start from a few creators you like and get their niche with audience sizes), competitor and lookalike research, and building outreach lists.

### Input

```json
{
  "usernames": ["krissycela", "https://www.instagram.com/lilylifts/"],
  "maxDepth": 2,
  "maxResultsPerProfile": 100,
  "maxFollowers": 1000000
}
```

- **Instagram profiles**: usernames, @usernames or profile URLs.
- **Depth**: 1 = suggestions for your profiles (default: the closest lookalikes), 2 = also the suggestions for those (many more, less alike), up to 5.
- **Max related profiles per profile**: caps each input profile (default 500). **Max results** (Advanced) caps the whole run.
- **Include followers and engagement**: on by default and free; turn it off for the fastest runs (username, name and picture only).
- **Include bio, links and category**: on by default and included in the price; turn it off for a slightly faster list.
- **Include latest posts**: off by default; free.
- **Include Reels views** (Advanced): on by default and included in the price.
- **Include business contact details**: on by default here (third field of the form); included in the price, slower.
- **Filters**: Min and Max followers, Min and Max posts, Min and Max engagement rate, Verified, Private, Business account (`yes` / `no`), Bio keywords. All free.
- **Sort by** (`sortBy`): `instagram` (default) = Instagram's order, rows stream in as each list is read; `bestMatch` = accounts several of your profiles lead to first, then the highest match score (rows arrive once every list is read, so the first row takes longer).
- **Min match score** (`minSimilarityScore`): 0 to 100; profiles scoring lower are left out, free.
- **When Instagram suggests nothing: use the tagged network** (`taggedNetworkFallback`): off by default. For an input profile Instagram suggests no accounts for, the Actor takes the accounts it tags in its posts (venues, partner brands, clubs) and returns the accounts those tag in theirs, the ones most of them tag first, each with at least 2,000 followers. Rows carry `source` = `tagged-network`. Works for creators and local businesses (fellow ambassadors, same-city peers), rarely for brands. Same price per profile.

### Output

One row per related profile, in the dataset's **📊 Overview** view (with its 🎯 match score); **🔎 Details** shows the match reasons, bio, category, account type, email, website, following and Threads handle; **📈 Stats** shows every number (followers, posts, average likes and comments, engagement, last post); **🎬 Reels** shows reel views, likes, comments and the last reel's date. The run's OUTPUT record (🧾 Run summary) lists each input profile's status (found, not found, no suggested accounts, or suggestions Instagram answered with an error) and counts.

#### Output fields

- `profilePicUrl`: profile picture (150x150). Instagram signs picture links; they stop working after a few days.
- `fullName`: display name.
- `biography`: full bio.
- `biographySnippet`: first 50 characters of the bio.
- `username`: the handle, without @.
- `profileUrl`: https://www.instagram.com/<username>/.
- `businessCategoryName`: the category the profile shows (Digital creator, Athlete, Nonprofit organization...); null when it hides it (most creators do: about a third of rows in our runs of the prefilled input have one).
- `externalUrl`: the profile's website (its first bio link).
- `contactEmail`: an email address written in the bio or name, when there is one (about half of the rows in our runs of the prefilled input).
- `contactPhone`: a phone number written in the bio or name, or a WhatsApp number from the bio links, when there is one; with **Include business contact details** on, Instagram's business phone comes first when it sends one. Rare for creators.
- `businessContactMethod`: with **Include business contact details** on: what the profile's Contact button does (CALL, EMAIL, TEXT, DIRECTION), when it has one.
- `businessPhoneNumber`: with **Include business contact details** on: a business phone from the profile's Facebook Page (the phone its intro shows), its own website or link-in-bio page (tel: or WhatsApp links, the site's listed telephone), digits only, when there is one. Instagram hides the Contact button's own number from visitors who aren't logged in.
- `businessEmail`: with **Include business contact details** on: a business email from the profile's Facebook Page (the email its intro shows), its own link-in-bio page, website (its contact page too), or the YouTube channel or TikTok profile those pages link to, when one is published there. On a website only addresses on the site's own domain or a personal inbox count, never a shop's or a brand's.
- `businessContactSource`: with **Include business contact details** on: where `businessEmail` (else `businessPhoneNumber`) was found: `facebook`, `link page`, `website`, `youtube`, `tiktok` or `instagram`.
- `emails`: with **Include business contact details** on: every email address found, the bio's first, then the business email, then the ones on the profile's own pages. Inboxes of link and shop platforms (Linktree, ShopMy, LTK...) are left out.
- `phones`: with **Include business contact details** on: every phone number found, the bio's (and its WhatsApp links') first, then the own pages' (digits only).
- `whatsappNumbers`: with **Include business contact details** on: the WhatsApp numbers (wa.me links) in the bio links and on the profile's own pages, as +<digits>.
- `bioLinks`: every link in the bio, as `{url, title, linkType, lynxUrl, isPinned, imageUrl, linkId, mediaType, mediaAccentColorHex, creationSource}`.
- `linkPageLinks`: with **Include business contact details** on: where the profile's link-in-bio page (Linktree, Beacons, hoo.be...) sends visitors, up to 20 links.
- `pagesScanned`: with **Include business contact details** on: the profile's own pages read for contacts, in order.
- `isVerified`: has the blue check.
- `isPrivate`: private account.
- `isBusinessAccount`: a business account (account type business). Instagram sends its own business flag as false to visitors who aren't logged in, so the Actor sets it from the account type; the Business account filter uses the same rule.
- `isProfessionalAccount`: a business or creator account.
- `accountType`: personal, business or creator.
- `followersCount`: exact follower count.
- `followsCount`: accounts it follows.
- `postsCount`: exact number of posts.
- `hasReels`: the profile has reels (Instagram doesn't show visitors a reel count).
- `avgLikes`: average likes on its latest posts (up to 6; posts that hide likes are left out).
- `avgComments`: average comments on its latest posts.
- `engagementRate`: (average likes + average comments) / followers, in percent (1.09 = 1.09%).
- `lastPostAt`: when its newest post was published (UTC).
- `reelsMedianViews`: median views of its latest reels (up to 12, pinned ones included), as the reels tab shows them. These are Instagram's play counts, so they run higher than the older `videoViewCount` other Actors return (2.6 to 7 times higher on the same 8 reels in our check).
- `reelsAvgViews`: average views of those reels.
- `reelsAvgLikes`: average likes on those reels (reels that hide likes left out).
- `reelsAvgComments`: average comments on those reels.
- `reelsViewsToFollowers`: median reel views over followers, in percent.
- `lastReelAt`: when the newest of those reels was posted (UTC; from the reel's id, accurate to about a minute).
- `highlightReelCount`: with **Include business contact details** on: the number of story highlights.
- `hasPublicStory`: with the profile record on: a story is up right now (its newest story went up in the last 24 hours).
- `igtvVideoCount`: with the profile record on: its IGTV (long video) count, when Instagram's app record answers (null otherwise).
- `hasChannel`: with the profile record on: it runs a broadcast channel, when Instagram's app record answers.
- `joinedRecently`: with the profile record on: Instagram marks the account as new, when its app record answers.
- `latestPosts`: with **Include latest posts** on: its latest posts (up to 6, pinned ones included), each with id, type (Image, Video, Sidecar), shortCode, url, caption, hashtags, mentions, likesCount, commentsCount, timestamp, displayUrl, dimensionsWidth, dimensionsHeight, isPinned, paidPartnership, sponsors, coauthors, locationName, locationId and childPostsCount (Apify's Instagram Profile Scraper's latestPosts names).
- `latestIgtvVideos`: with the profile record and **Include latest posts** on: its latest IGTV (long) videos (up to 12), each with the latestPosts keys plus title, videoDuration and commentsDisabled, when its app record answers.
- `latestReels`: its latest reels (up to 12, pinned ones included), each with shortCode, url, playCount (views), likeCount, commentCount, postedAt and isPinned.
- `relatedProfiles`: with the profile record on: the profiles Instagram lists as related to this one (up to 50), each as `{id, full_name, is_private, is_verified, profile_pic_url, username}`.
- `bioMentions`: usernames the bio links to (@sweat...).
- `bioHashtags`: hashtags the bio links to.
- `pronouns`: pronouns the profile shows.
- `threadsUsername`: Threads handle, when the profile shows its Threads badge.
- `isActiveOnThreads`: the profile shows its Threads badge.
- `linkedFacebookPage`: the Facebook page the profile links, as `{id, name}`, when it shows one.
- `businessAddress`: with the profile record on: the business address as `{street_address, city_name, city_id, zip_code, latitude, longitude}`, when the profile shows one.
- `addressStreet`: business street address, with **Include business contact details** on and only for businesses that show an address (rare; null otherwise).
- `city`: business city, the same way.
- `zipCode`: business ZIP or postal code, the same way.
- `addressLatitude`: the business address's latitude, the same way.
- `addressLongitude`: the business address's longitude, the same way.
- `transparencyLabel`: Instagram's label for state-controlled media and similar accounts, when shown (rare).
- `transparencyProduct`: where Instagram shows that label.
- `isMemorialized`: a memorialized account.
- `isEmbedsDisabled`: the profile turned off embedding its posts on other sites.
- `isUnpublished`: Instagram's unpublished-account flag.
- `hasStoryArchive`: the account keeps a story archive (Instagram sends it only to logged-in users, so usually null).
- `hasProfilePic`: the account has a profile picture (usually null for visitors who aren't logged in).
- `latestStoryAt`: when its newest story went up (UTC), when Instagram shows it (usually null).
- `hideCreatorMarketplaceBadge`: the profile hides its creator marketplace badge.
- `isRegulatedC18`: Instagram marks the account as regulated 18+ content (alcohol, gambling and similar).
- `isCoppaEnforced`: Instagram applies children's-privacy (COPPA) rules to the account (usually null).
- `isCannes`: Instagram's `is_cannes` flag, passed through as sent.
- `hasLongformMedia`: Instagram's `has_longform_media` flag: the account has long-form videos.
- `shouldShowCategory`: the profile shows its category on its page.
- `showAccountTransparencyDetails`: Instagram shows the "About this account" details for it.
- `profilePicGenaiToolInfo`: Instagram's AI-tool info for the profile picture, when it has any.
- `externalUrlLinkshimmed`: the website as Instagram links it (through l.instagram.com).
- `profilePicUrlHD`: full-size profile picture (signed link, expires after a few days).
- `similarityScore`: how close it is to the input profile it was found for, 0 to 100 (see [How the match score works](#how-the-match-score-works)).
- `similarityReasons`: what it has in common with that profile, strongest first, then where Instagram suggested it.
- `detectedLanguage`: the language it writes in, read from its bio and its latest posts' captions (an ISO 639-1 code: `en`, `es`, `pt`, ...; empty when there is too little text to tell).
- `matchedSeeds`: with **Sort by** = Best match, every input profile whose suggestions reached it, in your input order.
- `seedCount`: with Best match, how many of your input profiles reached it.
- `suggestedByCount`: with Best match, how many suggestion lists read in the run included it (your profiles' and, deeper, their suggestions').
- `source`: with **When Instagram suggests nothing: use the tagged network** on, `instagram` (Instagram's suggestions) or `tagged-network` (found through the accounts the input profile tags, for a profile Instagram suggests nothing for).
- `seedUsername`: the input profile it was found for.
- `depth`: 1 = suggested for the input profile, 2 = suggested for a depth-1 profile, and so on.
- `rank`: its position in the list that suggested it (1 = first).
- `discoveredFrom`: the profile whose suggestions listed it.
- `id`: Instagram's numeric user id.
- `fbid`: Instagram's Facebook-wide id for the account.
- `scrapedAt`: when the run collected it (UTC).

The stats fields (`followersCount`, `postsCount`, `avgLikes`, `avgComments`, `engagementRate`, `lastPostAt`) are in the rows unless you turn followers and engagement off; the Reels fields (`reelsMedianViews` to `lastReelAt`, `latestReels`) unless you turn Reels views off; the bio and profile fields (`biography` to `fbid` except the stats) unless you turn bio, links and category off; `latestPosts` only with **Include latest posts** on; `businessContactMethod`, `businessPhoneNumber`, `businessEmail`, `businessContactSource`, `emails`, `phones`, `whatsappNumbers`, `linkPageLinks`, `pagesScanned`, `highlightReelCount`, `addressLatitude` and `addressLongitude` only with **Include business contact details** on; `hasPublicStory`, `igtvVideoCount`, `hasChannel`, `joinedRecently`, `relatedProfiles` and `businessAddress` only with `includeProfileRecord: true` in the API input (the rest of Instagram's logged-out profile record). `similarityScore`, `similarityReasons` and `detectedLanguage` are in every related-profile row (not with **What to get** = the profiles themselves); `matchedSeeds`, `seedCount` and `suggestedByCount` only with **Sort by** = Best match. Field names match Apify's Instagram Profile Scraper where both have the field, so the two join on `username` or `id`.

Example row (a creator from a live run of the prefilled input with **Include latest posts** and **Include business contact details** on and **Sort by** = Best match, 2026-10-12: three of the four input profiles lead to this account, and its score is against krissycela's profile and the accounts Instagram suggests for it; latestPosts and latestReels cut to one each here, picture and redirect links shortened; `source` is shown as a run with the tagged-network option on has it):

```json
{
  "profilePicUrl": "https://scontent-arn2-1.cdninstagram.com/v/t51.82787-19/719490192_18411729133177087_5832527482161309877_n.jpg?stp=...&oe=...",
  "fullName": "Kelly Matthews",
  "biography": "💋your gym big sister\n@oneractive move ambassador \n@promix athlete \n⬇️ TRAIN WITH MY TEAM ⬇️ @joinladder",
  "biographySnippet": "💋your gym big sister @oneractive move ambassador @…",
  "username": "kellylmatthews",
  "profileUrl": "https://www.instagram.com/kellylmatthews/",
  "businessCategoryName": null,
  "externalUrl": "https://linktr.ee/strongwithkelly",
  "contactEmail": "hello@strongwithkelly.com",
  "contactPhone": null,
  "businessContactMethod": null,
  "businessPhoneNumber": null,
  "businessEmail": "hello@strongwithkelly.com",
  "businessContactSource": "website",
  "emails": [
    "hello@strongwithkelly.com"
  ],
  "phones": null,
  "whatsappNumbers": null,
  "bioLinks": [
    {
      "url": "https://linktr.ee/strongwithkelly",
      "title": null,
      "linkType": "external",
      "lynxUrl": "https://l.instagram.com/?u=https%3A%2F%2Flinktr.ee%2Fstrongwithkelly&e=...",
      "isPinned": false,
      "imageUrl": null,
      "linkId": "17936571653286817",
      "mediaType": "none",
      "mediaAccentColorHex": null,
      "creationSource": "NONE"
    }
  ],
  "linkPageLinks": [
    "https://superpower.com/?via=kelly-matthews",
    "https://ladder.fit/Limitless",
    "https://oner.shop/kellylmatthews",
    "https://rad-global.com/collections/euphoric-dawn?utm_source=instagram&utm_medium=partner&utm_campaign=kelly_matthews",
    "https://promixnutrition.com/products/pre-workout?variant=40507203977305",
    "https://youtube.com/@kellylmatthews?si=rCemtHxLCDz7d7QK",
    "https://www.strongwithkelly.com/shopprograms"
  ],
  "pagesScanned": [
    "https://linktr.ee/strongwithkelly",
    "https://www.strongwithkelly.com/shopprograms"
  ],
  "isVerified": true,
  "isPrivate": false,
  "isBusinessAccount": true,
  "isProfessionalAccount": true,
  "accountType": "business",
  "followersCount": 1740125,
  "followsCount": 881,
  "postsCount": 1421,
  "hasReels": true,
  "avgLikes": 25315,
  "avgComments": 250,
  "engagementRate": 1.47,
  "lastPostAt": "2026-10-11T22:12:51Z",
  "reelsMedianViews": 9188,
  "reelsAvgViews": 129922,
  "reelsAvgLikes": 7450,
  "reelsAvgComments": 87,
  "reelsViewsToFollowers": 0.53,
  "lastReelAt": "2026-10-11T15:45:14Z",
  "highlightReelCount": null,
  "hasPublicStory": null,
  "igtvVideoCount": null,
  "hasChannel": null,
  "joinedRecently": null,
  "latestPosts": [
    {
      "id": "4005868599499839329",
      "type": "Sidecar",
      "shortCode": "DeXtERqFFdh",
      "url": "https://www.instagram.com/p/DeXtERqFFdh/",
      "caption": "Will be back for coladas ✨\n\nOut in Oner (drops Wednesday 10/14, code KELLY)\n\n#miami #gym #dump",
      "hashtags": [
        "miami",
        "gym",
        "dump"
      ],
      "mentions": [],
      "likesCount": 44126,
      "commentsCount": 340,
      "timestamp": "2026-10-11T22:12:51Z",
      "displayUrl": "https://scontent-dfw5-1.cdninstagram.com/v/t51.82787-15/842785850_18432024301177087_5674582342440981943_n.jpg?stp=...&oe=...",
      "dimensionsWidth": 1080,
      "dimensionsHeight": 1440,
      "isPinned": false,
      "paidPartnership": false,
      "sponsors": [],
      "coauthors": [],
      "locationName": null,
      "locationId": null,
      "childPostsCount": 14
    }
  ],
  "latestIgtvVideos": null,
  "latestReels": [
    {
      "shortCode": "DeXAtQsSsly",
      "url": "https://www.instagram.com/reel/DeXAtQsSsly/",
      "playCount": 14646,
      "likeCount": 455,
      "commentCount": 3,
      "postedAt": "2026-10-11T15:45:14Z",
      "isPinned": false
    }
  ],
  "relatedProfiles": null,
  "bioMentions": [
    "oneractive",
    "joinladder",
    "promix"
  ],
  "bioHashtags": null,
  "pronouns": null,
  "threadsUsername": null,
  "isActiveOnThreads": false,
  "linkedFacebookPage": null,
  "businessAddress": null,
  "addressStreet": null,
  "city": null,
  "zipCode": null,
  "addressLatitude": null,
  "addressLongitude": null,
  "transparencyLabel": null,
  "transparencyProduct": null,
  "isMemorialized": false,
  "isEmbedsDisabled": false,
  "isUnpublished": false,
  "hasStoryArchive": null,
  "hasProfilePic": null,
  "latestStoryAt": null,
  "hideCreatorMarketplaceBadge": false,
  "isRegulatedC18": false,
  "isCoppaEnforced": null,
  "isCannes": false,
  "hasLongformMedia": false,
  "shouldShowCategory": false,
  "showAccountTransparencyDetails": true,
  "profilePicGenaiToolInfo": null,
  "externalUrlLinkshimmed": "https://l.instagram.com/?u=https%3A%2F%2Flinktr.ee%2Fstrongwithkelly&e=...",
  "profilePicUrlHD": "https://scontent-arn2-1.cdninstagram.com/v/t51.82787-19/719490192_18411729133177087_5832527482161309877_n.jpg?stp=...&oe=...",
  "similarityScore": 88,
  "similarityReasons": [
    "shares niche words: move, athlete, train, @oneractive",
    "similar engagement: 1.47% vs 1.22%",
    "Instagram's #8 suggestion for @krissycela"
  ],
  "detectedLanguage": "en",
  "matchedSeeds": [
    "krissycela",
    "lilylifts",
    "gainsbybrains"
  ],
  "seedCount": 3,
  "suggestedByCount": 3,
  "source": "instagram",
  "seedUsername": "krissycela",
  "depth": 1,
  "rank": 8,
  "discoveredFrom": "krissycela",
  "id": "5439561086",
  "fbid": "17841405312599945",
  "scrapedAt": "2026-10-12T17:45:48Z"
}
```

### How the match score works

Each related profile is compared with the input profile it was found for, and with what the other accounts Instagram suggests for that profile have in common (its niche: a seed's own bio is often one line, its suggestions say more):

| Part | Points | Full points when |
|---|---|---|
| Niche words | 45 | it shares 3 or more niche terms with your profile or its niche: bio words, category words or @accounts (filler, common words and press or retailer @accounts don't count) |
| Path | 15 | Instagram suggested it for your profile itself; a deeper profile gets these as far as the account that suggested it is on your niche (half past its 25th place); a tagged-network one, as far as the account that tags it is |
| Category | 10 | the same category as your profile, or one 2 or more of its other suggestions have (a related one gets 6; catch-alls like Digital creator count as unknown) |
| Engagement | 10 | engagement rates within 2x of each other (within 5x: half) |
| Language | 10 | the bios are in the same language |
| Instagram's rank | 5 | one of Instagram's first 10 suggestions (11 to 25: 3; a tagged-network profile, which Instagram didn't rank: 2.5) |
| Location | 5 | the same city, or the same country flag in both bios |

**What the number means**: points for what a profile has in common with yours, added up; not a probability. In our live run of the four prefilled fitness creators with Best match (67 profiles, 2026-10-12), every profile at 80 or more shared 3 or more niche words with them (15 profiles), and every one under 50 shared none: Instagram suggested it, and at most its engagement or language matched (13 profiles). Half scored 50 to 78.

A part that one of the two profiles doesn't show (no bio, no category, a private account's engagement) gets half its points, so missing data neither sinks nor lifts a profile. In Instagram's order the niche comes from the suggestions read before the first row goes out (rows stream at once), so scores there can be lower than with Best match, which reads them all first: set a lower **Min match score** in Instagram's order. Follower count and account type aren't scored: in our test they didn't tell good matches from poor ones (use the follower filters for size).

How well it ranks: we judged 142 related profiles of 5 input profiles by hand (a fitness creator, a pilates coach, a bakery, a fish brand, a musician). Given a good and a poor match, the score ranked the good one higher 87% of the time, Instagram's own order 63%. The weights were set on these same profiles, which hold only 18 poor matches, and each list was read whole (as Best match does), so expect a little less on your own profiles and in Instagram's order. In that run scores went from 28 to 96 with a median of 68: the 7 profiles in the Fitness Trainer category scored 70 to 96; a clothing brand, an actor and a lash brand founder that Instagram suggested anyway 28 to 36. A **Min match score** of 60 kept 39 of the 67. The same four creators in Instagram's order scored 28 to 90 with a median of 52 (63 profiles), and 60 kept 22 of them. The score reads bios, so it can miss a close match whose bio shares no words with the niche (a strength and pilates coach scored 30, a strength coach for women 32).

**Best match** reads every input profile's suggestions first (deeper levels as far as your limits need), counts how many of your profiles reach each account, and then reads and delivers the accounts most of them share first, each level sorted by match score. When your filters leave an input profile short of its maximum, it reads on in that profile's suggestions (deeper too, within your depth) and the accounts that pass follow, sorted the same way, as many as Instagram's order would give. In the same Best match run, 10 of 67 accounts were suggested for more than one of the four creators, and hannaoeberg, kellylmatthews and analiscruzx for three of them.

**When Instagram suggests nothing** (with the tagged-network option on), the related profiles come from the accounts your profile tags. Their niche is your profile's bio plus the bios of the accounts it tags, and each one's path points depend on how on-niche the account that tags it is ("came through @x, off this niche"). These scores run low, so use a low **Min match score** or none for them. In two live runs (2026-10-12), a Gold Coast fitness creator's 21 rows scored 20 to 65: fellow Gold Coast creators and activewear athletes 50 to 65, the petrol stations an energy drink brand led to 20. A Bay Area food creator, whose tagged accounts are Yelp, city and hotel pages, got 45 rows at 10 to 45 (median 20): restaurants 15 to 30, Ritz-Carlton hotels 10 to 25, a city government page 45. Those pages share place words with each other, not food words, so the score can't tell the restaurants from the hotels. These rows carry `source` = `tagged-network`.

### Pricing

Pay per result: you pay for related profiles delivered, never for input profiles that weren't found or have no suggestions, and never for profiles your filters leave out.

| Plan | Per 1,000 profiles (bio, links, followers, posts, engagement and Reels views included; category and email when shown) |
|---|---|
| Free | $0.94 |
| Starter | $0.79 |
| Scale | $0.69 |
| Business | $0.59 |

Set a maximum cost on the run and the Actor stops at or before it. Proxies are included: the Actor reads everything through Apify's datacenter proxy and uses a little residential on its own only where Instagram refuses a datacenter IP.

### Good to know

- **Big brand accounts and private accounts get no suggestions** (Instagram doesn't list similar accounts for them). The run says so for each such profile and charges nothing for it. Start from a creator or a niche account instead.
- **A few big accounts hide their counts** from visitors who aren't logged in (news publishers such as cnn or bbc, and some celebrities): their rows come without posts and engagement (and sometimes followers), and the run summary counts them. Follower, post and engagement filters leave such profiles out.
- **Hidden from visitors who aren't logged in**: the phone number and email behind a business's Contact button. Instagram sends both as null without a login (the button's type and the business address do come through, with the contact details option). The Actor never logs in, so emails and phones come from the bio and, with the contact details option, from the profile's own link page, website, YouTube or TikTok. A profile that publishes its inbox nowhere but behind the Contact button comes without one.
- **Suggestions change over time** and can differ a little between runs. Instagram suggests public accounts; in our tests none of about 1,100 suggestions was a private account.
- **Speed**: rows stream into the dataset as each profile's details and reels arrive. In our tests of the prefilled run on Apify (2026-10-01), the first profile was in 1.5 to 5 s after the Actor started (4.6 to 7.6 s after clicking Start, container start included) and all 73 profiles took 30 to 34 s. If a very large run nears its timeout, it stops a minute early and keeps everything collected so far.
- **If Instagram refuses us**: five input profiles failing in a row stop the run with a clear message instead of retrying the rest of a long list.
- **Unknown or renamed usernames** are reported as not found in the run summary; the rest of the run continues.
- If Instagram refuses the suggestions, hides them from every IP, or stops showing profile counts or details, the run fails with a clear message instead of finishing empty or with blank columns. One profile that errors in a bigger run is reported in the run summary and the rest of the run continues.

### Related Actors

- **The same engine, every option in one form:** [Instagram Related Profiles](https://apify.com/deepmine/instagram-related-profiles) has the full form; rows and prices are identical.
- **Also need Threads data?** [Threads Scraper](https://apify.com/deepmine/threads-scraper) takes the `threadsUsername` handles from this table and returns those accounts' Threads posts, replies, followers and bio links, with no login.

### Feedback

Found a bug or missing a field? Open an issue in the Issues tab. If the Actor saves you time, a short review on its Store page helps others find it.

# Actor input Schema

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

Profiles to find similar accounts for, one per line: a username (natgeo), @username or profile URL (https://www.instagram.com/natgeo/). You get the accounts Instagram suggests for each one; several profiles from one niche give more lookalikes. You pay per related profile delivered.

## `maxResultsPerProfile` (type: `integer`):

Related profiles per input profile, closest first. You pay per profile, so this caps the cost per input profile. Default 500.

## `includeContactDetails` (type: `boolean`):

Adds a business email (and a phone, when the site lists one) found on a business profile's Facebook Page, the profile's own link-in-bio page, website (and its contact page), or the YouTube channel or TikTok profile they link to, plus the Contact button's type (CALL, EMAIL, TEXT), the business address when the profile shows one, and the story highlight count. Included in the price, but slower (a few seconds more per profile). Instagram hides the Contact button's own phone and email from visitors who aren't logged in, and the Actor never logs in; phones and emails written in the bio are always included.

## `maxDepth` (type: `integer`):

1 = the accounts Instagram suggests for your profiles: the closest lookalikes, up to 50 each. 2 = also the accounts suggested for those: hundreds more per profile, drifting further from your niche (a fitness creator's list can lead to actors and pop stars). Up to 5.

## `includeStats` (type: `boolean`):

Adds each profile's exact follower and post counts, average likes and comments on its latest posts, engagement rate and last post date. Free: no extra charge. Turn off for the fastest runs (username, name and picture only).

## `sortBy` (type: `string`):

Related profiles only. Instagram's order (default): rows stream in as each list is read, in the order Instagram suggests them. Best match: profiles that several of your input profiles lead to come first (matchedSeeds, seedCount), then the highest match score; rows arrive once every list is read. Free.

## `minSimilarityScore` (type: `integer`):

Related profiles only. Keep only profiles whose match score (0-100, how close each one is to the profile it was found for) is at least this. Free: profiles left out aren't charged.

## `taggedNetworkFallback` (type: `boolean`):

Related profiles only. For an input profile Instagram suggests no accounts for, get the accounts that the accounts it tags (venues, partner brands, clubs) tag in their posts, flagged source = tagged-network. Works for creators and local businesses, rarely for brands. Same price per profile.

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

Keep only profiles with at least this many followers. Free: profiles left out aren't charged.

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

Keep only profiles with at most this many followers (e.g. 100000 for micro-influencers). Free: profiles left out aren't charged.

## `minEngagementRate` (type: `number`):

Keep only profiles whose engagement rate (average likes + comments on the latest posts, over followers) is at least this many percent, e.g. 1.5. Free: profiles left out aren't charged.

## `maxEngagementRate` (type: `number`):

Keep only profiles whose engagement rate is at most this many percent. Free: profiles left out aren't charged.

## `bioKeywords` (type: `array`):

Keep only profiles whose bio, name or category contains any of these words (e.g. coach, founder, nyc). Free: profiles left out aren't charged.

## `isBusinessAccount` (type: `string`):

yes = only business accounts (brands, shops, organizations), no = only personal and creator accounts, empty = both. Free: profiles left out aren't charged.

## `isVerified` (type: `string`):

yes = only accounts with the blue check, no = only accounts without it, empty = both. Free: profiles left out aren't charged.

## `maxResults` (type: `integer`):

Stop after this many related profiles in total. You pay per profile, so this caps the run's cost. Profiles come in the order of your input.

## `includeDetails` (type: `boolean`):

Adds each profile's full bio, bio links, website, category, account type, contact email (when the bio shows one), following count, linked Facebook page and more. Included in the price; turn it off only for a slightly faster list.

## `includeReels` (type: `boolean`):

Adds each profile's latest reels (up to 12) with their views, likes and comments, plus median and average reel views, views over followers and the last reel's date. Included in the price: one more quick datacenter request per profile.

## `includeLatestPosts` (type: `boolean`):

Adds each profile's latest posts (up to 6) with caption, hashtags, likes, comments, time, image, location and coauthors. Free: no extra charge; rows get bigger.

## `isPrivate` (type: `string`):

no = skip private accounts, yes = only private accounts, empty = both. Free: profiles left out aren't charged.

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

Apify Proxy (datacenter) is the default and reads everything, bio and links included. When Instagram refuses a datacenter IP (an age-restricted input profile's page, a retry), the Actor uses a little Apify residential on its own, at no extra cost to you. Picking Residential here works the same way (its country applies to those residential tries).

## Actor input object example

```json
{
  "usernames": [
    "krissycela",
    "lilylifts",
    "lisafiitt",
    "gainsbybrains"
  ],
  "maxResultsPerProfile": 25,
  "includeContactDetails": true,
  "maxDepth": 1,
  "includeStats": true,
  "sortBy": "instagram",
  "taggedNetworkFallback": false,
  "minFollowers": 10000,
  "maxFollowers": 1000000,
  "maxResults": 60,
  "includeDetails": true,
  "includeReels": true,
  "includeLatestPosts": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `summary` (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 = {
    "usernames": [
        "krissycela",
        "lilylifts",
        "lisafiitt",
        "gainsbybrains"
    ],
    "maxResultsPerProfile": 25,
    "includeContactDetails": true,
    "maxDepth": 1,
    "minFollowers": 10000,
    "maxFollowers": 1000000,
    "maxResults": 60,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("deepmine/instagram-influencer-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 = {
    "usernames": [
        "krissycela",
        "lilylifts",
        "lisafiitt",
        "gainsbybrains",
    ],
    "maxResultsPerProfile": 25,
    "includeContactDetails": True,
    "maxDepth": 1,
    "minFollowers": 10000,
    "maxFollowers": 1000000,
    "maxResults": 60,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("deepmine/instagram-influencer-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 '{
  "usernames": [
    "krissycela",
    "lilylifts",
    "lisafiitt",
    "gainsbybrains"
  ],
  "maxResultsPerProfile": 25,
  "includeContactDetails": true,
  "maxDepth": 1,
  "minFollowers": 10000,
  "maxFollowers": 1000000,
  "maxResults": 60,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call deepmine/instagram-influencer-finder --silent --output-dataset

```

## MCP server setup

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