~ / endpoints / Email & Lead API

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.

Get a free API keyBrowse the endpoints
1,000
free requests / mo
2.6s
median response
JSON
structured output
1
call per profile

Use it for

>

B2B lead enrichment

Turn a list of business handles into contact rows: email, phone, category, and website when the account publishes them, plus name and bio for context.
>

Local business outreach

Read address, category, and external_url from local business profiles that still expose a contact block to build a regional prospect list.
>

Creator partnership sourcing

Pull the business email and website of creators who list contact details so partnerships can reach the right inbox instead of a DM.
>

CRM hygiene

Attach the published website and category to existing Instagram leads so records stay complete and searchable by niche.

Quickstart

cURL
curl "https://api.instagramscraperapi.com/api/v1/instagram/email?username=natgeo&api_key=$API_KEY"
Python
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

200 OK
{
  "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"
}
FieldTypeDescription
usernamestringThe profile handle the contact data belongs to.
urlstringThe canonical profile URL.
emailstringThe business or public email when the profile exposes one, or an address found in the bio text. Null when no public email is available.
phonestringThe business or public phone number when exposed, otherwise null.
categorystringThe business or creator category label when present, otherwise null.
external_urlstringThe website link in the bio when present, otherwise null.
addressobjectA parsed address (street_address, city_name, zip_code, region_name, country_code) when the profile publishes one, otherwise null.
is_businessbooleanTrue for a business or professional account, false otherwise, or null when Instagram does not ship the flag logged-out.

Pricing

PlanPriceBest for
Free1,000 requestsTesting and small jobs
Pro$0.60 / 1kProduction workloads
Pay-as-you-go$0.90 / 1kSpiky 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.

Get email & lead api as JSON
Free plan, 1,000 requests. No credit card required.
Get a free API key All endpoints