Instagram Email & Phone Contact Enricher avatar

Instagram Email & Phone Contact Enricher

Pricing

from $6.50 / 1,000 profile results

Go to Apify Store
Instagram Email & Phone Contact Enricher

Instagram Email & Phone Contact Enricher

Enrich Instagram profiles with public emails, phone numbers, WhatsApp links, and contacts found across bios and linked websites.

Pricing

from $6.50 / 1,000 profile results

Rating

0.0

(0)

Developer

Fetch Finch

Fetch Finch

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

6 days ago

Last modified

Share

Instagram Bio & Link-in-Bio Contact Enricher

Turn Instagram usernames or profile URLs into structured, public contact leads.

The Actor extracts public Instagram profile metadata, scans visible bio content for contact details, and can follow a bounded number of pages from the profile's link in bio. This is useful for creator research, influencer partnerships, PR list building, local-business prospecting, recruiting research, and agency lead enrichment.

Try the public examples

How it works

For each profile, the Actor:

  1. Fetches publicly accessible Instagram profile data using the selected cost/reliability mode.
  2. Extracts display name, biography, category, follower count, following count, post count, verification status, privacy status, and public profile links.
  3. Finds public emails, phone numbers, WhatsApp links, and contact links in the profile content.
  4. Optionally fetches the link in bio and relevant public pages such as contact, about, press, booking, and business pages.
  5. Returns source evidence for every discovered contact and keeps one result row per requested profile.

The Actor is intentionally public-only. It does not require Instagram login cookies, does not use a bundled account session, and does not click private or authenticated contact controls. This keeps runs safer, easier to operate commercially, and predictable for customers.

Input

The only required input is a list of Instagram usernames or profile URLs:

{
"usernames": ["garyvee", "nasa", "https://www.instagram.com/natgeo/"],
"scrapeLinkInBio": true,
"maxLinkedPages": 3,
"defaultCountry": "US"
}

Main options

  • usernames — Instagram usernames or profile URLs. Duplicate profiles are processed once.
  • scrapeLinkInBio — scan the public external website listed on the profile. Enabled by default.
  • maxLinkedPages — maximum external pages fetched per profile, including the bio URL. The default is 3; lower values are faster and cheaper.
  • defaultCountry — optional two-letter country code used to normalize local phone numbers, for example US or GB.
  • instagramFetchStrategy — defaults to public_http_residential_fallback: it tries the lowest-cost direct HTTP request first, then retries blocked public pages through a residential browser. public_http uses direct HTTP only, while residential_browser uses the browser for every profile.
  • linkedProxyMode — route linked websites directly, through a datacenter proxy, or through the same proxy as Instagram. Direct is the default and is usually appropriate for normal external websites.
  • expandPublicLinks — in browser modes, click only the public and N more link to reveal additional profile links. Enabled by default; it has no effect in HTTP-only mode.

The default fallback mode starts with direct public requests and only uses residential proxy traffic when Instagram blocks or limits the direct request. Residential fallback can increase run cost, while blockBrowserResources is enabled by default to reduce browser traffic when it is needed.

Advanced controls include retries, request timeout, request delay, browser fallback, public-link expansion, phone country handling, and proxy settings.

Output

Each input produces one dataset item. The most useful fields are:

  • username, profileUrl, displayName, biography, and category
  • followers, following, posts, isVerified, and isPrivate
  • externalUrl and profileLinks — public links found on the Instagram profile
  • emails, phones, and whatsappUrls
  • contactSources — source URL, contact type, value, and confidence for each contact
  • pagesScanned and childLinks — useful for auditing link-in-bio enrichment
  • status and error — processing outcome and explanation when access is unavailable

Example result:

{
"username": "examplebrand",
"status": "ok",
"displayName": "Example Brand",
"biography": "Contact us at hello@examplebrand.com",
"followers": 125000,
"externalUrl": "https://linktr.ee/examplebrand",
"emails": ["hello@examplebrand.com", "press@examplebrand.com"],
"phones": ["+12125550100"],
"whatsappUrls": [],
"contactSources": [
{
"value": "hello@examplebrand.com",
"type": "email",
"source": "instagram_bio",
"sourceUrl": "https://www.instagram.com/examplebrand/",
"confidence": "high"
}
],
"pagesScanned": ["https://linktr.ee/examplebrand"]
}

Possible statuses include ok, metadata_only, private, blocked, not_found, partial, and invalid_input. A failed profile remains in the dataset so batch results are easy to reconcile.

Why use this Actor

  • Combines public Instagram metadata with bounded link-in-bio enrichment.
  • Finds contacts in both visible profile content and relevant linked pages.
  • Produces source-level evidence instead of an unexplained list of contacts.
  • Normalizes phone numbers and handles common obfuscated email formats.
  • Keeps crawl depth and proxy usage under your control.

Notes for best results

Coverage depends on what Instagram and linked websites make publicly accessible at the time of the run. Some profiles do not publish contact details, and public access can vary by profile, region, and time. For the best cost/coverage balance, keep the default fallback mode and a small linked-page limit. Use public_http for the lowest possible cost, or residential_browser when consistent browser rendering is more important than cost.

Review contact results before outreach and follow applicable privacy, marketing, and platform rules.