Instagram User Search Scraper
Pricing
from $4.45 / 1,000 accounts
Instagram User Search Scraper
Search public Instagram accounts by keyword, niche, person, brand, or business. Export unique matches with usernames, profile details, audience counts, country when available, and public contact data when available.
Pricing
from $4.45 / 1,000 accounts
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
991
Total users
84
Monthly active users
8.9 hours
Issues response
12 days ago
Last modified
Categories
Security
Limited permissionsShare
🔎 Turn Instagram keywords into profile lists
Built for marketers, researchers, agencies, and creator teams, Instagram User Search Scraper finds public Instagram accounts from your keywords. It saves one row per unique account with the first keyword that found it, account identity, country when available, audience counts, business details, and public contact data when available. Use the rows to build creator lists, review brands, or export account data.
- Build a creator shortlist from a niche with Instagram influencer discovery.
- Find public account contacts for outreach research with Instagram lead generation.
- Study creators, categories, counts, and verification flags with Instagram creator research.
- Compare public brand and business accounts around a market term with Instagram competitor research.
- Map accounts around products, audiences, and locations with Instagram market research.
- Export keyword-matched account profiles for a spreadsheet with Instagram profile data export.
- Look up public accounts for any name or topic with Instagram user search.
- Collect shops and brands in a niche with an Instagram business account finder.
📊 Instagram account rows
Each saved row is one unique public Instagram account. The Actor keeps the first eligible match for an account and ignores later duplicate matches. Its matchedKeyword field records the keyword tied to that first saved match. Rows include identity, privacy and verification flags, country when available, audience counts, business and professional details, biography links, and public contact fields when available. Missing optional values are null.
▶️ Search Instagram accounts by keyword
Run steps
- Open the Actor's Input tab.
- Add one or more keywords, such as
vegan chef,Montreal photographer, or a brand name. Each term is searched independently. - Set an optional maximum number of unique accounts for the run. Leave it empty to return all available results until the source is exhausted.
- Optionally choose an account type to keep only personal, business, or professional accounts.
- Start the run and open the dataset when it finishes.
Use clear terms that describe a niche, person, brand, or business. Results depend on the public account matches available for each term, so the Actor is not a guaranteed exhaustive directory.
⚙️ Input
Input fields
| Field | Type | What it does |
|---|---|---|
keywords | array of strings | Required. Add one or more keywords, niches, people, brands, or businesses. Each term is searched independently. |
minFollowers | integer (optional) | Keeps only accounts with at least this many public followers. Leave it empty to include accounts with any follower count. |
maxFollowers | integer (optional) | Keeps only accounts with at most this many public followers. Leave it empty to include accounts with any follower count. |
verifiedOnly | boolean | When enabled, keeps only accounts Instagram marks as verified. Leave it off to include verified and unverified accounts. |
accountType | string (optional) | Keeps only personal, business, or professional accounts. business and professional use Instagram's own flag for that type. personal keeps accounts that are neither. Leave it empty to include all account types. |
maxItems | integer (optional) | Sets the maximum number of unique accounts across all search terms. Leave it empty or enter 0 to return all available results until the source is exhausted. The form prefills 1. |
All numeric fields accept whole numbers of 0 or more. minFollowers must not exceed maxFollowers. A follower limit skips accounts whose follower count is unavailable. The form prefills fitness coach as a search term. These prefills are not schema defaults. When verifiedOnly is omitted, both verified and unverified accounts can be returned.
Example input
This is the public input from a successful current-beta run:
{"keywords": ["fitness coach"],"maxItems": 1}
Profile details are included when Instagram makes them public. There is no separate enrichment input.
🧾 Output
Output fields
| Field | Type | What it does |
|---|---|---|
userId | string | Stable Instagram account ID. |
username | string | Instagram account username. |
fullName | string or null | Display name shown for the account, or null when unavailable. |
country | string or null | Publicly listed account country, or null when unavailable. The Actor does not infer it from names, language, emojis, biography wording, or search terms. |
profilePictureUrl | URL or null | Public profile-picture URL, or null when unavailable. |
isPrivate | boolean | Whether Instagram marks the account as private. |
isVerified | boolean | Whether Instagram marks the account as verified. |
matchedKeyword | string | Submitted keyword tied to the account's first saved match. |
biography | string or null | Public profile biography, or null when unavailable. |
websiteUrl | URL or null | External website published on the profile, or null when unavailable. |
biographyLinks | array | Links published in the biography. The array is empty when there are none. |
biographyLinks.url | URL | One link published in the biography. |
biographyLinks.title | string or null | Title shown for that link, or null when it has none. |
followerCount | integer or null | Public follower count, or null when unavailable. |
followingCount | integer or null | Public following count, or null when unavailable. |
postCount | integer or null | Public post count, or null when unavailable. |
isBusinessAccount | boolean or null | Whether Instagram identifies the profile as a business account, or null when unavailable. |
isProfessionalAccount | boolean or null | Whether Instagram marks the profile as a professional account, or null when unavailable. |
category | string or null | Public business or creator category, or null when unavailable. |
publicEmail | string or null | Email explicitly published by the account, or null when unavailable. |
publicPhone | string or null | Phone number explicitly published by the account, or null when unavailable. It comes from the public contact phone, or from a real phone number written in the biography. Dates and street numbers in the biography are not saved as a phone. |
Each dataset row has the same account shape. The Actor saves the first eligible match for an account and does not add later duplicate matches. Country is included only when public account data provides it. Otherwise it is null.
Example account row
This is a genuine row from a successful current-beta run. The biography shows a phone number with a street address on the next line. Only the phone number is saved in publicPhone.
{"userId": "2931974218","username": "tendencyusa","fullName": "Wholesale Women’s Fashion Miami","profilePictureUrl": "https://scontent-lga3-3.cdninstagram.com/v/t51.82787-19/702515909_18473113387102219_2615990573386675122_n.jpg?stp=dst-jpg_s150x150_tt6&_nc_cat=104&ccb=7-5&_nc_sid=f7ccc5&efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLnd3dy4yNjEuQzMifQ%3D%3D&_nc_ohc=NUMHdnLYpJoQ7kNvwFkCJHM&_nc_oc=AdpHD98279tlhGaJ5ysymYMbjSHiKJDz0ZLGxbwwqbijA4f96UGQH3rreUGVeclLQ9Y&_nc_zt=24&_nc_ht=scontent-lga3-3.cdninstagram.com&_nc_gid=tlOp9qsgYWYMEOpcUanKgA&_nc_ss=70a8c&oh=00_AQO68MpIzQUIQ5mBcrSfVij2K5COhw1qO_37FxSbrS5Gfw&oe=6AE69488","isPrivate": false,"isVerified": false,"matchedKeyword": "tendencyusa","country": "United States","biography": "TENDENCY USA Women’s Miami Fashion Boutique\nRetail and Wholesale\nWorldwide Shipping\n+1 (754) 249 0729\n2002 nw 20st Miami FL 33142\nMon-Sat: 9:30am-5:00","websiteUrl": "https://wa.link/usiikt","followerCount": 14878,"followingCount": 901,"postCount": 1146,"isBusinessAccount": false,"isProfessionalAccount": true,"category": "Boutique Store","publicEmail": null,"publicPhone": "+1 (754) 249 0729","biographyLinks": [{"url": "https://wa.link/usiikt","title": "WhatsApp"},{"url": "http://tendencyusa.com","title": null}]}
Export the default dataset in JSON, CSV, Excel, XML, RSS, or HTML, or retrieve it through the Apify API.
💳 Pricing
This Actor uses pay-per-event pricing. One account event applies when a unique Instagram account is successfully saved to your dataset. Each saved account uses the same event, whether optional public fields are present or not. The number of account events follows the number of unique accounts saved.
🔌 Integrations
Open the results in the Apify dataset, export them as JSON, CSV, Excel, XML, RSS, or HTML, or read them through the Apify API.
❓ FAQ
What happens when the same account matches more than one keyword?
The Actor saves the first eligible account match and ignores later matches for that account. The saved row describes that first match only.
Why did I receive fewer accounts than maxItems?
maxItems is a cap, not a promised count. A term may have fewer available public matches, and some accounts may not have the required identity and status data. Leave maxItems empty to return all available results until the source is exhausted.
What happens when a keyword has no matches?
That term produces no account rows. Other terms can still return their own saved matches.
Can a date or address end up in publicPhone?
It should not. The Actor checks biography text with standard phone-number rules and keeps only the phone number itself. Dates and street numbers near it are left out. When there is no contact phone and no real phone number in the biography, the field is null.
Can every account include an email or phone number?
No. Contact fields appear only when an account exposes them publicly. Unavailable optional values are null.
Can every account include a country?
No. Country is included only when public account data provides it. The Actor does not guess from a name, language, emoji, biography, or search term. Otherwise the field is null.
Can the Actor access private profiles or private data?
No. It can return a public account's privacy flag, but it does not provide private-profile content or data Instagram does not expose publicly.
Does it search posts, Reels, hashtags, locations, followers, or following lists?
No. It searches public accounts by text keywords. Use a specialized Actor for those other sources.
Is this the official Instagram API?
No. It is a focused Actor for keyword-based public account discovery and structured exports. It does not provide every official API capability.
📝 Changelog
v3.0 (27-10-2026)
- Remove
searchRankbecause it did not show an Instagram search position. There is no replacement. Remove this field from your exports and code. - Return only public accounts. Private accounts are now skipped to keep results within public account data. If you used private account rows, update your code to allow for fewer results. There is no replacement for those rows.
- Warn when no accounts match the selected filters for a keyword, while keeping results from other keywords.
- Reliability improvements.
v2.1 (26-10-2026)
- Fix
publicPhonewhen it comes from the biography. It now holds only a real phone number, so dates and street address numbers no longer appear in it. - Add a
searchRankoutput field. - Add
isProfessionalAccountto show if Instagram marks the account as professional. - Add
biographyLinkswith the links published in the account biography and their titles when available. - Enter 0 in
maxItemsto return all available results. - The business account type filter now keeps only accounts that Instagram marks as business. The professional filter keeps only accounts that Instagram marks as professional.
v2.0 (28-09-2026)
- Add a
countryfield when Instagram publicly provides a country, and usenullwhen it is unavailable. - Replace
matchedKeywordswithmatchedKeywordto keep only the first keyword that found each account. Update your code to read one string frommatchedKeywordinstead of a list frommatchedKeywords. - Add an account type filter for personal, business, or professional accounts.
v1.1 (15-09-2026)
- Filter account results by minimum followers, maximum followers, or verified status.
- Keep results from other keywords when one keyword has no public account matches.
v1.0 (10-09-2026)
- Search all available public account results when no maximum is set.
- Save each account once and show the keywords that found it.
- Include available public profile, audience, business, and contact details in account rows.
- Open the default dataset view labeled Instagram accounts.
v0.0
- Initial release.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
- Instagram Profile Stats Scraper: Check known public profiles and export follower, following, and post counts.
- Instagram Related Users Scraper: Explore related public accounts from a known seed profile.
- Instagram Hashtag Username Scraper: Find account usernames from public posts under a hashtag.
- Instagram Post & Reel Content Scraper: Collect public posts and Reels from profiles you want to study.
- Influencer Scraper: Build public influencer lists across TikTok, Instagram, and YouTube.
Made with ❤️ by Maxime Dupré