Instagram Profile Intel β No Login, Bio Emails & 25+ Fields
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
One-click editor setup isnβt available for this listing yet β we donβt have a confirmed install command, and weβd rather show nothing than point your editor at the wrong package or host. Follow the projectβs own setup instructions, linked above.
Deep Instagram profile dossier (25+ fields) without login or cookies - bio emails (MX-validated), phones, multi-link bios, engagement scoring.
Available as an Apify Actor. Pay-per-event. No login means no account bans, scales to bulk.
Takes an Instagram username and extracts a 25+ field dossier without requiring any auth: bio + bio emails (MX-validated at DNS layer), phone numbers, multi-link bio expansion (Linktree, Linkbio, Beacons), engagement quality score, account age estimate, tech stack inference from linked sites, cross-platform presence flags. Designed for B2B lead generation and OSINT investigation.
| apify/instagram-post-scraper (massively adopted, 96K users) or login-required scrapers | This actor | |
|---|---|---|
| Auth required | Cookies / session credentials | None |
| Account bans | Yes, at volume | Zero risk - no auth used |
| Bio email extraction | Raw bio text only | Extracted + MX-validated |
| Multi-link bio | Linktree URL returned | Linktree contents expanded recursively |
| Output fields | Generic bio + counts | 25+ enrichment fields |
25+ enrichment fields per profile including bio, MX-validated bio emails, multi-link bio expansion (Linktree / Linkbio / Beacons / Bento), engagement quality, account age, tech stack.
Pay-per-event:
| Event | Price | When it fires |
|---|---|---|
Actor Start | $0.01 | Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event) |
Profile Record | $0.05 | Charged per Instagram profile scraped |
You only pay for profiles actually delivered. A username that does not exist, an invalid entry (an email or a link pasted by mistake), or a profile Instagram blocks is recorded in the run summary but is never charged - no Profile Record event fires for it. If Instagram blocks every profile in a run, the run ends as failed and costs you nothing beyond the single Actor Start.
This actor works without any login. It loads each public profile in a real browser and reads the profile data Instagram embeds in the page - name, follower / following / post counts, bio, bio links, verified and business flags, external URL, profile picture. That is the default, and it needs nothing from you but usernames.
Recent posts (engagement rate, top posts, posting pattern) are not exposed to a logged-out browser. If you want those too, you can optionally supply your own Instagram session:
https://www.instagram.com.sessionid value into the sessionCookie input (stored encrypted, never logged).Use a secondary / throwaway account for
sessionCookie. Automated use can get an Instagram account rate-limited. It returns only what you can already see logged in - it does not unlock private accounts you do not follow.
If a run comes back empty, the IP may be flagged - retry, set a proxyCountry, or plug a mobile proxy into customProxyUrl. Either way you are never charged for a profile that did not come back.
| Field | Required | What it does |
|---|---|---|
usernames | yes | Array of Instagram handles or profile URLs. @ is optional; URLs are auto-parsed. Prefilled so a default run works out of the box. |
enrichLevel | no | basic (identity + bio contacts + account age) or full (adds engagement, posting pattern, hashtag campaigns, top posts, niche). Default full. |
checkCrossPlatform | no | Check if the same handle exists on 8 other platforms. Default true. |
enrichExternalUrl | no | Fetch the bio website's og-metadata, extra emails/phones, and tech stack. Default true. |
expandMultiLinkBio | no | Expand linktr.ee / beacons.ai / bio.link into child links. Default true. |
validateEmailsViaMx | no | DNS MX-check each bio email. Default true. |
checkBioLinkHealth | no | HEAD each bio link to flag dead ones. Default true. |
fetchProfilePicMeta | no | Profile-picture size and type. Default true. |
useResidentialProxy | no | Route through Apify residential IPs. Keep on - Instagram blocks datacenter IPs. Default true. |
requestDelayMs | no | Delay between profiles (500-10000). Default 1500. |
maxRetries | no | Attempts per username before it is recorded as failed (1-10). Default 3. |
sessionCookie | no | Your own Instagram sessionid (secret, encrypted). Without it, anonymous mode is blocked by Instagram most of the time. See "Getting reliable results" above. |
Every field except usernames has a working default, and usernames ships prefilled - so a run started with no changes succeeds.
Each dataset record:
The dataset holds exactly one row per profile actually delivered - nothing else - so your charge equals the profile count. The run summary (counts of scraped / private / not-found / blocked profiles, invalidInputsSkipped, totals, duration) is written to the run's OUTPUT record, not the billed dataset. Blocked, not-found, and invalid entries appear only in that summary, never as charged rows.
Q: Does it scrape posts? No, profile-only. Chain to apify/instagram-post-scraper for posts. This actor is built for the profile dossier.
Q: Does it scrape followers list? No. Followers list requires login auth and is out of scope.
Q: Will my account be banned? In anonymous mode there is no account involved, so no. If you supply a sessionCookie for reliable results, that account carries the usual automation risk - use a secondary/throwaway account, not your main one. The cookie is stored encrypted and never logged.
Q: What about private accounts? Private profiles still return - you get the public metadata Instagram exposes (username, full name, follower/following/post counts, bio, verified and business flags, external link) with isPrivate: true and status: "private". Post-derived fields (engagement, posting pattern, top posts) come back empty because Instagram does not expose a private account's posts without a follow. Private profiles are charged as normal deliveries.
Q: I passed 10 usernames but got fewer rows. Why? Rows are only produced for profiles actually retrieved. Check the run summary (the OUTPUT record, also shown on the run's Output tab): profilesNotFound, profilesBlocked, and invalidInputsSkipped list exactly what did not come through, and none of those were charged. If many are blocked, Instagram is rate-limiting the IP pool - re-run with residential proxy on (the default) or fewer usernames per run.
Q: What counts as an invalid username? Anything that is not an Instagram handle: an email address, a link to another site, a blank entry, or a name over 30 characters. These are skipped, listed in invalidInputsSkipped, and never charged. You can pass either bare handles (zomato) or full profile URLs (https://www.instagram.com/zomato/) - both work.
Built and maintained by Anshuman Atrey (@AnshumanAtrey).
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/instagram-profile-intel-no-login-bio-emails-25-fields)<a href="https://allmcps.com/mcp/instagram-profile-intel-no-login-bio-emails-25-fields"><img src="https://allmcps.com/api/badge/instagram-profile-intel-no-login-bio-emails-25-fields?style=directory" alt="Instagram Profile Intel β No Login, Bio Emails & 25+ Fields on AllMCPs" /></a>