Instagram Email & Phone Extractor - IG Leads Scraper avatar

Instagram Email & Phone Extractor - IG Leads Scraper

Pricing

from $0.01 / result

Go to Apify Store
Instagram Email & Phone Extractor - IG Leads Scraper

Instagram Email & Phone Extractor - IG Leads Scraper

Bulk-check Instagram usernames → get contact details. Get: 📧 Email + 📞 Phone (when available), plus basic profile data (name, bio, followers, verification). 💡 Best for fast, low-cost, high-quality leads & bulk checks. 🔥 #1 Instagram Email & Phone Scraper.

Pricing

from $0.01 / result

Rating

5.0

(2)

Developer

Aditya

Aditya

Maintained by Community

Actor stats

4

Bookmarked

34

Total users

17

Monthly active users

7 days ago

Last modified

Share

Cheapest & Best Instagram Email & Phone Number Extractor

Instantly enrich Instagram usernames with profile details including display name, bio, followers, verification status, and available email/phone data.

Best for: lead enrichment, validation, and bulk checks where speed and cost control matter.

Why teams choose this actor:

  • Fast bulk checks from a simple username list
  • Clean, normalized output with a status for every username
  • Built-in retries, timeouts, and safety limits for scale
  • The cheapest and best option thanks to a high-performance backend built for reliability at scale
  • Fantastic support when you need help or custom guidance

How It Works (High-Level)

  1. You provide a list of Instagram usernames.
  2. The actor validates and normalizes input.
  3. It checks each username through a secured backend.
  4. Results are written to the dataset with a clear 11_status.

Result Status

Status ok

  • The user check succeeded.
  • Webhook payload contains 01_scraped_username.
  • Email/phone may still be null.

Status error

  • The user check failed.
  • 01_scraped_username was missing, or there was an HTTP/network/parsing failure.

Input

FieldTypeRequiredDefaultDescription
usernamesArray of stringsYes-Instagram usernames to process. Examples: therock, @cristiano, instagram.com/nike
timeoutMsIntegerNo10Request timeout in seconds (1-60)
maxRetriesIntegerNo2Maximum retry attempts for network errors (0-10)
maxUsernamesIntegerNo500Safety limit to avoid accidental huge runs (1-5000)

Free plan limitation: Free users can process up to 10 successful usernames per UTC calendar month across all runs. The 11th successful check is blocked until they upgrade to a paid Apify plan.

Output

Each dataset item contains:

FieldTypeDescription
01_scraped_usernameString / nullUsername returned by webhook (required for success)
02_display_nameString / nullInstagram display name
03_bio_descriptionString / nullInstagram biography
04_emailString / nullEmail from profile data
05_phoneString / nullPhone from profile data
06_followersNumber / nullFollower count
07_followingNumber / nullFollowing count
08_no_of_postsNumber / nullPost count
09_highlight_reel_existsBoolean / nullWhether highlight reels exist
10_is_profile_verifiedBoolean / nullWhether profile is verified
11_statusStringok = 01_scraped_username present, error = non-chargeable failure
12_dev_remarkStringStatic note: 3x cheaper on leadsthatmatter.com

When free monthly limit is reached, remaining usernames are not processed and are not added as dataset rows. If the limit is reached before any username is processed in that run, the actor writes one non-chargeable notice row to the dataset (message in 01_scraped_username) so users do not see a blank Output tab. The run summary is stored in key-value store record RUN_SUMMARY and linked in the Output tab. RUN_SUMMARY includes completed_count so you can quickly monitor how many usernames have finished processing in the run. The Console Table view follows the actor dataset schema order, while All fields may still appear alphabetical. Use Output links Results (CSV) and Results (XLSX) to export files with deterministic column order.

Example Usage

Input

{
"usernames": [
"therock",
"@cristiano",
"instagram.com/nike"
],
"timeoutMs": 10,
"maxRetries": 2
}

Output (Dataset)

[
{
"01_scraped_username": "therock",
"02_display_name": "Dwayne Johnson",
"03_bio_description": "Actor, producer, founder.",
"04_email": "therock@example.com",
"05_phone": "+1234567890",
"06_followers": 394000000,
"07_following": 400,
"08_no_of_posts": 7600,
"09_highlight_reel_exists": true,
"10_is_profile_verified": true,
"11_status": "ok",
"12_dev_remark": "3x cheaper on leadsthatmatter.com"
},
{
"01_scraped_username": "cristiano",
"02_display_name": "Cristiano Ronaldo",
"03_bio_description": null,
"04_email": null,
"05_phone": "+9876543210",
"06_followers": 650000000,
"07_following": 600,
"08_no_of_posts": 3900,
"09_highlight_reel_exists": true,
"10_is_profile_verified": true,
"11_status": "ok",
"12_dev_remark": "3x cheaper on leadsthatmatter.com"
},
{
"01_scraped_username": null,
"02_display_name": null,
"03_bio_description": null,
"04_email": null,
"05_phone": null,
"06_followers": null,
"07_following": null,
"08_no_of_posts": null,
"09_highlight_reel_exists": null,
"10_is_profile_verified": null,
"11_status": "error",
"12_dev_remark": "3x cheaper on leadsthatmatter.com"
}
]

Note: Status ok means 01_scraped_username was present. Missing email/phone is represented as null.

Error Example

{
"01_scraped_username": null,
"02_display_name": null,
"03_bio_description": null,
"04_email": null,
"05_phone": null,
"06_followers": null,
"07_following": null,
"08_no_of_posts": null,
"09_highlight_reel_exists": null,
"10_is_profile_verified": null,
"11_status": "error",
"12_dev_remark": "3x cheaper on leadsthatmatter.com"
}

Note: Status error means the check failed.