Instagram Hashtag Stats
Pricing
from $1.00 / 1,000 instagram hashtag stats & top posts
Instagram Hashtag Stats
Get total post count and top posts for any Instagram hashtag — no login required. Powered by real browser rendering for reliable results even on the most popular hashtags. Perfect for content strategy, trend monitoring and influencer research.
Pricing
from $1.00 / 1,000 instagram hashtag stats & top posts
Rating
0.0
(0)
Developer
Alexandre Manguis
Actor stats
0
Bookmarked
12
Total users
5
Monthly active users
4 days ago
Last modified
Categories
Share
Instagram Hashtag Stats & Top Posts
Get the total post count and top posts for any Instagram hashtag — no login, no session cookies, no Instagram account required.
Powered by real browser rendering with stealth mode, this actor reliably handles both everyday hashtags and ultra-popular ones with billions of posts (e.g. #travel, #anime, #photography).
✨ What you get
For each hashtag, the actor returns:
| Field | Type | Example |
|---|---|---|
hashtag | string | travel |
hashtagUrl | string | https://www.instagram.com/explore/tags/travel/ |
hashtagId | string | null | 17841563392441660 |
mediaCount | integer | null | 3917852048 |
formattedMediaCount | string | null | 3.9B |
topPosts | array | see below |
Each top post includes:
| Field | Example | Notes |
|---|---|---|
shortcode | DR5JCDuEvc2 | Unique post identifier |
url | https://www.instagram.com/reel/DR5JCDuEvc2/ | Direct link |
type | Video | Video, Image or Carousel |
ownerUsername | natgeo | Author's handle |
ownerId | 25025320 | Author's numeric ID |
likesCount | 48392 | Like count |
commentsCount | 312 | Comment count |
videoViewCount | 1200000 | View count (Reels only) |
imageUrl | https://… | Thumbnail / display image URL |
caption | "Exploring the peaks…" | Post caption text |
timestamp | 2026-03-01T14:23:00.000Z | ISO 8601 post date |
Note:
ownerUsername,ownerId,likesCount,commentsCount,videoViewCount,imageUrl,captionandtimestampare populated when Instagram includes them in the page's network responses (rich data). When the DOM fallback is used, onlyshortcode,urlandtypeare guaranteed.
🚀 Usage
Input
{"hashtags": ["travel", "anime", "msi"],"includeTopPosts": true,"maxTopPosts": 9,"concurrency": 3}
| Parameter | Type | Default | Description |
|---|---|---|---|
hashtags | string[] | required | Hashtag names to scrape (without #) |
includeTopPosts | boolean | true | Also extract top posts using browser rendering |
maxTopPosts | integer | 9 | Max posts per hashtag (1–10) |
concurrency | integer | 3 | Hashtags processed in parallel (1–5) |
Output (one item per hashtag)
[{"hashtag": "travel","hashtagUrl": "https://www.instagram.com/explore/tags/travel/","hashtagId": "17841563392441660","mediaCount": 3917852048,"formattedMediaCount": "3.9B","topPosts": [{"hashtag": "travel","shortcode": "DR5JCDuEvc2","url": "https://www.instagram.com/reel/DR5JCDuEvc2/","type": "Video","ownerUsername": "natgeo","ownerId": "25025320","likesCount": 48392,"commentsCount": 312,"videoViewCount": 1200000,"imageUrl": "https://instagram.com/...jpg","caption": "Exploring the peaks of Patagonia 🏔️ #travel #nature","timestamp": "2026-03-01T14:23:00.000Z"},{"hashtag": "travel","shortcode": "DTQ9VKEEv2x","url": "https://www.instagram.com/reel/DTQ9VKEEv2x/","type": "Video","ownerUsername": null,"ownerId": null,"likesCount": null,"commentsCount": null,"videoViewCount": null,"imageUrl": null,"caption": null,"timestamp": null}]},{"hashtag": "anime","hashtagUrl": "https://www.instagram.com/explore/tags/anime/","hashtagId": null,"mediaCount": 1000000000,"formattedMediaCount": "1B","topPosts": [{"hashtag": "anime","shortcode": "DU8kXoQpZr1","url": "https://www.instagram.com/reel/DU8kXoQpZr1/","type": "Video","ownerUsername": null,"ownerId": null,"likesCount": null,"commentsCount": null,"videoViewCount": null,"imageUrl": null,"caption": null,"timestamp": null}]}]
Note on
hashtagId: Instagram only exposes the numeric ID publicly for hashtags below ~500M posts. For mega-popular hashtags (#anime,#photography, etc.) this field will benull.Note on rich post fields:
ownerUsername,likesCount,commentsCount,videoViewCount,imageUrl,captionandtimestampare populated when Instagram's page responses include them (JSON intercept). When only the DOM is available (fallback), these fields arenull.
🎯 Use cases
1. Hashtag research before publishing
Find out how competitive a hashtag is before adding it to your post. A hashtag with 3.9B posts is extremely saturated; one with 500K posts gives you a real chance to appear in the top results.
{ "hashtags": ["fitnessmotivation", "fitlife", "gymlife", "workout"], "maxTopPosts": 5 }
2. Competitor & niche analysis
See exactly which posts are currently trending for your niche. Analyse the content format (Reel vs Image), posting style and engagement of top-performing posts.
3. Trend monitoring
Schedule regular runs to track which hashtags are growing. Compare mediaCount over time to spot emerging trends before they peak.
4. Influencer campaign validation
Before paying for a sponsored post, verify that the target hashtag actually has real engagement by checking its top posts.
5. Content strategy & SEO
Build a database of hashtag volumes to optimise your posting strategy — combine high-volume hashtags (reach) with medium ones (discoverability) and niche ones (engagement).
⚙️ Technical details
- No login required — the actor uses only public Instagram pages
- Stealth browser — Playwright with
puppeteer-extra-plugin-stealthto avoid detection - Parallel processing — multiple hashtags are scraped simultaneously (configurable concurrency)
- Dual extraction strategy — tries the fast public API first; falls back to real browser rendering for hashtags that are excluded from API results
- Progressive scroll retry — if the DOM is empty on first load, the actor scrolls the page in stages to trigger React's lazy rendering
- Automatic retry — each hashtag gets up to 2 attempts before giving up
💡 Tips
- Set
concurrencyto2if you are scraping many hashtags at once to avoid rate-limiting - Use
includeTopPosts: falseif you only need the post count — it's much faster (no browser needed) - Process up to 50 hashtags per run for best reliability
- Results can be exported as JSON, CSV or Excel from the Apify dataset
⚠️ Limitations
- Top posts are limited to 10 per hashtag (Instagram's grid shows ~12 naturally)
hashtagIdis unavailable for mega-popular hashtags (Instagram does not expose it publicly without a session)- Instagram may rate-limit requests from datacenter IPs — if you experience consistent failures on a specific hashtag, try running again later
- Results reflect what Instagram shows at the time of the run; top posts change frequently
📦 Integrations
The output dataset can be used directly with:
- Apify API — poll results in JSON or NDJSON format
- Webhooks — trigger downstream workflows on run completion
- Make (Integromat) / Zapier — connect to CRMs, Sheets, Notion, Airtable, etc.
- Google Sheets — use the Apify Google Sheets integration to sync results automatically
