Instagram Keyword, Trends and Reels Scraper avatar

Instagram Keyword, Trends and Reels Scraper

Pricing

$1.40 / 1,000 results

Go to Apify Store
Instagram Keyword, Trends and Reels Scraper

Instagram Keyword, Trends and Reels Scraper

Scrape Instagram keyword search volume, related keywords, trending topics, reels with likes and comments, profile stats and location data. No login required.

Pricing

$1.40 / 1,000 results

Rating

0.0

(0)

Developer

SR

SR

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Instagram Scraper: Keywords, Trends and Reels

An Instagram scraper that returns keyword search volume, related keywords, trending topics and reels with engagement data. It reads only Instagram's public pages and never signs in, so there is no login, no session cookie and no account to get restricted.

Most Instagram scrapers hand you posts. This one also tells you what people are actually searching for on Instagram, how much volume a term carries, and which terms sit next to it, which is the part that usually requires guesswork.

What you get

  • Profile lookups by username: exact follower count (268,996,171, not "269M"), exact post count, verified badge, profile picture, whether a public story is live, and the account's most recent posts with full engagement.
  • Keyword search volume per term, as Instagram reports it (37M reels for laptop), returned both as displayed text and as a parsed integer.
  • Up to 30 related keywords per term, taken from Instagram's own related links rather than inferred. Each one is itself a valid term you can crawl.
  • Automatic keyword expansion up to three levels deep, so one seed can produce hundreds of real Instagram search terms.
  • Up to 12 reels per keyword, each returned complete with views, caption, owner and download links, at no extra request.
  • Reel engagement: exact like counts (not the rounded 592K the page shows), total comment count, view counts, caption, hashtags, mentions and post date.
  • Comments on each reel: author, user id, verified badge, text, like count, reply linkage and timestamp. No login involved.
  • Direct download URLs: MP4 video links in every available quality, plus full-size images, thumbnails and the creator's profile picture.
  • Reel metadata: duration, dimensions, audio flag, music title and artist, tagged users and location when published.
  • 72 trending terms with EXACT volumes from Instagram's trending page (nails = 1,311,706,685, not "1.3B"), each with rank, thumbnail and a featured reel. Plus 12 ranked trending creators and Instagram's own 12-category browse taxonomy.
  • Creator follower counts and engagement rate on every reel, so you can rank creators by performance rather than raw audience size.
  • Audio track title, artist, and whether it is original audio.
  • Profile stats for any username: followers, following, post count, display name.
  • Location data for any Instagram location ID: name, latitude, longitude and total tagged posts.

Why scrape Instagram keywords instead of hashtags

Hashtag tools tell you how many posts carry a tag. That is a supply number: how many people published something. It says nothing about how many people went looking. Instagram's own popular-search pages expose the demand side, which is why the same term can look enormous as a hashtag and thin as a search.

The related-keyword links are the more valuable half. Instagram publishes, for each term, the terms it considers adjacent, in real user phrasing rather than compressed hashtag form. laptop leads to how to screenshot on a laptop, crochet laptop sleeve for men and como dividir pantalla en laptop. Those are content briefs and ad-targeting seeds, and they are phrases no hashtag generator would produce because nobody tags a post #comodividirpantallaenlaptop.

Because every related term is a real page, the graph can be walked. Set the expansion depth and one seed becomes a map of a niche as Instagram itself organises it, with a volume figure attached to each node.

Input

Pick what kind of input you have, then paste it. Instagram URLs are always detected automatically, whatever type is selected.

Search typeWhat you give itWhat you get back
KeywordlaptopSearch volume, 30 related keywords, up to 12 reels
Profilenatgeo or @natgeoExact follower / post counts, plus the account's recent posts
URLany post, reel or profile linkThe item behind the link, fully enriched
Location212988663Name, coordinates, total tagged posts
Trendingnothing72 trending terms with exact volumes, 12 creators, 12 categories

You can mix them in one run. Passing

["laptop", "@natgeo", "https://www.instagram.com/reel/DVdFk_9jCan/", "212988663"]
works and returns all four kinds of row.

All fields

FieldTypeDefaultDescription
searchTypeselectkeywordWhich of the five input kinds you are giving.
searcharray["laptop"]Required. The terms, usernames, URLs or IDs.
modeselectbothkeywords, reels, or both.
expandRelatedinteger 0–31Levels of related-keyword expansion.
maxKeywordsinteger25Cap on keyword pages fetched.
maxReelsinteger50Cap on reel rows.
maxPostsPerProfileinteger12Cap on posts returned per profile.
enrichReelsbooleantrueFetch each reel's page for exact counts and comments.
includeCreatorStatsbooleantrueAdd follower count, engagement rate, audio and duration.
includeCommentsbooleantrueAttach comments to each reel row.
maxCommentsinteger30Cap on comments per reel.
expandRelatedTopicsbooleantrueAlso follow per-reel related-topic links.
includeTrendingbooleanfalseAlso return Instagram's trending page.
seedFromTrendingbooleanfalseAlso crawl Instagram's trending terms.
maxSeedTermsinteger10How many trending terms to seed from.
concurrencyinteger 1–168Parallel requests.

The older queries, profiles and locationIds fields still work for saved tasks, and now auto-detect what you put in them.

Output

Rows are mixed and discriminated by record_type. A keyword row:

{
"record_type": "keyword",
"keyword": "laptop",
"display_name": "Laptop",
"url": "https://www.instagram.com/popular/laptop/",
"reels_volume_text": "37M",
"reels_volume": 37000000,
"related_keywords": ["how to screenshot on a laptop", "castle laptop", "..."],
"related_keyword_count": 30,
"top_reel_shortcodes": ["DVdFk_9jCan", "..."],
"top_reel_count": 12,
"top_creators": ["techburner", "9gag", "..."],
"depth": 0
}

A reel row:

{
"record_type": "reel",
"shortcode": "DVdFk_9jCan",
"url": "https://www.instagram.com/reel/DVdFk_9jCan/",
"source_keyword": "laptop",
"owner_username": "hxzrshk",
"owner_full_name": "HXZRSH STUDIO",
"owner_is_verified": false,
"owner_profile_pic_url": "https://scontent.cdninstagram.com/...jpg",
"caption": "Dark.",
"hashtags": [],
"mentions": [],
"likes": 591947,
"comments_count": 2004,
"views": 3275442,
"video_url": "https://instagram.fnbo10-1.fna.fbcdn.net/o1/v/t2/...mp4",
"video_urls": ["...", "...", "..."],
"image_url": "https://instagram.fnbo10-1.fna.fbcdn.net/v/t51...jpg",
"width": 720,
"height": 1280,
"has_audio": true,
"product_type": "clips",
"related_topics": ["oled laptop", "gaming setup", "rgb keyboard"],
"posted_at": "2026-03-04T07:46:38Z",
"comments_returned": 14,
"comments": [
{
"username": "zyvrenl.24",
"user_id": "57646758540",
"user_is_verified": false,
"text": "Legion pro pro 7 btw",
"likes": 0,
"is_reply": false,
"created_at": "2026-07-18T04:45:42Z"
}
],
"enriched": true
}

Profile rows carry followers, following, posts_count and full_name. Location rows carry name, latitude, longitude and media_count. Trending rows carry topic, rank, an exact media_count, thumbnail_url and featured_reel_shortcode. Category rows carry category, keyword and media_count.

Use cases

Content planning for social teams. Pick the topic you publish about, expand two levels, and sort by reels_volume. You get a ranked list of what Instagram users search in that niche, phrased the way they phrase it. The related keywords double as video titles, because they are already questions and qualifiers rather than compressed tags.

Instagram trends monitoring. Run the trending topics daily with a scheduled task and diff the output. Topics enter and leave Instagram's trending page faster than they enter general search trend tools, and each one links to a keyword page with its own volume and reels, so you can go from "this is spiking" to "here is who is winning it" in one run.

Influencer and creator discovery. Every keyword page returns the creators Instagram ranks for that term, and every reel carries its creator's follower count and engagement rate. That lets you sort a niche by performance instead of audience size, which is how you find the 2,776-follower account whose reel did 591,000 likes. went_viral flags exactly those cases.

Ad copy and targeting research. The related-keyword graph is phrase-level demand data for a platform that does not publish a keyword planner. Paid social teams use it to write hooks in the audience's own words and to find adjacent interests worth testing, at a fraction of what a managed Instagram data API charges per record.

How it compares

This actorapify/instagram-scraperapify/instagram-hashtag-analytics-scraper
Price per 1k results$1.40$2.70$2.30
Actor start feenonenone$0.001
Search-phrase volumeyesnono
Hashtag post countsnonoyes
Related termssearch phrasesnorelated hashtags
Multi-level expansionyes, up to 3nono
Trending topicsyesnono
Reels with engagementyesyestop/latest posts as add-ons
Comments includedyes, in the reel rowseparate actorno
Video download URLsyes, included$0.02/reel add-onno
View countsyesyesno
Profile statsyesyesno
Location metadatayesyesno
Full post history per profilenoyesno
Comment threadsnoyesno

Being straightforward about the overlap. If you want hashtag metrics, Apify's hashtag analytics actor gives post counts, posts per day and related hashtags, and it does that well. The difference is which namespace you are measuring: hashtags are what publishers tagged, search phrases are what users typed. This actor reports the search side, in full phrases like

how to screenshot on a laptop
rather than tags, and lets you walk that graph outward several levels.

If you need a profile's complete post history, apify/instagram-scraper does that and this one does not. Note the add-on pricing though: Apify's reel scraper charges $0.02 per reel for a video download link and runs a separate actor for comments. Here both are part of the row you already paid for. At $1.40 per 1k this runs below both, with no start fee.

Pricing

$0.0014 per result, which is $1.40 per 1,000 rows. Every row bills the same regardless of type, so cost is predictable from row count alone. All pricing is pay-per-event, you only pay for results you receive. No actor-start fee, no per-compute-unit charges.

Limits and gotchas

  • Volume counts reels, not all posts. 37M reels is a reels figure. Treat it as relative demand between terms, not as a total post count.
  • Terms are traversed, not guessed. Instagram only builds a popular-search page for terms it has indexed, so an invented phrase returns nothing. Seed with a common head term and use expandRelated to reach the long tail, or switch on seedFromTrending to start from terms Instagram itself is promoting. Even those are not universally live: a very fresh news term can be listed on the trending page before its own page exists. When a seed has no page, the run reports it in errors and continues.
  • Like counts are exact. They come from Instagram's embedded data (591947), not the rounded 592K on the page. In the rare case only the rounded figure is available, the row sets likes_are_approximate: true.
  • Comments are a sample, not the full thread. Instagram serves roughly 12 to 15 top-level comments per reel without a login. comments_count gives the true total; comments_returned tells you how many you got. Raising maxComments past what Instagram serves changes nothing.
  • Download URLs expire. Instagram signs its CDN links, so video_url and image_url are valid for hours, not indefinitely. Fetch the media promptly or re-run for fresh links.
  • Enrichment costs one request per reel. With it off you still get views, captions, owner details and download URLs, because those come inlined with the keyword page. Only exact like counts, comment totals and the comments themselves need the extra request.
  • Long-tail terms return fewer related keywords. Head terms give 30, niche terms give as few as 3. That is the graph thinning out, not an error.
  • Volume is mostly a head-term figure. Instagram publishes a reels count for popular terms but usually omits it on long-tail ones, so expanded keywords often have reels_volume: null. Their related links and reels are unaffected.
  • No login means no private data. Private accounts, stories, follower lists and comment threads are all out of reach by design.
  • Engagement rate is uncapped and can exceed 100%. It is likes divided by the creator's followers. A reel that escapes its creator's audience will read in the thousands of percent (591,953 likes against 2,776 followers is 21,323%). That is real signal, not a bug. Use like_to_view_rate when you want a measure that does not depend on audience size.
  • Exact volumes come from the trending page, not term pages. Term pages show a rounded figure in their title ("262M"); the trending page publishes the exact integer (262,052,087) for the terms it lists.
  • Profile mode returns recent posts, not full history. Instagram publishes the 6 most recent posts per account without a login, so an account with 800 posts still returns 6. posts_count gives the true total. To go deeper, pass specific post URLs directly.
  • Free Apify plans are capped at 10 rows per run. Paid plans are uncapped.

FAQ

Can I scrape Instagram without logging in? Yes. This actor only reads pages Instagram serves publicly, so no credentials are used or stored, and nothing you own can be rate-limited or restricted.

How do I do Instagram keyword research? Seed a term you care about, set expandRelated to 1 or 2, and sort the keyword rows by reels_volume. You get real Instagram search terms with volume attached, which is the closest equivalent to a keyword planner Instagram has.

Is this an Instagram hashtag generator? Not exactly, and it is more useful for planning. It returns search phrases rather than tags. Hashtags found in reel captions are extracted into the hashtags field, so you get real tags in use as a by-product.

How do I find Instagram trends? Set includeTrending to true. You get Instagram's current trending topics with rankings, and each topic is a keyword you can then expand for volume and reels.

How accurate are the follower and like counts? They come from Instagram's own pages but are abbreviated above 1,000, so 269M becomes 269000000. Use them for ranking and comparison rather than as exact figures.

Can I download Instagram reels and videos with this? Yes. Every reel row carries video_url with a direct MP4 link in the highest available quality, plus video_urls for the other renditions and image_url for the still. The links are Instagram's own signed CDN URLs, so download promptly, they expire after a few hours.

Can I scrape Instagram comments without logging in? Yes. Each reel row includes a comments array with author, user id, verified badge, text, like count, reply linkage and timestamp. Instagram serves roughly 12 to 15 top-level comments per reel publicly, and comments_count tells you the true total.

Can I scrape all posts from an Instagram account? You get the account's exact follower and post counts plus its 6 most recent posts, which is what Instagram publishes without a login. Each post comes fully enriched with likes, comments, views and download links. For older posts, pass their URLs directly using the URL input type.

Can I get an Instagram creator's follower count and engagement rate? Yes. Every reel row includes owner_followers, engagement_rate (likes over followers) and like_to_view_rate (likes over views), plus a went_viral flag when a reel outperformed its creator's audience.

What is an Instagram location ID and where do I find one? It is the number in an instagram.com/explore/locations/<id>/ URL. Pass it in locationIds to get the name, coordinates and total tagged post count.