Instagram User Scraper
Pricing
from $5.00 / 1,000 profile founds
Instagram User Scraper
Search public Instagram users by keyword and return enriched profiles: bio, follower/following/media counts, verified & business flags, category, external links, and parsed email/phone. No login, no cookies. Provider-backed (ScrapeCreators). MCP-ready.
Pricing
from $5.00 / 1,000 profile founds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
13
Total users
2
Monthly active users
2 days ago
Last modified
Categories
Share
Search public Instagram users by keyword and return enriched profile records for discovery, lead generation, and workflow automation. Provide one or more search phrases, and each returned record represents one public Instagram profile that matched the query. The dataset can include username, full name, biography, follower, following, and media counts, verified and business flags, category, external links, parsed email and phone, profile picture URL, and public profile URL. This Apify Actor is usable through Apify MCP.
Best fit and connected workflows
This Actor fits workflows that begin with a keyword and end with structured public Instagram profiles.
Use it when you want to:
- Build niche creator, influencer, or local business lists from phrases such as "fitness coach" or "vegan bakery".
- Enrich lead lists with public profile context such as category, website, and contact fields.
- Feed an agent or internal tool a keyword and receive flat records that are easy to filter, deduplicate, and export.
- Move from discovery to a deeper Instagram workflow by connecting verified related Actors.
Connected workflows:
- Start with Instagram Keyword Search Scraper when you want to discover Instagram records first, then pass a verified public URL or ID into this Actor for profile detail data.
- Continue to Instagram Comments Scraper when you want comments or reactions for a returned Instagram record and the downstream schema accepts its public ID or URL.
Practical scenario
Maya is building a list of public Instagram accounts for a local campaign. She starts with the phrase real estate agent miami and sets a per-query cap to guide the run size. The Actor returns records with username, fullName, followerCount, categoryName, profileUrl, and sometimes email, phone, and externalUrl. Maya reviews the dataset, selects accounts that match her outreach criteria, and moves the chosen profiles into her CRM or a follow-up enrichment step.
Input
Input fields
| Field | Type | Required | Description |
|---|---|---|---|
searchQueries | array of strings | Yes | One or more keyword or phrase queries. Each query matches against public bios and captions and is used for discovery. |
maxResultsPerQuery | integer | No | Maximum number of profiles to return per query. Default is 50. Range 1-500. Results paginate automatically. |
parseContacts | boolean | No | Extract available email and phone values from the bio and bio links. Default is true. |
provider | string | No | Backend resolver. auto uses ScrapeCreators first and can fall back to SociaVault. You can also choose scrapeCreators or sociaVault. |
Valid input example
{"searchQueries": ["vegan bakery"],"maxResultsPerQuery": 25,"parseContacts": true,"provider": "auto"}
Output
The default dataset stores one record per matched public Instagram profile. Records are flat and include the search query, profile identity fields, public counts, profile metadata, contact fields when available, and provenance fields. The output also includes run summary records in the key-value store.
Output fields
| Field | Type | Description |
|---|---|---|
query | string | Search query that matched the profile. |
igId | string or null | Numeric Instagram user identifier. |
username | string or null | Instagram handle. |
fullName | string or null | Display name from the profile. |
biography | string or null | Profile bio text. |
email | string or null | Email parsed from the bio and bio links, when present. |
phone | string or null | Phone parsed from the bio text, when present. |
followerCount | integer or null | Public follower count at scrape time. |
followingCount | integer or null | Number of accounts the profile follows. |
mediaCount | integer or null | Total number of posts on the profile. |
isVerified | boolean or null | Verified badge flag. |
isPrivate | boolean or null | Private account flag. |
isBusinessAccount | boolean or null | Business or professional account flag. |
categoryName | string or null | Instagram business or creator category. |
externalUrl | string or null | Website link set on the profile. |
bioLinks | array or null | Outbound links published in the bio. |
profilePicUrl | string or null | Direct profile photo URL. |
profileUrl | string or null | Public instagram.com profile URL. |
matchedFrom | string or null | Match path: profile or caption. |
scrapeSource | string | Data provider that returned the record. |
scrapedAt | string | ISO 8601 timestamp for when the record was emitted. |
Illustrative output record
{"query": "fitness coach","igId": "188767259","username": "charliejohnsonfitness","fullName": "World's #1 Fitness Business Coach","biography": "DM me \"PAID\" ...","email": null,"phone": null,"followerCount": 503332,"followingCount": 6541,"mediaCount": 8387,"isVerified": true,"isPrivate": false,"isBusinessAccount": true,"categoryName": "Coach","externalUrl": "https://www.7fss.com/step-1-copy","bioLinks": ["https://www.7fss.com/step-1-copy"],"profilePicUrl": "https://instagram.f.../444225908_....jpg","profileUrl": "https://www.instagram.com/charliejohnsonfitness/","matchedFrom": "profile","scrapeSource": "scrapecreators","scrapedAt": "2026-07-01T12:00:00.000Z"}
How it works
This Actor uses provider-backed search for public Instagram profiles.
searchQueriesdrives keyword discovery across public bios and captions.autouses ScrapeCreators first and can switch to SociaVault when ScrapeCreators reaches a provider boundary.- ScrapeCreators is the primary backend, and SociaVault adds Google discovery plus per-handle profile enrichment.
- Results are paginated automatically and deduplicated across queries.
- The Actor stores flat records in the dataset and exposes run output in the key-value store.
- The owner-provided API keys are pre-configured as environment variables, so you only supply search input.
Pricing
Instagram User Scraper uses Pay per event plus Apify platform usage. Open the live Pricing tab in the Apify console for the current event pricing and any platform charges that apply to your run.
A simple event-count example: if a run writes ten profile records, the charged event count includes the actor start event plus ten Profile found events. Review the live Pricing tab before you run to see the current pricing details for each event type.
Use with AI agents (MCP)
This Actor is available through Apify MCP as a tool that takes keyword-based discovery input and returns structured public Instagram profile records for downstream reasoning, filtering, and follow-up workflows.
Exact Actor identity: khadinakbar/instagram-user-scraper
Tool description: search public Instagram users by keyword and return enriched profile fields that an agent can read, filter, and pass into follow-up workflows.
Find public Instagram profiles for the query "vegan bakery" with up to 25 results. Return usernames, full names, bios, follower counts, categories, profile URLs, and any parsed contact fields. Keep the output as structured records and include the query source for each item.
Output interpretation:
queryshows which keyword produced the match.scrapeSourceshows whether ScrapeCreators or SociaVault returned the record.matchedFromhelps an agent understand whether the profile matched through a profile page or a caption path.scrapedAtgives a timestamp for provenance and refresh logic.
Scope, pagination, and cost guidance:
- This Actor searches public profiles by keyword, so it works well for discovery tasks.
- Results are returned in pages and controlled by
maxResultsPerQuery. - A smaller cap reduces the number of returned records, while a larger cap allows more paginated results when relevant profiles are available.
- Contact fields are available and may be null when a profile does not publish them.
- Costs are event-based, so the number of returned profile records determines the
Profile foundevent count.
Apify API example
JavaScript
import { ApifyClient } from 'apify-client';const APIFY_TOKEN = process.env.APIFY_TOKEN;const client = new ApifyClient({ token: APIFY_TOKEN });const run = await client.actor('khadinakbar/instagram-user-scraper').call({searchQueries: ['real estate agent miami'],maxResultsPerQuery: 10,parseContacts: true,provider: 'auto',});const datasetId = run.defaultDatasetId;const { items } = await client.dataset(datasetId).listItems();for (const item of items) {console.log(item.username, item.fullName, item.email);}
Python
import osfrom apify_client import ApifyClientAPIFY_TOKEN = os.environ["APIFY_TOKEN"]client = ApifyClient(APIFY_TOKEN)run = client.actor("khadinakbar/instagram-user-scraper").call(run_input={"searchQueries": ["vegan bakery"],"maxResultsPerQuery": 10,"parseContacts": True,"provider": "auto",})dataset_id = run["defaultDatasetId"]items = client.dataset(dataset_id).list_items().itemsfor item in items:print(item.get("username"), item.get("fullName"), item.get("email"))
Best results and outcome guidance
- Start with a phrase that describes the account type you want, such as a profession, niche, or city-based descriptor.
- Use multiple search queries when you want coverage across related terms.
- Keep
maxResultsPerQueryaligned with your downstream workflow so the dataset stays manageable. - Leave
parseContactsenabled when you want contact enrichment from public bios and links. - Use
provider: autofor the standard route, or select a single provider when you want a fixed backend choice for a run. - Review
matchedFromalongsidequerywhen you filter results for research, lead generation, or agent handoff.
Continue the workflow
- Then use Instagram Video Downloader to continue Instagram records selected with Instagram User Scraper into a focused media workflow.
- Then use LinkedIn Ad Library Search Scraper to extend Instagram User Scraper with a neighboring social-media research source when the brief calls for Linkedin data.
Design note
I found that the live dataset contract includes query, scrapeSource, and scrapedAt as required fields, which makes provenance clear even when other profile fields are null.
FAQ
Is this Actor for username lookup or keyword discovery?
Use This Actor is for keyword discovery. For a known @username, the companion Instagram Keyword Search Scraper workflow is the closer fit when the next workflow needs that Actor's focused input and output contract.
How does this connect to other Instagram Actors?
A natural path is discovery with Instagram Keyword Search Scraper, then this Actor for enriched profile data, and later Instagram Comments Scraper for comments on a returned record.
What happens when I set a result cap per query?
The Actor paginates automatically and returns up to the cap you choose for each query, subject to the available relevant public profiles.
Which provider should I use?
auto uses ScrapeCreators first and can fall back to SociaVault. Use a single provider when you want to pin the backend for a run.
Are contact fields always present?
The Actor parses contact details from public bio content and links when available, so email and phone can be null.
Responsible use
This Actor collects public Instagram information and returns it in structured form. Use the data in ways that respect applicable laws, platform terms, and the rights of the people represented in the records. Keep outreach relevant to the context of the public profile and handle contact data carefully.