Instagram User Search Scraper avatar

Instagram User Search Scraper

Pricing

from $0.75 / 1,000 accounts

Go to Apify Store
Instagram User Search Scraper

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 a reliable public profile source exposes it, and available public contact data.

Pricing

from $0.75 / 1,000 accounts

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

138

Total users

42

Monthly active users

44 minutes ago

Last modified

Share

🔎 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 Instagram exposes it, audience counts, business details, and public contact data when available. Use the rows to build creator lists, review brands, or export account data.

📊 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 explicitly exposed, audience counts, business details, public links, and public contact fields when available. Missing optional values are null.

▶️ Search Instagram accounts by keyword

Run steps

  1. Open the Actor's Input tab.
  2. Add one or more keywords, such as vegan chef, Montreal photographer, or a brand name. Each term is searched independently.
  3. Set an optional maximum number of unique accounts for the run. Leave it empty to return all available results until the source is exhausted.
  4. Optionally choose an account type to keep only personal, business, or professional accounts.
  5. 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

FieldTypeWhat it does
keywordsarray of stringsRequired. Add one or more keywords, niches, people, brands, or businesses. Each term is searched independently.
minFollowersinteger (optional)Keeps only accounts with at least this many public followers. Leave it empty to include accounts with any follower count.
maxFollowersinteger (optional)Keeps only accounts with at most this many public followers. Leave it empty to include accounts with any follower count.
verifiedOnlybooleanWhen enabled, keeps only accounts Instagram marks as verified. Leave it off to include verified and unverified accounts.
accountTypestring (optional)Keeps only personal, business, or professional accounts that Instagram identifies as that type.
maxItemsinteger (optional)Sets the maximum number of unique accounts across all search terms. Leave it empty to return all available results until the source is exhausted.

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 link

FieldTypeWhat it does
resultslinkOpens the unique account rows in the default dataset's overview view.

Account rows

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. The matchedKeyword field records the submitted keyword tied to that first saved match. Country is copied only when a reliable public profile source explicitly provides it. The field is null when it is unavailable.

FieldTypeWhat it does
userIdstringStable Instagram account ID.
usernamestringInstagram account username.
fullNamestring or nullDisplay name shown for the account, or null when unavailable.
countrystring or nullCountry explicitly exposed by a reliable public profile source, or null when unavailable. The Actor does not infer it from names, language, emojis, biography wording, or search terms.
profilePictureUrlURL or nullPublic profile-picture URL, or null when unavailable.
isPrivatebooleanWhether Instagram marks the account as private.
isVerifiedbooleanWhether Instagram marks the account as verified.
matchedKeywordstringSubmitted keyword tied to the account's first saved match.
biographystring or nullPublic profile biography, or null when unavailable.
websiteUrlURL or nullExternal website published on the profile, or null when unavailable.
followerCountinteger or nullPublic follower count, or null when unavailable.
followingCountinteger or nullPublic following count, or null when unavailable.
postCountinteger or nullPublic post count, or null when unavailable.
isBusinessAccountboolean or nullWhether Instagram identifies the profile as a business account, or null when unavailable.
categorystring or nullPublic business or creator category, or null when unavailable.
publicEmailstring or nullEmail explicitly published by the account, or null when unavailable.
publicPhonestring or nullPhone number explicitly published by the account, or null when unavailable.

The row below is a genuine account row from the successful current-beta default-input run. This row includes a country that the public profile source exposed.

{
"userId": "17841409649152381",
"username": "fitnesscoachingteam",
"fullName": "Fitness Coaching Team | Coach",
"profilePictureUrl": "https://scontent.cdninstagram.com/v/t51.2885-19/272022088_626829711910252_2257898438432190419_n.jpg?stp=dst-jpg_s150x150_tt6&_nc_cat=106&ccb=7-5&_nc_sid=f7ccc5&efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLnd3dy42MTIuQzMifQ%3D%3D&_nc_ohc=FTHgDA_SVAYQ7kNvwFfDkp0&_nc_oc=Adpjet8WTvpjUqs0byGl4WwdnWZfeVQo-A1Y1GljSEtKMeGhtsHPSgDBXwJ8rX6kCjI&_nc_zt=24&_nc_ht=scontent.cdninstagram.com&_nc_ss=73a8c&oh=00_AQOj2pkNRu7Bj6OvJm_iMRg9H56S8V4pJGNzeGNhUabX2w&oe=6AC0A810",
"isPrivate": false,
"isVerified": false,
"matchedKeyword": "fitness coach",
"country": "France",
"biography": "⚡ FCT – Fitness Coaching Team \n📈 Développe ton activité de coach \n🤝 +30 coachs accompagnés \n👇 Rejoins-nous",
"websiteUrl": "https://linktr.ee/fitnesscoachingteam",
"followerCount": 483,
"followingCount": 548,
"postCount": 48,
"isBusinessAccount": true,
"category": "Fitness Trainer",
"publicEmail": null,
"publicPhone": 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 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 Instagram's public profile-information data explicitly exposes 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

v2.0 (28-09-2026)

  • Add a country field when Instagram publicly provides a country, and use null when it is unavailable.
  • Replace matchedKeywords with matchedKeyword for the first keyword that found each account.
  • 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 keyword that first 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 🫡

Made with ❤️ by Maxime Dupré