Instagram Search Scraper · Accounts, Hashtags & Audio avatar

Instagram Search Scraper · Accounts, Hashtags & Audio

Pricing

from $1.40 / 1,000 search results

Go to Apify Store
Instagram Search Scraper · Accounts, Hashtags & Audio

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

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

24

Total users

21

Monthly active users

6 days ago

Last modified

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

InputWhat it doesExample
KeywordFree-text search, as typed on Instagramcoffee roaster
Multi-word phraseTreated as one search termvegan bakery london
Brand or nicheFinds accounts, tags, and sounds around itlofi

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

AudienceWhat they use it for
AgenciesBuild prospect lists of businesses in a niche, with contact emails
Influencer marketingDiscover creators by topic, filter by follower count and verification
Brand monitoringFind accounts and hashtags using a brand term
Content strategySurface the hashtags and audio trending around a topic
SEO / researchMap the tag landscape for a niche with real post volumes
SalesEnrich account results into a lead list with public business email

How It Works

How the Instagram Search Scraper works

  1. Search — each keyword is sent to Instagram's search, several terms in parallel.
  2. 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.
  3. Deduplicate — account pages overlap, so results are deduped by account ID and paging stops as soon as a page adds nothing new.
  4. Enrich (optional) — each account gets a second lookup adding followers, bio, category, and public contact details.
  5. Filter and push — verification and follower thresholds are applied, then rows are written to the dataset.

Input Configuration

FieldTypeDefaultDescription
queriesarrayRequired. Search terms, one per line.
searchTypestringaccountsaccounts, hashtags, audio, or all.
maxResultsPerQueryintegerallCap per search term. Split evenly across types when using all.
enrichProfilesbooleanfalseAdd followers, bio, category, contact. Accounts only. Paid plans only.
expandAudioToReelsbooleanfalseReturn the reels using each sound. Audio only. Paid plans only.
maxReelsPerTrackinteger24Reels returned per sound when expansion is on.
onlyVerifiedbooleanfalseKeep only badge-verified accounts. Accounts only.
minFollowersintegerDrop 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
}
{
"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 rowquery, resultType, rank

Account identityusername, userId, fullName, profileUrl, isVerified, isPrivate, profilePicUrl

Account enrichment (opt-in) — followerCount, followingCount, postCount, biography, externalUrl, publicEmail, publicPhone, category, isBusiness

Hashtaghashtag, hashtagId, postCountTotal, hashtagUrl

AudiotrackId, 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.


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.
  • followerCount is null unless enrichProfiles is true.
  • expandAudioToReels adds resultType: "reels" rows, capped by maxReelsPerTrack per sound (not per query). A sound with no reels yields none and is not an error.
  • With searchType: "all", maxResultsPerQuery is split evenly across the three types.
  • Unresolvable queries yield a row with error and message instead 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