Instagram Hashtag Scraper
Pricing
$24.99/month + usage
Instagram Hashtag Scraper
This Instagram Hashtag Scraper captures posts, reels, images, and engagement details from any public hashtag. Ideal for tracking trends, analyzing competitors, and gathering visual datasets. High-speed, stable, and perfect for automation and large-volume research.
Pricing
$24.99/month + usage
Rating
5.0
(1)
Developer
Scrapier
Maintained by CommunityActor stats
1
Bookmarked
25
Total users
5
Monthly active users
2 days ago
Last modified
Categories
Share
Instagram Hashtag Intelligence & Trend Radar
A variant of the Instagram Hashtag Scraper. The scraping core is identical โ
same internal Instagram API (/api/v1/tags/{tag}/sections/), same session/proxy
handling, same post parser. It scrapes posts & reels by hashtag exactly like the
base, then adds two layers computed only from the posts it just scraped:
- ๐ง Intelligence โ one summary row per hashtag with aggregate insight.
- ๐ Trend โ a cross-run delta: what is new for a hashtag since the last run.
No value in the added output is estimated, modeled, or hardcoded. Every field is either a raw scraped value or a transparent count / average / median / set-diff of scraped values.
Relationship to the base scraper
Base (instagram-hashtag-scraper) | This variant | |
|---|---|---|
| Scraping core | internal IG API + impit + proxy ladder | identical (verbatim) |
| Post output rows | โค๏ธ likes, ๐ญ comments, caption, hashtags, mentions, owner, media, music โฆ | identical, byte-for-byte, still charged as row_result |
| Section header rows | free divider row per hashtag | identical |
| Extra output | โ | one free hashtagReport row per hashtag (intelligence + trend) |
| Purpose | collect posts | collect posts and profile the hashtag over time |
Every base input key is kept with the same name, meaning and default. The variant only adds opt-in keys. If you set only the base keys and turn the two feature toggles off, you get base-equivalent output.
Input
All base keys are unchanged:
| Key | Type | Default | Notes |
|---|---|---|---|
startUrls | array | ["webscraping"] | Hashtags, hashtag URLs, or keywords (with keywordSearch). |
sessionid | string (secret) | โ | Required. Instagram sessionid cookie. |
contentType | posts | reels | posts | |
keywordSearch | boolean | false | Resolve a keyword to its matching hashtag. |
resultsLimit | integer 1โ1000 | 20 | Posts collected per hashtag. |
proxyConfiguration | object | { useApifyProxy: false } |
Variant-only additive keys:
| Key | Type | Default | Notes |
|---|---|---|---|
emitIntelligence | boolean | true | Emit the per-hashtag intelligence summary row. |
trackTrends | boolean | true | Persist seen post IDs and report the cross-run delta. |
topN | integer 1โ50 | 10 | How many items to keep in each ranked list. |
Output
Post rows โ identical to the base
Each scraped post is pushed as its own dataset row with the base schema
(id, type, shortCode, caption, hashtags, mentions, url,
commentsCount, likesCount, timestamp, ownerUsername, videoUrl,
musicInfo, childPosts, โฆ). These are the billable row_result rows.
hashtagReport row โ one per hashtag (free)
Marked with isReport: true, type: "hashtagReport". Fields (all derived from the
scraped posts of that hashtag):
Intelligence (emitIntelligence)
postsAnalyzed,likesKnownFor(coverage, e.g."18/20"โ likes hidden by the author are counted as unknown, never faked to 0)totalLikes,avgLikes,medianLikes,totalComments,avgComments,medianCommentsmediaTypeBreakdownโ{Image, Video, Sidecar, Reel}countscoHashtagsโ[{tag, count}]other hashtags co-occurring in the captionstopMentionsโ[{username, count}]audioTrendsโ[{title, artist, audioId, uses}]from each post'smusicInfopostingHoursUtc,postingWeekdaysUtcโ histograms from each post's timestamptopCreatorsโ[{username, posts, totalLikes, totalComments}]topPostsโ toptopNby (likes + comments)
Trend (trackTrends)
trendIsFirstRunโ true when this hashtag has no prior statetrendNewCountโ posts not seen in any previous runtrendNewSincePrevRunAtโ timestamp of the previous run (nullon first run)trendTotalKnownIdsโ size of the persisted seen-ID settrendEmergingCoHashtagsโ[{tag, count}]among the NEW posts onlytrendRisingCreatorsโ[{username, newPosts}]trendObservedNewPerHourโnew posts รท hours since previous run(observed in the scraped sample;nullon the first run)
Two dataset views are provided: Scraped Posts (base view) and Hashtag Intelligence & Trend.
How the trend state works
Seen post IDs are stored per hashtag in a named key-value store
(instagram-hashtag-trend-state) that persists across runs โ the per-run default
store would reset every time. Each run reads the previous ID set, diffs it against
the IDs scraped this run to compute what's new, then writes the union back
(bounded to the most recent 100k IDs per hashtag). Delete the store to reset a
hashtag's history.
Data-provenance guarantee
Every field in the report traces to a scraped value:
- counts/averages/medians โ the posts' own
likesCount/commentsCount coHashtags/topMentionsโ the posts'hashtags/mentionsarraysaudioTrendsโ each post'smusicInfoobject- posting histograms โ each post's
timestamp - trend deltas โ set-diff of scraped post
ids + date math against the stored run time
Nothing is pulled from a constant table, an assumed default, or a proprietary model.
Billing
Post rows are charged as row_result (pay-per-event), identical to the base.
Section headers and the hashtagReport rows are free metadata (not charged).
The row_result event must be configured in the Console (Publication โ
Monetization) for charging to take effect; until then the platform logs an
"ignored attempt to charge" no-op.