Instagram User Search Scraper
Pricing
from $0.47 / 1,000 results
Instagram User Search Scraper
Instagram user search scraper: search accounts by keyword the way the app's search box does: username, name, verified and private flags, picture. Add profile details for followers, bio, links, category and business contacts. Also finds hashtags and places.
Pricing
from $0.47 / 1,000 results
Rating
0.0
(0)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
6
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Features
Share
Instagram user search scraper: search accounts by keyword, the way the app's search box does: type words like "coffee roaster" or "yoga teacher" and get one row per account Instagram returns, with username, name, verified and private flags and picture, and on request each account's followers, bio, links, category and the contact details a business chooses to show.
Instagram's search is shallow on purpose: for most words it goes a few dozen accounts deep, ranked its own way. Run more words to cover more ground. The same search also finds hashtags with their post counts, or places with their map position.
| Input | Up to 20 search words, as you'd type them into Instagram's search |
| Output | One row per account: username, name, user id, profile link, verified, private, picture; with profile details also followers, following, posts, bio, website and bio links, category, account type, published business e-mail, phone and address; on request also its latest posts with engagement figures, related profiles, and country and join date |
| Ceiling | 200 results per word, 2,000 per run |
| Account needed | None from you |
| Price | $0.47 per 1,000 results, plus $2.60 per 1,000 accounts with profile details and $1.30 per 1,000 for each other add-on when you turn them on, the same on every plan. The free plan's $5 a month covers about 10,600 results |
| Using an AI agent? | |
|---|---|
| Actor | dami_studio/instagram-user-search-scraper |
| Set one field | searchQueries, labelled "Search words" in the Console |
| Cap the bill | maxTotalChargeUsd on the run, for example 0.10: it never charges past that |
| MCP, one link | https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/instagram-user-search-scraper |
| How often | Weekly, to see which accounts rise for your niche's words |
🔍 What Instagram User Search Scraper does
Each word goes through Instagram's own account search, and the accounts come back in Instagram's order, with rank saying where each one stood and searchQuery which word found it. An account two words found arrives once.
With Add profile details on, each account's profile is read too. That's what the follower, account type, bio and contact filters work on, so they need it.
Search for switches the same words to hashtags (name, post count, link) or places (name, address, city, latitude, longitude, link).
📋 What data you get from each Instagram account
| What you get | Field |
|---|---|
| Username, name, user id, profile link | username, fullName, userId, profileUrl |
| Verified and private flags, picture | isVerified, isPrivate, profilePicUrl |
| Rank and the word that found it | rank, searchQuery |
| Followers as Instagram writes them in search, when it does | searchSubtitle, followersFromSearch |
| Followers, following, posts (profile details) | followerCount, followingCount, postCount |
| Bio, website, bio links (profile details) | biography, externalUrl, bioLinks |
| Category and account type (profile details) | category, accountType, isBusinessAccount |
| What a business publishes to be contacted (profile details) | publicEmail, publicPhone, businessAddress |
| Large picture (profile details) | profilePicUrlHd |
| Latest posts and their figures (add-on) | latestPosts, avgLikes, avgComments, medianViews, engagementRate, postsPerWeek, lastPostAt, daysSinceLastPost |
| Related profiles (add-on) | relatedProfiles |
| Country and join date (add-on) | country, dateJoined, accountAgeDays, formerUsernameCount |
| Hashtag rows | name, url, mediaCount, mediaCountText |
| Place rows | name, placeId, url, address, city, latitude, longitude |
▶️ How to search Instagram users by keyword
- Open the actor and go to the Input tab.
- Type your words into Search words, one per line.
- Turn on Add profile details if you need followers, bios or the filters, and any of the other add-ons under More about each account.
- Set Results per search word and Maximum results in all, then press Start.
- Open the Output tab; the Accounts view shows the main columns.
💰 How much does it cost to search Instagram users?
$0.47 per 1,000 results on every plan. With profile details, each account costs $2.60 per 1,000 on top, so $3.07 per 1,000 detailed accounts. Latest posts, related profiles, and country and join date are $1.30 per 1,000 accounts each, charged only for an account that has them. The free plan's $5 a month covers about 10,600 results, or about 1,620 with profile details.
Not charged: note rows (a word with no results, a filter nothing passed, a stop), accounts a filter leaves out, and duplicates inside a run.
📥 What you give it
| Field | What it does | Default |
|---|---|---|
searchQueries | Words or phrases, up to 20 | none |
searchType | accounts, hashtags or places | accounts |
maxResultsPerQuery | Results kept for each word, up to 200 | 20 |
maxResults | The most results a run delivers, up to 2,000 | 100 |
includeProfileDetails | Read each account's profile (paid) | false |
verifiedOnly | Keep only accounts with the blue check | false |
includePrivateProfiles | Keep private accounts (name and picture only) | true |
excludeAccounts | Handles or profile links to leave out | none |
minFollowers, maxFollowers | Follower range (needs profile details) | none |
accountType | any, personal, business, creator or professional (business or creator), needs profile details | any |
bioKeywords, excludeBioKeywords | Words the bio or name must or must not contain (needs profile details) | none |
onlyWithEmail, onlyWithWebsite | Keep accounts that publish an e-mail, or that have a website or bio links (needs profile details) | false |
includeLatestPosts | Add each account's latest posts and their figures (paid) | false |
includeRelatedProfiles | Add the accounts Instagram suggests beside each account (paid) | false |
includeAccountAbout | Add the country, join date and former-username count (paid) | false |
A filter that needs profile details is refused, before anything is looked up, when profile details are off. With such a filter on, a run reads at most twice as many profiles as the results it keeps for each word, so a tight filter can return fewer than you asked for; a free note says so.
{"searchQueries": ["coffee roaster"],"includeProfileDetails": true,"minFollowers": 5000,"maxResultsPerQuery": 20}
📤 What you get back
A real row from a run on 7 November 2026, trimmed:
{"recordType": "account","ok": true,"charged": true,"rank": 3,"searchQuery": "coffee roaster","username": "stumptowncoffee","fullName": "Stumptown Coffee Roasters","userId": "11498596","profileUrl": "https://www.instagram.com/stumptowncoffee/","isVerified": true,"isPrivate": false,"searchSubtitle": "308K followers","followersFromSearch": 308000,"hasDetails": true,"followerCount": 308253,"followingCount": 2541,"postCount": 4141,"biography": "Highest Quality ☕️ Roasted Daily\nCertified B Corporation","externalUrl": "http://linktr.ee/stumptowncoffee","bioLinks": ["http://linktr.ee/stumptowncoffee"],"category": null,"accountType": "business","isBusinessAccount": true,"publicEmail": null,"publicPhone": null,"businessAddress": null}
| Field | Worth knowing |
|---|---|
followersFromSearch | Rounded, from the text under the account in search; filled for a few accounts per search. followerCount is exact |
| Profile detail fields | Empty without profile details, and empty when the account doesn't show that part |
engagementRate | Average likes plus comments of the latest posts, over the followers, in percent: needs profile details as well as latest posts |
latestPosts | The first page of the account's grid, newest first; isPinned marks a post the account pinned to the top |
profilePicUrl, profilePicUrlHd | Links on Instagram's servers that expire after a few days |
🧾 Reading the output
Real rows carry ok: true and charged: true, and recordType is account, hashtag or place. Each is billed as a result; rows with hasDetails: true are billed profile details as well, and hasLatestPosts, hasRelatedProfiles and hasAccountAbout mark the other add-ons billed on that row.
Note rows carry recordType: "note", ok: false and an errorCode, and are never billed:
| Code | Meaning |
|---|---|
BAD_INPUT | A field couldn't be used; details says which |
NO_RESULTS | Instagram returned nothing for this word |
FILTERED_OUT | Profiles were read but too few passed your filters |
NOT_SERVED | Instagram didn't serve this word in this run; re-run it later |
MAX_ITEMS, COST_LIMIT, TIME_LIMIT | The run stopped at your result limit, spending limit or time limit |
FREE_PLAN_LIMIT | A free-plan run stopped early; a paid plan runs the whole input |
UNEXPECTED_ERROR | The run stopped on an error on our side; rows before it are kept |
To keep only results, filter on ok == true.
💡 What people use it for
- Brands looking for creators in a niche: search the niche's words, keep business or creator accounts between 5,000 and 100,000 followers, and read the bios.
- Agencies listing the cafés, gyms or studios of a city: "yoga studio lisbon", with the address and the e-mail they publish.
- Checking which accounts own a keyword before a launch, by
rank. - Finding the hashtags people actually use around a topic, with their post counts.
A recipe with our other actors: search accounts here, keep the ones you want by followerCount or category, then pass their usernames to Instagram Profile Scraper for their latest posts, or to Instagram Reel Scraper for their reels.
🚧 What it does not do
- No private profile details: a private account comes back with its name and picture only.
- No lists of who follows an account.
- No posts or reels in the rows; see the routing table below.
- It is not an official Instagram tool. Dami's Studio is independent and is not affiliated with or endorsed by Instagram or Meta, or by any other company named on this page.
🧭 Which Instagram scraper do you need?
| If you want | Use |
|---|---|
| Accounts, hashtags or places for a word | This one, Instagram User Search Scraper |
| Full profiles and latest posts of accounts you already know | Instagram Profile Scraper |
| Reels for a keyword or hashtag | Instagram Reels Search Scraper |
| Posts under a hashtag | Instagram Hashtag Scraper |
| Posts at a place | Instagram Location Scraper |
❓ Questions people ask
Do I need an Instagram account to search users?
No, you don't need one, and there's no cookie to paste.
Why do I get fewer accounts than I asked for?
Instagram's account search stops after a few dozen results for most words. Add more words, or nearby phrasings, to reach further.
Why don't the results match what I see in the app?
Instagram ranks search for each viewer, so your app shows its own order. Follower counts keep moving and the app rounds them.
Can I call it from code or connect it to an AI assistant?
Yes. The API tab on the actor page has ready code. For an assistant, use the MCP link https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/instagram-user-search-scraper.
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run = client.actor("dami_studio/instagram-user-search-scraper").call(run_input={"searchQueries": ["coffee roaster"], "maxResultsPerQuery": 20},max_total_charge_usd=0.10,)for row in client.dataset(run["defaultDatasetId"]).iterate_items():if row.get("ok") is False:continueprint(row["username"], row["fullName"])
Is scraping Instagram legal?
This reads public search results and public profiles only, never private accounts or messages, and you need no account. Results contain personal data, which GDPR and similar laws cover, so keep only what you need, and mind the rules on cold contact before you use a published e-mail or phone number. Instagram's own terms still apply to what you do with the data. Apify's write-up on the legality of web scraping is a good starting point, and we are not lawyers.
🆘 If something breaks
Open the Issues tab on the actor page. Include the run ID and the search words you used.