Instagram Search Scraper · Accounts, Hashtags & Audio
Pricing
from $1.40 / 1,000 search results
Instagram Search Scraper · Accounts, Hashtags & Audio
Search Instagram by keyword — public accounts with optional follower counts, bio and contact email, hashtags with total post counts, and audio tracks with artist and direct audio URLs. No login, no cookies, no account risk. Many search terms per run. JSON, CSV, or Excel.
Pricing
from $1.40 / 1,000 search results
Rating
5.0
(1)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
0
Bookmarked
24
Total users
21
Monthly active users
6 days ago
Last modified
Categories
Share
Instagram Search Scraper
Turn any keyword into structured Instagram results — accounts, hashtags, and audio tracks. Search exactly what you would type into Instagram's own search box, and get clean rows ready for analysis, outreach, or trend research. No login, no cookies, no account risk.
Why Use This Scraper?
- ✅ Three result types from one keyword — accounts, hashtags, audio
- ✅ Expand any sound into the reels actually using it, with play counts and creators
- ✅ Optional account enrichment: follower counts, biography, category, public contact email
- ✅ Filter accounts by verification badge or minimum follower count
- ✅ Many search terms per run, searched in parallel
- ✅ Results deduplicated — Instagram's own search pages overlap, this one doesn't
- ✅ Flat rows that open cleanly in Excel, Sheets, or any CSV tool
Overview
The Instagram Search Scraper is built for lead generation, influencer discovery, competitor research, and content trend analysis.
The output is one row per result, tagged with the query that produced it and a resultType of accounts, hashtags, or audio. Each row carries only the fields relevant to its type, so an account row has username and followerCount while an audio row has title, artist, and audioDownloadUrl. Filter or split by resultType after export.
Two things worth knowing before you buy:
Instagram's account search is shallow. Roughly 30 unique accounts per keyword, regardless of how high you set the cap. Instagram simply does not serve deep pagination on search, and its pages overlap heavily — this actor deduplicates and stops when a page adds nothing new rather than billing you for repeats. For deep account lists, start from a profile and use the Followers or Similar Profiles scrapers instead.
Search results contain no follower counts. That is an Instagram limitation, not an actor one. Enabling Enrich accounts performs a second lookup per account to add followers, bio, category, and contact details.
Supported Inputs
Input types
| Input | What it does | Example |
|---|---|---|
| Keyword | Free-text search, as typed on Instagram | coffee roaster |
| Multi-word phrase | Treated as one search term | vegan bakery london |
| Brand or niche | Finds accounts, tags, and sounds around it | lofi |
Copy-pasteable input
{"queries": ["coffee roaster", "vegan bakery london"],"searchType": "accounts","maxResultsPerQuery": 50}
Unsupported inputs
- Profile URLs — this actor searches by keyword, not by account. Use the Instagram Profile Scraper.
- Post or reel URLs — use the Instagram Profile Scraper or Comments Scraper.
- Hashtag post scraping — this returns matching hashtags and their post counts, not the posts themselves. Use the Instagram Hashtag Scraper for posts.
- Private accounts — never returned, as their data is not public.
Use Cases
| Audience | What they use it for |
|---|---|
| Agencies | Build prospect lists of businesses in a niche, with contact emails |
| Influencer marketing | Discover creators by topic, filter by follower count and verification |
| Brand monitoring | Find accounts and hashtags using a brand term |
| Content strategy | Surface the hashtags and audio trending around a topic |
| SEO / research | Map the tag landscape for a niche with real post volumes |
| Sales | Enrich account results into a lead list with public business email |
How It Works

- Search — each keyword is sent to Instagram's search, several terms in parallel.
- Collect — accounts, hashtags, and audio tracks are gathered per the selected type. Your per-query cap is split evenly across the selected types, so choosing "All three" never returns only accounts.
- Deduplicate — account pages overlap, so results are deduped by account ID and paging stops as soon as a page adds nothing new.
- Enrich (optional) — each account gets a second lookup adding followers, bio, category, and public contact details.
- Filter and push — verification and follower thresholds are applied, then rows are written to the dataset.
Input Configuration
| Field | Type | Default | Description |
|---|---|---|---|
queries | array | — | Required. Search terms, one per line. |
searchType | string | accounts | accounts, hashtags, audio, or all. |
maxResultsPerQuery | integer | all | Cap per search term. Split evenly across types when using all. |
enrichProfiles | boolean | false | Add followers, bio, category, contact. Accounts only. Paid plans only. |
expandAudioToReels | boolean | false | Return the reels using each sound. Audio only. Paid plans only. |
maxReelsPerTrack | integer | 24 | Reels returned per sound when expansion is on. |
onlyVerified | boolean | false | Keep only badge-verified accounts. Accounts only. |
minFollowers | integer | — | Drop accounts below this. Automatically enables enrichProfiles. |
Example — lead list with contact details
{"queries": ["coffee roaster", "specialty coffee"],"searchType": "accounts","maxResultsPerQuery": 30,"enrichProfiles": true,"minFollowers": 1000}
Example — trending sound research
{"queries": ["lofi"],"searchType": "audio","maxResultsPerQuery": 5,"expandAudioToReels": true,"maxReelsPerTrack": 24}
Example — content trend research
{"queries": ["lofi"],"searchType": "all","maxResultsPerQuery": 60}
Output Overview
One row per result. Every row has query, resultType, and rank (position in Instagram's own ranking). The remaining fields depend on the type — account fields on account rows, hashtag fields on hashtag rows, audio fields on audio rows.
Enrichment fields (followerCount, biography, publicEmail, …) are present but null on account rows when Enrich accounts is off, and are always null on hashtag and audio rows.
Output Samples
Account row (searchType: "accounts", enrichment on):
{"query": "coffee roaster","resultType": "accounts","rank": 8,"username": "ranah.coffeeroaster","userId": "35651505852","fullName": "Ranah Coffee Roaster","profileUrl": "https://www.instagram.com/ranah.coffeeroaster/","isVerified": false,"isPrivate": false,"followerCount": 348,"followingCount": 2,"postCount": 33,"biography": "• 100% Sumatran Coffee •","externalUrl": "http://ranahcoffee.id","publicEmail": null,"isBusiness": true}
Hashtag row (searchType: "hashtags"):
{"query": "lofi","resultType": "hashtags","rank": 4,"hashtag": "lofibeats","hashtagId": "17843795683056124","postCountTotal": 1648519,"hashtagUrl": "https://www.instagram.com/explore/tags/lofibeats/"}
Audio row (searchType: "audio"):
{"query": "lofi","resultType": "audio","rank": 5,"trackId": "3417044961783287","title": "Purple Ube latte","artist": "Mindu Sound Lab","audioClusterId": "1929447931093400","coverArtworkUrl": "https://scontent.cdninstagram.com/...","audioDownloadUrl": "https://scontent.cdninstagram.com/..."}
Reel row (expandAudioToReels: true):
{"query": "lofi","resultType": "reels","rank": 1,"reelId": "3938221610419244876","reelUrl": "https://www.instagram.com/reel/DanX7Bnzk9M/","reelCaption": "Gunupur Primart monsoon. Mega offer flat 50% off","playCount": 6954,"likeCount": 170,"commentCount": 4,"videoDuration": 114.915,"creatorUsername": "primartgunupur","creatorIsVerified": false,"soundTrackId": "1755700311289275","soundTitle": "Lofi","soundArtist": "Fope"}
Key Output Fields
Every row — query, resultType, rank
Account identity — username, userId, fullName, profileUrl, isVerified, isPrivate, profilePicUrl
Account enrichment (opt-in) — followerCount, followingCount, postCount, biography, externalUrl, publicEmail, publicPhone, category, isBusiness
Hashtag — hashtag, hashtagId, postCountTotal, hashtagUrl
Audio — trackId, title, artist, audioClusterId, coverArtworkUrl, audioDownloadUrl, totalReelsUsingSound
Reels by sound (opt-in) — reelId, reelUrl, reelCaption, playCount, likeCount, commentCount, videoDuration, videoUrl, creatorUsername, creatorFullName, creatorIsVerified, soundTrackId, soundTitle, soundArtist
FAQ
Why do I only get about 30 accounts per keyword? Instagram's account search is shallow and its result pages overlap. The actor deduplicates and stops once a page adds nothing new, so you are never billed for repeats. This is an Instagram limit, not a cap in the actor.
Why are follower counts empty? Instagram's search response does not include them. Enable Enrich accounts to add followers, bio, category, and contact details via a second lookup per account.
Does this scrape posts from a hashtag? No. It returns hashtags matching your keyword with their total post counts. To scrape the posts themselves, use the Instagram Hashtag Scraper.
Can I find every reel using a trending sound?
Yes — enable Expand sounds into the reels using them. Each audio row also gains totalReelsUsingSound, the catalogue-wide count (over a million for a genuinely viral sound), so you can gauge a trend's size even without paging through the reels themselves.
How long do the audio and image URLs last? Instagram's CDN links expire within a day or two. Download anything you need to keep soon after the run.
Does minFollowers work without enrichment?
It enables enrichment automatically, since follower counts only exist once accounts are enriched. On free plans, where enrichment is unavailable, the filter is skipped and the run says so in the log.
Do I need a login, cookies, or a proxy? No. Only public data is returned, and no Instagram account is involved at any point.
Support
Found a bug or need a field that is missing? Open an issue on the actor's Issues tab and it will be looked at directly.
- Issues: the Issues tab on this actor
- Email: muhamed.didovic@gmail.com
Additional Services
Need a tailored export, a scheduled feed into your warehouse, or a custom scraper for a source not covered here? Custom builds are available — get in touch by email.
Explore More Scrapers
- Instagram Hashtag Scraper — top posts and reels for any hashtag
- Instagram Similar Profiles & Lookalike Finder — accounts similar to any profile
- Instagram Profile Scraper — profiles, posts, and media
- Instagram Comments Scraper — comments and repliers on any post
- Instagram Stories & Highlights Scraper — active stories and permanent highlights
- Instagram Followers & Following Scraper — full follower and following lists
Browse the full catalogue: muhamed-didovic.github.io
🤖 For AI Agents & LLM Apps
Purpose: keyword search over Instagram returning accounts, hashtags, or audio tracks as flat rows.
Minimal input (tested):
{ "queries": ["coffee roaster"], "searchType": "accounts", "maxResultsPerQuery": 20 }
Output fields (flat): query, resultType, rank, username, userId, fullName, profileUrl, isVerified, isPrivate, profilePicUrl, followerCount, followingCount, postCount, biography, externalUrl, publicEmail, publicPhone, category, isBusiness, hashtag, hashtagId, postCountTotal, hashtagUrl, trackId, title, artist, audioClusterId, coverArtworkUrl, audioDownloadUrl, totalReelsUsingSound, reelId, reelUrl, reelCaption, playCount, likeCount, commentCount, videoDuration, videoUrl, creatorUsername, creatorFullName, creatorIsVerified, soundTrackId, soundTitle, soundArtist
Billing: one search-result event per row. One additional enriched-profile event per account when enrichProfiles is true — charged only for accounts where enrichment actually returned data.
Behaviors that matter to agents:
- Account search returns ~30 unique accounts per keyword maximum. Do not retry for more.
followerCountisnullunlessenrichProfilesis true.expandAudioToReelsaddsresultType: "reels"rows, capped bymaxReelsPerTrackper sound (not per query). A sound with no reels yields none and is not an error.- With
searchType: "all",maxResultsPerQueryis split evenly across the three types. - Unresolvable queries yield a row with
errorandmessageinstead of results, and are not charged. - CDN URLs (
profilePicUrl,coverArtworkUrl,audioDownloadUrl) expire within roughly 48 hours.
⚠️ Disclaimer
This actor is not affiliated with, endorsed by, or sponsored by Instagram, Meta Platforms, Inc., or any of their subsidiaries. "Instagram" and related marks are trademarks of Meta Platforms, Inc., referenced here solely to describe what this tool works with.
This actor accesses only publicly available information — data any logged-out visitor can see. It does not access private accounts, bypass authentication, or collect data behind a login. Users are responsible for ensuring their use complies with Instagram's Terms of Service and with applicable data-protection law, including GDPR and CCPA, particularly where results contain personal data such as names, biographies, or contact details. Verify you have a lawful basis before processing personal data at scale.
SEO Keywords
instagram search scraper, instagram keyword search, instagram account search, instagram profile finder, instagram hashtag search, instagram audio search, instagram music search, instagram sound finder, social media scraper, instagram data extraction, influencer discovery tool, instagram lead generation, instagram prospecting, competitor research instagram, instagram trend analysis, instagram content research, find instagram accounts by keyword, instagram business email finder, instagram follower count api, instagram reels by sound, trending audio scraper, instagram sound trend tracker, no login instagram scraper