Instagram Following Scraper With Lead Enrichment
Pricing
Pay per usage
Instagram Following Scraper With Lead Enrichment
๐ธ Instagram Following Scraper extracts public following lists from Instagram profiles โ usernames, names, bios & profile links. ๐ Ideal for influencer discovery, competitor analysis & audience research. โก Fast, accurate, bulk/API-ready; export CSV/JSON. ๐
Pricing
Pay per usage
Rating
0.0
(0)
Developer
API Empire
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Instagram Scraper โ Extract Following, Profiles and Bio Contacts
Instagram Following Scraper With Lead Enrichment extracts an Instagram profile's Following list, then enriches every followed account with public profile data and bio-parsed contact details โ email, phone, website, business category, and verification status. Point it at one or more seed profiles and it returns typed, normalized JSON per prospect: no HTML, no selectors, no manual parsing. Built-in qualifier filters keep only the business, verified, or category-matched accounts you actually want. After reading this page you'll know exactly which fields the Actor returns, what a run requires, and how to route the output into a lead pipeline or AI agent.
What is Instagram Following Scraper With Lead Enrichment?
Instagram Following Scraper With Lead Enrichment is an Apify Actor that turns any Instagram profile's Following list into a qualified B2B prospect list. It calls Instagram's own friendship API to page through the Following tab, then calls the public web_profile_info endpoint for each followed account to pull bio, contact, and business-category data. A valid Instagram sessionid cookie is required โ the Following endpoint is login-walled and returns nothing without it.
- Scrape the Following list of one or many seed Instagram profiles
- Enrich every followed account with bio, follower/following/post counts, and business category
- Extract email, phone, and website from bio text and external links
- Filter prospects by business account, verified status, or business category
- Export results as JSON or CSV straight from the Apify dataset
What data does Instagram Following Scraper With Lead Enrichment collect?
Each run returns one row per followed account (a "prospect"), combining four layers of data โ following-list identity, enrichment profile data, extracted contacts, and provenance:
| Data Type | Key Fields | JSON Field Names |
|---|---|---|
| Following list identity | username, full name, verified badge, profile link | username, full_name, is_verified, profileUrl |
| Lead-enrichment profile data | biography, follower/following/post counts, business category, professional flags | biography, followersCount, followsCount, postsCount, businessCategory, categoryName, isBusinessAccount, isProfessionalAccount |
| Extracted bio contacts | email, phone, website parsed from bio + external link | bioEmail, bioPhone, bioWebsite, bioLinks, externalUrl |
| Prospect provenance | which seed surfaced the account, scrape timestamp | sourceProfile, scrapedAt |
Need more Instagram data?
Instagram Following Scraper With Lead Enrichment focuses on one seed profile's Following graph. If you also need the Followers side of the same accounts โ or want to scrape either followers or following in a single run with the same profile-email enrichment โ Instagram Followers And Following Scrapper With Profile Emails covers both directions from one Actor. If you want a broader lookalike audience instead of a strict one-hop Following list, Instagram Related Person Scraper With Similar Audience Builder walks Instagram's related-accounts graph multiple hops deep and ranks accounts by how many paths reach them.
How does Instagram Following Scraper With Lead Enrichment differ from the official Instagram API?
Instagram's Graph API does not expose a Following or Followers list at all โ it returns only aggregate counts for a Business or Creator account, and it requires Meta App Review before most permissions work in production; Instagram Following Scraper With Lead Enrichment returns the full list of followed accounts plus enrichment data for any public seed profile, with no App Review step (confirmed against Graph API documentation summaries as of 2026-07-25).
| Feature | Instagram Graph API | Instagram Following Scraper With Lead Enrichment |
|---|---|---|
| Following/Followers list access | Not available โ counts only | Full paginated list per seed profile |
| Account type required | Business or Creator account with a linked Facebook Page | None โ any public seed profile |
| Approval process | Meta App Review required for most permissions | No approval process; runs directly on Apify |
| Third-party profile data | Business Discovery only โ one authenticated business account querying another business/creator account | Any public seed profile, enriched via the public web profile endpoint |
| Bio contact extraction | Not provided | Built-in email / phone / website extraction from bio |
| Setup time | Developer app registration plus App Review (multi-step, days) | Paste a sessionid cookie and run |
The Graph API is the right choice if you only need aggregate insights for an account you already own or manage. Instagram Following Scraper With Lead Enrichment is the practical option when you need the actual list of accounts a profile follows, with contact and business data attached, for lead generation or outreach.
Why do developers and teams scrape Instagram?
For sales and business development teams
Mining a competitor's, influencer's, or industry leader's Following list surfaces accounts that already engage with that niche โ a warmer prospect pool than cold outreach lists. Set businessCategoryFilter to terms like "Restaurant" or "Photographer" and onlyBusinessAccounts to true, then push straight into a CRM using the returned bioEmail, bioPhone, and businessCategory fields. Because unenrichable or non-matching accounts are dropped before the dataset is charged, the result set is a ready-to-work lead list rather than a raw follow graph.
For marketing and partnership teams
Brand and partnership teams use the Following list of a category leader to find potential collaborators, affiliates, or sponsorship targets. Filtering to isBusinessAccount and inspecting businessCategory and biography quickly separates genuine businesses from personal fan accounts. Combined with onlyVerifiedAccounts, this narrows a large Following list down to a shortlist of verified, on-category brands worth a partnership pitch โ without opening a single profile manually.
For agencies and freelance lead-gen consultants
Agencies running lead generation for multiple clients can point several seed profiles at once, cap volume per seed with maxProspectsPerProfile, and export a CSV per client straight from the dataset. Because contact fields are null when Instagram simply doesn't publish them โ never fabricated โ the coverage numbers reported in the run log double as an honest deliverable metric for client reporting, rather than an inflated lead count that fails on first contact.
For developers building lead-enrichment pipelines
Developers wire this Actor into a pipeline via the Apify API: trigger a run, wait for it to finish, and pull typed JSON rows straight into a CRM, spreadsheet sync, or internal enrichment service. Because every row shares the same stable field names whether or not enrichment succeeded (enriched: true/false plus null placeholders), downstream code can rely on one schema instead of branching on partial data โ a common integration failure mode with less consistent scrapers.
How to scrape Instagram (step by step)
- Open Instagram Following Scraper With Lead Enrichment on its Apify Store listing and start a run.
- Provide the required
sessionIdโ the Instagramsessionidcookie value copied from a browser where you're logged in. - Add one or more
prospectSeeds(profile URLs, usernames, or@handles) and set optional filters such asonlyBusinessAccounts,onlyVerifiedAccounts, orbusinessCategoryFilter. - Start the run โ the Actor paginates each seed's Following list and, if
extractBioContactsis on, enriches every followed account up tomaxEnrichFetches. - Download results as JSON or CSV from the run's dataset, or pull them programmatically via the Apify API.
What to do when Instagram changes its structure
Nothing on your end. The Actor is maintained against Instagram's friendship and profile-info endpoints, and the output field names and types stay stable across maintenance updates, so downstream integrations keep working without code changes.
โฌ๏ธ Input
Instagram Following Scraper With Lead Enrichment takes 9 parameters; only sessionId is required.
| Parameter | Required | Type | Description | Example Value |
|---|---|---|---|---|
prospectSeeds | No | array | Instagram profile URLs, usernames, or @handles to mine the Following list from. Legacy key urls also accepted. | ["natgeo", "https://www.instagram.com/nike/", "@nasa"] |
sessionId | Yes | string | Instagram sessionid cookie from a logged-in browser. Required โ the Following endpoint is login-walled and returns nothing without it. | "58012345%3AAbCdEfGhIjKl%3A27%3A..." |
maxProspectsPerProfile | No | integer | Cap on followed accounts collected per seed. 0 = uncapped (collects the whole Following list). Legacy key maxItems also accepted. Default 50. | 50 |
extractBioContacts | No | boolean | Fetch each followed account's public profile and extract email/phone/website from bio + external URL. Default true. | true |
maxEnrichFetches | No | integer | Run-wide cap on extra per-account profile fetches, to bound request volume and block risk. 0 = no cap. Default 100. | 100 |
businessCategoryFilter | No | array | Keep only prospects whose business/category name contains any of these terms (case-insensitive). Requires enrichment. Default []. | ["Restaurant", "Clothing", "Photographer"] |
onlyBusinessAccounts | No | boolean | Keep only prospects flagged as business accounts. Requires enrichment; accounts that couldn't be enriched are dropped. Default false. | false |
onlyVerifiedAccounts | No | boolean | Keep only blue-badge verified prospects. Uses the Following payload flag, so it works even without enrichment. Default false. | false |
proxyConfiguration | No | object | Proxy settings for the Following pagination requests. Residential proxies are recommended for reliable results. | {"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]} |
Example input
{"prospectSeeds": ["https://www.instagram.com/natgeo/"],"sessionId": "YOUR_SESSIONID_COOKIE_VALUE","maxProspectsPerProfile": 50,"extractBioContacts": true,"maxEnrichFetches": 100,"businessCategoryFilter": ["Photographer", "Media"],"onlyBusinessAccounts": false,"onlyVerifiedAccounts": false,"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
The most common input mistake is setting maxEnrichFetches lower than the number of prospects a run is likely to collect โ accounts past the cap still appear in the output but with every enrichment and contact field set to null, which looks like a bug rather than a budget limit.
โฌ๏ธ Output
Every result is a typed, normalized JSON row in the Apify dataset โ no HTML, no selectors. Export as JSON, CSV, Excel, or any other format the Apify dataset supports, or read it live via the API. Enrichment is optional and budget-capped, so a run can contain both fully enriched rows and base rows side by side; both share the exact same field set.
Scraped prospect โ enriched
{"pk": "1798203441","pk_id": "1798203441","id": "1798203441","full_name": "Wild Lens Photography","is_private": false,"fbid_v2": "17841401234567890","third_party_downloads_enabled": 0,"strong_id__": "1798203441","profile_pic_id": "3187245591234567890_1798203441","profile_pic_url": "https://scontent.cdninstagram.com/v/t51.2885-19/profile_pic.jpg","is_verified": false,"username": "wildlensphotography","has_anonymous_profile_picture": false,"account_badges": [],"latest_reel_media": 0,"is_favorite": false,"followed_by": null,"sourceProfile": "natgeo","profileUrl": "https://www.instagram.com/wildlensphotography/","scrapedAt": "2026-07-25T14:32:10.000Z","enriched": true,"biography": "Wildlife & landscape photographer ๐ท Prints + bookings via email","externalUrl": "https://wildlensphotography.myportfolio.com","bioLinks": ["https://wildlensphotography.myportfolio.com"],"businessCategory": "Photographer","categoryName": "Photographer","isBusinessAccount": true,"isProfessionalAccount": true,"followersCount": 48210,"followsCount": 812,"postsCount": 1904,"bioEmail": "bookings@wildlensphotography.com","bioPhone": null,"bioWebsite": "https://wildlensphotography.myportfolio.com","publicEmail": null,"publicPhone": null}
Scraped prospect โ base (enrichment off or capped)
{"pk": "44210398821","pk_id": "44210398821","id": "44210398821","full_name": "Jordan Reyes","is_private": true,"fbid_v2": "17841409876543210","third_party_downloads_enabled": 0,"strong_id__": "44210398821","profile_pic_id": "2984510098765432100_44210398821","profile_pic_url": "https://scontent.cdninstagram.com/v/t51.2885-19/profile_pic2.jpg","is_verified": false,"username": "jordan.reyes","has_anonymous_profile_picture": false,"account_badges": [],"latest_reel_media": 0,"is_favorite": false,"followed_by": null,"sourceProfile": "natgeo","profileUrl": "https://www.instagram.com/jordan.reyes/","scrapedAt": "2026-07-25T14:32:41.000Z","enriched": false,"biography": null,"externalUrl": null,"bioLinks": [],"businessCategory": null,"categoryName": null,"isBusinessAccount": null,"isProfessionalAccount": null,"followersCount": null,"followsCount": null,"postsCount": null,"bioEmail": null,"bioPhone": null,"bioWebsite": null,"publicEmail": null,"publicPhone": null}
How many results can you scrape with Instagram Following Scraper With Lead Enrichment?
There is no hard cap on prospects in the Actor itself: maxProspectsPerProfile has no schema maximum, and setting it to 0 collects the entire Following list for a seed by paginating Instagram's friendship API on its next_max_id cursor until the list ends. The prefilled default is 50 per seed to keep runs predictable. Enrichment is capped separately and run-wide by maxEnrichFetches (default 100, 0 = uncapped) โ once that budget is spent, remaining prospects are still returned with null enrichment and contact fields rather than being dropped. Multiple seeds are processed one after another, each with its own Following pagination. No benchmark run time is published, since actual throughput depends on how often Instagram escalates the built-in proxy fallback (direct โ datacenter โ residential).
Integrate Instagram Following Scraper With Lead Enrichment and automate your workflow
Instagram Following Scraper With Lead Enrichment works with any language or tool that can send an HTTP request.
REST API integration
import requestsACTOR_ID = "your-username~instagram-following-scraper-with-lead-enrichment" # from the Actor's Store pagerun_input = {"prospectSeeds": ["https://www.instagram.com/natgeo/"],"sessionId": "YOUR_SESSIONID_COOKIE_VALUE","maxProspectsPerProfile": 50,"extractBioContacts": True,}resp = requests.post(f"https://api.apify.com/v2/acts/{ACTOR_ID}/run-sync-get-dataset-items",headers={"Authorization": "Bearer YOUR_APIFY_TOKEN"},json=run_input,timeout=300,)leads = resp.json()print(f"{len(leads)} prospects, first: {leads[0]['username'] if leads else None}")
Works in Python, Node.js, Go, Ruby, cURL.
MCP for AI agents
The Actor is reachable through Apify's official Actors MCP Server. Use the hosted endpoint at https://mcp.apify.com (OAuth or Authorization: Bearer <APIFY_TOKEN>), or run it locally with npx @apify/actors-mcp-server --actors your-username/instagram-following-scraper-with-lead-enrichment, substituting the exact slug shown on the Actor's Store page. Compatible with Claude Desktop, Claude Code, Cursor, and any MCP-compatible client.
Automation platforms (n8n, Make)
In n8n, install the @apify/n8n-nodes-apify community node and use its "Run Actor" operation, pointing it at this Actor and supplying sessionId and prospectSeeds in the input body. In Make, use the native Apify app's "Run an Actor and get dataset items" module, mapping the same input fields from an earlier module in the scenario.
Is it legal to scrape Instagram?
Scraping publicly accessible Instagram data is generally permitted, and Instagram Following Scraper With Lead Enrichment only returns data visible through a logged-in Instagram session โ it does not bypass privacy settings or access private accounts you don't otherwise have visibility into. Following-list profiles and the bio contacts extracted from them are personal data, so GDPR and CCPA (and similar regimes) govern how you may store, process, and use them once collected โ you need a lawful basis for that downstream use, not just for the scrape itself. Consult legal counsel before any commercial use case involving bulk personal data.
Frequently asked questions
Does Instagram Following Scraper With Lead Enrichment work without an Instagram account?
No. The Following endpoint is login-walled, so a valid sessionid cookie from a logged-in Instagram account is required. Without it, the run raises an error and returns no data.
How often is the scraped data updated?
Every run fetches Instagram's Following and profile-info endpoints live โ there is no caching layer in the Actor, so each run reflects the current state of the Following list and each profile at the time it runs.
What happens if a seed's Following list is empty, private, or errors out?
If a seed account can't be resolved or its Following data can't be fetched, that seed is logged as failed and the run continues with the remaining seeds; it does not stop the whole run. If a page of Following results comes back empty, pagination for that seed stops and whatever was already collected is kept.
Can I scrape private Instagram accounts' Following lists?
No โ only Following data visible to the account behind your sessionid cookie is returned. Accounts you (or that session) can't view because of Instagram's own privacy settings are not accessible.
Does Instagram Following Scraper With Lead Enrichment work for AI agent workflows and LLM pipelines?
Yes. It's callable as an HTTP endpoint from any agent framework, and it's also reachable through Apify's Actors MCP Server (https://mcp.apify.com or npx @apify/actors-mcp-server --actors <actor-slug>). Every response is typed JSON with stable field names โ no parsing step before passing it to an LLM.
How does Instagram Following Scraper With Lead Enrichment handle Instagram's anti-bot system?
The Following pagination starts with direct requests and automatically escalates to a datacenter proxy, then a sticky residential proxy, whenever Instagram returns a block signal (401/403/429, a checkpoint, or a challenge page). Profile enrichment requests use Chrome TLS/HTTP2 impersonation with a fresh residential IP per attempt, since Instagram's anti-bot system throttles the raw Python TLS fingerprint on that endpoint regardless of IP reputation.
Does Instagram Following Scraper With Lead Enrichment return data in a format LLMs can use directly?
Yes. Output is typed, normalized JSON with stable field names and no HTML or selectors to strip. Pass it directly into an LLM context window, index it into a vector store, or route it through an agent tool call.
Can I use Instagram Following Scraper With Lead Enrichment without managing proxies?
Yes. The Actor manages its own proxy escalation (direct โ datacenter โ residential) automatically. The proxyConfiguration input is optional and only needed if you want to override the defaults with your own proxy groups.
What happens when Instagram changes its structure or blocks the scraper?
The Actor is maintained against Instagram's friendship and profile-info endpoints, and the output schema โ field names and types โ stays stable on your end even when the Actor's internals are updated to match a platform change. No specific turnaround time is guaranteed.
Your feedback
Found a bug or a field that doesn't match what's documented here? We want to know. Open an issue through the Actor's page on the Apify Store or contact API-Empire support with your run ID so the team can reproduce and fix it.