Enterprise Instagram Lead Intelligence

Extract Verified Leads with Insta Lead

High-speed REST API for automated Instagram profile extraction, followers, following, hashtags, emails, and direct WhatsApp numbers.

Production API Gateway ● Online
https://instalead-production.up.railway.app
⚠️ Routing Rule: Proxy OR ScrapingBee OR Zyte (Mutually Exclusive)
You must specify strictly one anti-bot routing method per request: proxy, scrapingbee_key, OR zyte_key. Specifying multiple routing methods simultaneously returns an HTTP 400 Bad Request error. If none are provided, the server routes through the bot's configured admin credentials.
POST /api/scrape

The all-in-one endpoint. Pass target handle or tag, choose type (followers, following, hashtag, profile), amount, and export format.

Field Type Status Details
target string Required Target username or hashtag without symbols (e.g. travel_daily)
type string Optional followers (default), following, hashtag, or profile
amount int Optional Number of leads to scrape (e.g. 25, 50, 100). Default: 50
format string Optional xlsx (default), csv, or json
cookies string Optional Instagram session cookie: sessionid=YOUR_SESSION_ID
zyte_key string Exclusive Your Zyte API key (mutually exclusive with proxy & scrapingbee_key)
scrapingbee_key string Exclusive Your ScrapingBee API key (mutually exclusive with proxy & zyte_key)
proxy string Exclusive Custom proxy URL (mutually exclusive with scrapingbee_key & zyte_key)
Python • Zyte Mode
import requests

url = "https://instalead-production.up.railway.app/api/scrape"

payload = {
    "target": "travel_daily",
    "type": "followers",
    "amount": 50,
    "format": "xlsx",
    "cookies": "sessionid=123456789%3AEXAMPLE_COOKIE%3A2%3AAYsample",
    "zyte_key": "YOUR_ZYTE_API_KEY"
}

response = requests.post(url, json=payload, timeout=120)
data = response.json()

print("Status:", data.get("status"))
print("Download URL:", data.get("download_url"))

# Download the returned Excel spreadsheet
if data.get("download_url"):
    file_bytes = requests.get(data["download_url"]).content
    with open("followers_leads.xlsx", "wb") as f:
        f.write(file_bytes)
    print("Saved to followers_leads.xlsx!")
Python • ScrapingBee Mode
import requests

url = "https://instalead-production.up.railway.app/api/scrape"

payload = {
    "target": "travel_daily",
    "type": "followers",
    "amount": 50,
    "format": "xlsx",
    "cookies": "sessionid=123456789%3AEXAMPLE_COOKIE%3A2%3AAYsample",
    "scrapingbee_key": "YOUR_SCRAPINGBEE_API_KEY"
}

response = requests.post(url, json=payload, timeout=120)
data = response.json()

print("Status:", data.get("status"))
print("Download URL:", data.get("download_url"))

# Download the returned Excel spreadsheet
if data.get("download_url"):
    file_bytes = requests.get(data["download_url"]).content
    with open("followers_leads.xlsx", "wb") as f:
        f.write(file_bytes)
    print("Saved to followers_leads.xlsx!")
Python • Proxy Mode
import requests

url = "https://instalead-production.up.railway.app/api/scrape"

payload = {
    "target": "travel_daily",
    "type": "followers",
    "amount": 50,
    "format": "xlsx",
    "cookies": "sessionid=123456789%3AEXAMPLE_COOKIE%3A2%3AAYsample",
    "proxy": "socks5://user:pass@niceproxy.io:17521"
}

response = requests.post(url, json=payload, timeout=120)
data = response.json()

print("Status:", data.get("status"))
print("Download URL:", data.get("download_url"))
JavaScript • Node.js Fetch
const response = await fetch("https://instalead-production.up.railway.app/api/scrape", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    target: "travel_daily",
    type: "followers",
    amount: 30,
    format: "xlsx",
    cookies: "sessionid=123456789%3AEXAMPLE_COOKIE%3A2%3AAYsample",
    scrapingbee_key: "YOUR_SCRAPINGBEE_API_KEY"
  })
});

const data = await response.json();
console.log("Download URL:", data.download_url);
cURL • Terminal
curl -X POST "https://instalead-production.up.railway.app/api/scrape" \
  -H "Content-Type: application/json" \
  -d '{
    "target": "travel_daily",
    "type": "followers",
    "amount": 50,
    "format": "xlsx",
    "cookies": "sessionid=123456789%3AEXAMPLE_COOKIE%3A2%3AAYsample",
    "scrapingbee_key": "YOUR_SCRAPINGBEE_API_KEY"
  }'
POST /api/scrape/profile

Deep single-profile extraction. Scrapes public email, WhatsApp phone, category, biography, followers count, and physical address.

Python • Zyte Mode
import requests

url = "https://instalead-production.up.railway.app/api/scrape/profile"

payload = {
    "username": "businessicgrowup",
    "cookies": "sessionid=123456789%3AEXAMPLE_COOKIE%3A2%3AAYsample",
    "zyte_key": "YOUR_ZYTE_API_KEY",
    "format": "xlsx"
}

response = requests.post(url, json=payload, timeout=60)
data = response.json()

print("Extracted Profile:", data.get("data"))
print("Spreadsheet Download URL:", data.get("download_url"))
Python • ScrapingBee Mode
import requests

url = "https://instalead-production.up.railway.app/api/scrape/profile"

payload = {
    "username": "businessicgrowup",
    "cookies": "sessionid=123456789%3AEXAMPLE_COOKIE%3A2%3AAYsample",
    "scrapingbee_key": "YOUR_SCRAPINGBEE_API_KEY",
    "format": "xlsx"
}

response = requests.post(url, json=payload, timeout=60)
data = response.json()

print("Extracted Profile:", data.get("data"))
print("Spreadsheet Download URL:", data.get("download_url"))
Python • Proxy Mode
import requests

url = "https://instalead-production.up.railway.app/api/scrape/profile"

payload = {
    "username": "businessicgrowup",
    "cookies": "sessionid=123456789%3AEXAMPLE_COOKIE%3A2%3AAYsample",
    "proxy": "socks5://user:pass@niceproxy.io:17521",
    "format": "xlsx"
}

response = requests.post(url, json=payload, timeout=60)
data = response.json()

print("Extracted Profile:", data.get("data"))
cURL • Profile Scrape
curl -X POST "https://instalead-production.up.railway.app/api/scrape/profile" \
  -H "Content-Type: application/json" \
  -d '{
    "username": "businessicgrowup",
    "scrapingbee_key": "YOUR_SCRAPINGBEE_API_KEY",
    "format": "xlsx"
  }'
POST /api/scrape/following

Extract accounts followed by any target account with full contact and lead enrichment.

Python • Following Accounts
import requests

url = "https://instalead-production.up.railway.app/api/scrape/following"

payload = {
    "target": "businessicgrowup",
    "amount": 30,
    "format": "csv",
    "cookies": "sessionid=123456789%3AEXAMPLE_COOKIE%3A2%3AAYsample",
    "scrapingbee_key": "YOUR_SCRAPINGBEE_API_KEY"
}

response = requests.post(url, json=payload, timeout=90)
print(response.json())
POST /api/scrape/hashtag

Extract recent post authors and enriched business contacts publishing under a target hashtag.

cURL • Hashtag Search
curl -X POST "https://instalead-production.up.railway.app/api/scrape/hashtag" \
  -H "Content-Type: application/json" \
  -d '{
    "target": "realestate",
    "amount": 25,
    "format": "xlsx",
    "cookies": "sessionid=123456789%3AEXAMPLE_COOKIE%3A2%3AAYsample",
    "scrapingbee_key": "YOUR_SCRAPINGBEE_API_KEY"
  }'
GET /api/download/{filename}

Download generated spreadsheets. Automatically serves MIME types for Microsoft Excel (.xlsx) and CSV (.csv).

cURL • Download File
curl -O "https://instalead-production.up.railway.app/api/download/businessicgrowup_profile_a74c244a.xlsx"

Enriched Lead Fields Schema

The following 17 structured fields are extracted and written into your downloaded spreadsheet:

Field Name Type Description
usernamestringInstagram handle
full_namestringAccount display name
public_emailstringVerified public business email
phonestringContact phone number
whatsapp_numberstringDirect WhatsApp phone number
category_namestringIndustry / niche category
biographystringAccount biography description
external_urlstringWebsite / link in bio
follower_countintFollowers count
following_countintFollowing count
citystringRegistered business city
addressstringRegistered street address
zip_codestringPostal or ZIP code