Instagram B2B Email Scraper With Business Profile Leads
Pricing
Pay per usage
Instagram B2B Email Scraper With Business Profile Leads
π§ Instagram B2B Email Scraper finds public business emails from Instagram profiles & bios β with name, username, category, website, followers, and bio link. π Perfect for B2B lead gen, outreach, and sales. π Fast, accurate, CSV export for clean, targeted contact lists.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
API Empire
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Instagram Email Scraper β Extract Leads, Profiles and Lookalikes
Instagram B2B Email Scraper With Business Profile Leads finds business email leads and phone numbers from public Instagram posts and bios via Google Search, then enriches each lead with real profile data β follower count, business category, verification status, bio, and lookalike profiles. Every response returns typed, normalized JSON: no HTML, no selectors, no parsing required. After running it, you'll have a deduplicated list of qualified Instagram business leads, ready to filter by follower count, category, or location and load straight into a CRM, spreadsheet, or outreach tool.
What is Instagram B2B Email Scraper With Business Profile Leads?
Instagram B2B Email Scraper With Business Profile Leads is an Apify Actor that discovers business email leads tied to Instagram accounts using Google Search patterns, then optionally enriches each lead with the account's real, live public profile data and its related/lookalike profiles. It runs entirely against public Google search results and Instagram's public, unauthenticated web_profile_info endpoint β no Instagram account, login, or API key is required to run it.
- Discover corporate ("B2B") email leads across 29 targeted search-pattern templates, or personal-domain leads with an optional domain filter
- Enrich every lead with live profile data: follower count, business-account flag, business category, verified badge, bio, and external link
- Expand each enriched lead into related/lookalike Instagram profiles pulled from the same request
- Optionally extract and normalize a phone number and dial code alongside each email
- Export results as JSON, CSV, Excel, or the other formats an Apify dataset supports β no proxy management required
What data does Instagram B2B Email Scraper With Business Profile Leads collect?
The Actor returns three distinct kinds of data in every dataset row: the discovered lead itself, live business-profile enrichment for that lead, and a list of related/lookalike profiles.
| Data Type | Key Fields | JSON Field Names |
|---|---|---|
| Email Leads | email address, phone number, search keyword, matched B2B pattern, lead type | email, phoneNumber, keyword, pattern, leadType |
| Business Profile Enrichment | follower count, business-account flag, business category, verified badge, bio, external link | followersCount, isBusinessAccount, businessCategoryName, verified, bio, externalUrl |
| Related / Lookalike Profiles | related username, full name, verified flag, private flag, profile picture | relatedProfiles (array of username, fullName, isVerified, isPrivate, profilePicUrl) |
Need more Instagram data?
If you need to pull an existing following list rather than discover new leads, Instagram Followers And Following Scrapper With Profile Emails collects follower/following lists with attached profile emails. If phone numbers are your priority signal instead of email, Instagram Phone Number Scraper With Lead Scoring focuses on phone discovery with a scoring layer. Both live in the same Instagram scraper lineup as this Actor.
How does Instagram B2B Email Scraper With Business Profile Leads differ from the official Instagram API?
Instagram's Graph API requires a registered Meta developer app, App Review approval, and a Business or Creator account that explicitly grants access before you can pull any profile data β and it has no endpoint for discovering leads by keyword across arbitrary third-party accounts. This Actor searches public Google results and reads Instagram's own public profile endpoint directly, with no account linkage or review process.
| Feature | Instagram Graph API | Instagram B2B Email Scraper |
|---|---|---|
| Setup | Meta developer app + App Review required | Run directly from Apify, no app registration |
| Account requirement | Target must be a linked Business/Creator account | Works against any public Instagram account |
| Keyword-based lead discovery | Not supported | Core function β search by keyword, industry, or pattern |
| Contact/email discovery | Not supported | Extracts emails and phone numbers from public posts and bios |
| Related/lookalike profiles | Not supported | Extracted from the same profile request |
| Data scope | Owned/authorized accounts and their insights | Any public Instagram account surfaced by the search |
Use the Graph API when you own or manage the Instagram account and need first-party insights like ad performance or DMs. Use this Actor when you need to discover and enrich leads across accounts you do not manage.
Why do developers and teams scrape Instagram?
Four groups of users make up most of the traffic to Instagram lead-discovery tools like this one β each with a different reason to want structured contact and profile data at scale.
For B2B sales and outbound teams
Sales teams use keyword-driven search patterns like email_for_bookings, business_development, or contact_at_domain to build outbound lists of businesses in a niche β restaurants, agencies, fitness studios β without manually browsing Instagram profile by profile. Each lead arrives with a live follower count, business-category label, and verified flag attached, so reps can prioritize outreach toward accounts that look like real, active businesses instead of chasing dead or inactive profiles. Setting locationFilter narrows the same search to a specific city or region for territory-based prospecting, and raising maxLeadResults scales a single keyword list into a full outbound list ready for a CRM import.
For marketing and partnership teams
Agencies and brand teams scanning for collaboration, sponsorship, or influencer partners use patterns like bio_for_collab and sponsor_me to surface accounts that already advertise their interest in partnerships or sponsorships directly in their bio. The bundled relatedProfiles expansion then turns one qualified account into a small cluster of lookalike accounts in the same niche, which is useful for scouting a shortlist of comparable creators or businesses to approach after a single seed search. Attached follower counts and business-category labels help a team triage that shortlist by size and relevance before anyone sends a message.
For recruiters and business-development teams
The careers_hiring and hr_recruitment patterns target Instagram bios and posts that mention hiring, applications, or HR contacts β useful for recruiters sourcing companies that are actively growing, or for B2B vendors trying to reach a company's HR or partnerships desk directly instead of a generic support inbox. Because leads carry a businessCategoryName and a live followersCount, recruiters and business-development teams can filter results down to a specific industry and company size before starting outreach, rather than qualifying every lead manually after the fact.
For market researchers and analysts
Researchers studying which businesses are active on Instagram within a niche or region use this Actor to build a public-data snapshot: how many accounts in a category are verified, roughly how large their following is, and where they're located. Setting leadKeywords to a set of industry terms and locationFilter to a target region turns the same run into a lightweight market map. Because every field comes from public search results and Instagram's own public profile endpoint, the resulting dataset only reflects information the businesses themselves already chose to make public.
How to scrape Instagram (step by step)
- Open the Actor's page in the Apify Store and start a run from the Console (or call it through the Apify API β no Instagram login is needed either way).
- Provide at least one value in
leadKeywords(or its accepted base aliaskeywords) β this is the only input the Actor actually requires; a run with an empty keyword list stops immediately with an error. - Choose
extractionMode(b2bfor corporate emails orpersonalfor a domain-filtered search), and optionally setb2bPatternSelection,locationFilter,enrichProfile, andextractPhoneto shape the run. - Start the run and watch leads arrive in the dataset in real time as they're found.
- Download results as JSON, CSV, Excel, or another Apify export format once the run finishes (or pull partial results while it's still running).
What to do when Instagram changes its structure
The Actor is actively maintained, and its output schema is kept stable β field names and types don't change on your end even when the underlying search patterns or enrichment logic need updates behind the scenes. Watch the Actor's build log and Issues tab if a run behaves unexpectedly.
β¬οΈ Input
All 14 input parameters are optional β the Actor only refuses to run if leadKeywords ends up empty. Every renamed field also accepts its original base-actor key name as a fallback.
| Parameter | Required | Type | Description | Example Value |
|---|---|---|---|---|
leadKeywords | No | array | Search terms for Instagram business leads via Google (e.g. marketing, fitness, real estate). Add one or many. | ["marketing", "fitness"] |
extractionMode | No | string | personal = Gmail/Outlook discovery, b2b = corporate email patterns. | "b2b" |
allowedPersonalDomains | No | array | Personal mode only: filter results to these domains. Ignored in B2B mode. | ["@gmail.com", "@outlook.com"] |
b2bPatternSelection | No | array | B2B only: empty list runs all 29 patterns; or name specific keys. | ["email_for_bookings", "bio_email_basic"] |
sourcePlatform | No | string | Target social platform for lead discovery. | "Instagram.com" |
locationFilter | No | string | Geographic filter added to search queries. Leave empty for global results. | "London" |
maxLeadResults | No | integer | Maximum number of leads to collect across all keywords and patterns (1β50,000). | 10 |
maxResultsPerPattern | No | integer | Cap leads collected per B2B search pattern, B2B mode only (1β5,000). | 15 |
enrichProfile | No | boolean | Fetch each lead's live Instagram profile data via the public web_profile_info endpoint. Default true. | true |
maxRelatedProfiles | No | integer | Maximum related/lookalike profiles to capture per enriched lead (0β50). Default 5. | 5 |
extractPhone | No | boolean | Also scan each Google result snippet for a phone number and normalize it. Default false. | false |
country | No | string | Country name and/or dial code to target phone numbers by. Only used when extractPhone is on. | "United Kingdom (+44)" |
disableProxy | No | boolean | Force a direct connection (no proxy) for Google Search and profile requests. | false |
advancedProxySettings | No | object | Optional proxy override when proxy is enabled. Leave as default for best performance. | {"useApifyProxy": true, "apifyProxyGroups": ["GOOGLE_SERP"]} |
Example JSON input:
{"leadKeywords": ["marketing", "fitness"],"extractionMode": "b2b","allowedPersonalDomains": ["@gmail.com", "@outlook.com"],"b2bPatternSelection": ["email_for_bookings", "bio_email_basic", "contact_at_domain"],"sourcePlatform": "Instagram.com","locationFilter": "London","maxLeadResults": 50,"maxResultsPerPattern": 15,"enrichProfile": true,"maxRelatedProfiles": 5,"extractPhone": false,"country": "","disableProxy": false,"advancedProxySettings": { "useApifyProxy": true, "apifyProxyGroups": ["GOOGLE_SERP"] }}
The most common input mistake is switching extractionMode to personal while leaving allowedPersonalDomains empty β an empty domain list does not restrict results to personal-looking emails, it returns every email found, personal and corporate alike, so set the domain list if you specifically want a personal-email-only result set.
β¬οΈ Output
Results are typed, normalized JSON pushed to the Actor's dataset in real time, exportable as JSON, CSV, Excel, or another supported format. Each dataset row is a single lead record that embeds its own profile enrichment and an array of related profiles.
Scraped Lead
{"network": "Instagram.com","keyword": "marketing","title": "For bookings email info@example-agency.com","description": "Full-service marketing agency serving London businesses. Email us for bookings.","url": "https://www.instagram.com/exampleagency/","email": "info@example-agency.com","phoneNumber": null,"leadType": "b2b","location": "London","pattern": "email_for_bookings","scraped_at": "2026-07-25T10:15:00Z","dialCode": null,"country": null,"followersCount": 12450,"isBusinessAccount": true,"businessCategoryName": "Marketing Agency","verified": false,"bio": "Marketing agency. DM or email for bookings.","externalUrl": "https://example-agency.com","relatedProfiles": [{"username": "similarbrandstudio","fullName": "Similar Brand Studio","isVerified": false,"isPrivate": false,"profilePicUrl": "https://instagram.fxyz1-1.fna.fbcdn.net/example.jpg"}]}
Related / Lookalike Profile
Each entry inside relatedProfiles is a smaller, nested object pulled from the same profile request as the enrichment fields above:
{"username": "similarbrandstudio","fullName": "Similar Brand Studio","isVerified": false,"isPrivate": false,"profilePicUrl": "https://instagram.fxyz1-1.fna.fbcdn.net/example.jpg"}
followersCount, isBusinessAccount, businessCategoryName, verified, bio, externalUrl, and relatedProfiles are only populated when enrichProfile is on and the lead's URL resolves to a profile (or, for a post/reel URL, to its owner). When enrichment isn't attempted or the profile fetch fails, those fields come back null or [] rather than a fabricated value. phoneNumber, dialCode, and country behave the same way for extractPhone.
How many results can you scrape with Instagram B2B Email Scraper With Business Profile Leads?
maxLeadResults caps the total run at up to 50,000 leads, and in B2B mode maxResultsPerPattern additionally caps each individual keyword-and-pattern combination at up to 5,000 leads before moving to the next one. There is no additional hard cap built into the Actor beyond these two schema limits. Under the hood, each search query pages through Google's results 10 at a time and gives up on that specific query after 3 consecutive pages return no new matching leads, then moves on to the next keyword or pattern β so very large maxLeadResults values on a narrow, low-volume keyword may return fewer leads than requested once genuinely matching results run out. No benchmark run time is published; actual duration depends on your keyword count, pattern selection, and whether profile enrichment and proxy escalation are needed for a given run.
Integrate Instagram B2B Email Scraper With Business Profile Leads and automate your workflow
Instagram B2B Email Scraper With Business Profile Leads works with any language or tool that can send an HTTP request, since it runs as a standard Apify Actor behind the Apify API.
REST API integration
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_API_TOKEN>")run = client.actor("API-Empire/instagram-b2b-email-scraper-with-business-profile-leads").call(run_input={"leadKeywords": ["marketing"],"extractionMode": "b2b","maxLeadResults": 50,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["email"], item.get("followersCount"))
Works in Python, Node.js, Go, Ruby, cURL β any client that can call the Apify API with your API token.
Automation platforms (n8n, Make)
In n8n, use the Apify node's "Run Actor and get dataset" action, pointed at this Actor's ID with your Apify API credential, to drop new leads straight into a downstream node (a CRM, a spreadsheet, an email tool). In Make, the Apify app's "Run an Actor and Get Dataset Items" module does the same job, letting you chain lead discovery into a scenario without writing any code.
Is it legal to scrape Instagram?
Scraping publicly available data is generally lawful; this Actor only returns information already visible in public Google search results and Instagram's own public, unauthenticated profile endpoint β no login wall or private data is accessed. Because leads include business email addresses and, optionally, phone numbers and bio text, the output can touch personal or personal-business data depending on the account, so GDPR and CCPA principles around lawful basis, storage limits, and opt-out handling apply if you store or contact people found this way. Consult legal counsel for commercial use cases involving bulk personal data, and review Instagram's and Google's Terms of Service before using this data for outreach.
Frequently asked questions
Does Instagram B2B Email Scraper With Business Profile Leads work without an Instagram account?
Yes. Lead discovery runs entirely through Google Search, and profile enrichment uses Instagram's public, unauthenticated web_profile_info endpoint β no Instagram login or API key is needed. You do need an Apify account to run the Actor itself.
How often is the scraped data updated?
Every run performs a live fetch against Google Search and, if enrichment is on, Instagram's public profile endpoint at the moment it runs β nothing is served from a cache. Running the Actor again returns current results as of that run.
What happens if a lead's Instagram profile is deleted, private, or can't be resolved?
The lead itself (email, keyword, pattern, source URL) is still saved. Profile enrichment fields (followersCount, bio, etc.) and relatedProfiles come back null/[] for that row instead of a guessed value, and the run continues with the next lead.
Can I scrape private Instagram content?
No. Only publicly accessible posts, bios, and profile data are returned β private accounts and non-public information are not accessed.
Does Instagram B2B Email Scraper With Business Profile Leads work for AI agent workflows and LLM pipelines?
Yes, as an HTTP endpoint callable by any agent framework through the Apify API. Every response is typed, normalized JSON, so an agent can consume a lead record without an HTML-parsing step in the middle of its loop.
How does it handle Google's and Instagram's anti-bot systems?
Requests use browser impersonation (via impit) and escalate through three tiers on a block β direct connection, then a Google-optimized datacenter proxy, then a residential proxy β retrying before giving up on a specific query. Instagram profile requests escalate separately, direct to residential, since the Google-tuned proxy tier does not reliably reach Instagram.
Does Instagram B2B Email Scraper With Business Profile Leads return data in a format LLMs can use directly?
Yes. Output is typed, normalized JSON with stable field names β no HTML, no selectors, no parsing step before passing a record to an LLM context window, a vector store, or an agent tool call.
Can I use this Actor without managing proxies?
Yes. Proxy selection and escalation are handled automatically by default; disableProxy and advancedProxySettings exist only if you want to override that behavior.
What happens when Instagram or Google changes its structure or blocks the scraper?
The Actor is maintained, and its output schema stays stable on your end β field names and types don't change even when the underlying search or enrichment logic needs an update behind the scenes. No fixed turnaround time is published for such fixes.
Your feedback
Found a bug, or a field that isn't behaving as documented? We want to know. Use the Issues tab on this Actor's Apify Store page to report it or request a missing field β active maintenance is how this Actor stays useful as Instagram and Google evolve.