Instagram Email & Lead Scraper API
Our Instagram email and lead scraper reads a public business profile and returns its published contact block as JSON: business email, phone, category, external link, and address when the account exposes them, alongside the handle, name, and bio for lead enrichment.
Use it for
B2B lead enrichment
Local business outreach
Creator partnership sourcing
CRM hygiene
Quickstart
curl "https://api.instagramscraperapi.com/api/v1/instagram/email?username=natgeo&api_key=$API_KEY" import requests, os
BASE = "https://api.instagramscraperapi.com"
API_KEY = os.environ["API_KEY"]
# Pass a username (no leading @) or a full profile URL.
data = requests.get(
f"{BASE}/api/v1/instagram/email",
params={"username": "natgeo", "api_key": API_KEY},
timeout=30,
).json()
# email / phone populate only when the profile exposes a public contact block.
if data["email"]:
print(data["username"], "->", data["email"], data.get("phone"))
else:
print(data["username"], "has no public contact block exposed")
print(data["full_name"], "|", data["biography"]) Response
{
"username": "natgeo",
"url": "https://www.instagram.com/natgeo/",
"email": null,
"phone": null,
"category": null,
"external_url": null,
"address": null,
"is_business": null,
"full_name": "National Geographic",
"biography": "Step into wonder and find your inner explorer with National Geographic",
"is_verified": true,
"source": "instagram",
"data_source": "embedded"
} | Field | Type | Description |
|---|---|---|
username | string | The profile handle the contact data belongs to. |
url | string | The canonical profile URL. |
email | string | The business or public email when the profile exposes one, or an address found in the bio text. Null when no public email is available. |
phone | string | The business or public phone number when exposed, otherwise null. |
category | string | The business or creator category label when present, otherwise null. |
external_url | string | The website link in the bio when present, otherwise null. |
address | object | A parsed address (street_address, city_name, zip_code, region_name, country_code) when the profile publishes one, otherwise null. |
is_business | boolean | True for a business or professional account, false otherwise, or null when Instagram does not ship the flag logged-out. |
Pricing
| Plan | Price | Best for |
|---|---|---|
| Free | 1,000 requests | Testing and small jobs |
| Pro | $0.60 / 1k | Production workloads |
| Pay-as-you-go | $0.90 / 1k | Spiky or one-off volume |
Median response 2.6s. You only pay for successful requests.
FAQ
What is an Instagram email scraper?
An Instagram email and lead scraper is a tool that reads a public business profile and returns the contact details the account chooses to publish. Our endpoint takes a username or profile URL and returns the business email, phone, category, external link, and address when they are exposed, plus the name, bio, and verified flag for lead context, all as JSON from one request.
Can you get an email for any Instagram account?
No, and any tool that claims to is overstating it. Instagram has no public email endpoint. Emails come from the contact block a business or professional account opts to expose, and Instagram strips that block for many large accounts to logged-out visitors. The sample on this page shows natgeo returning identity fields with email as null for exactly that reason. When a profile does publish a public email, we return it; when it does not, we return null.
Which accounts actually return an email?
Business and professional accounts that keep a public contact button, most often smaller and regional businesses and creators, are the ones that expose an email, phone, category, or address logged-out. Large brand accounts frequently have those fields withheld. If a profile also drops a plaintext email into its bio, we surface that in the email field as a fallback.
How do I scrape Instagram leads at scale?
Send a request per handle to the instagram/email endpoint with your API key. We route through residential IPs, handle anti-bot checks, retry on failure, and parse the contact block, returning a clean JSON record per profile. Run your list of handles through it and keep the rows where email, phone, or external_url came back populated. Failed requests are not billed.
Do I need a Facebook app or the Graph API?
No. You only need an instagramscraperapi key passed as api_key. The official Instagram Graph API has no endpoint for arbitrary public account emails at all, and it requires a Facebook app, a linked Business account, and app review even for the data it does return, which is limited to accounts you own or manage.
Is scraping Instagram emails legal and GDPR-compliant?
Scraping publicly available business contact details is broadly permitted in many jurisdictions, and US courts have declined to treat collecting public profile data as unauthorized access. That said, a business email is often personal data, so laws such as GDPR and CCPA still apply to how you store and use it: you need a lawful basis, must honor deletion and opt-out requests, and must follow anti-spam rules like CAN-SPAM when you send outreach. Instagram's terms also restrict automated collection. Use the endpoint for lawful, consented outreach and take your own legal advice.