Instagram Hashtag Stats avatar

Instagram Hashtag Stats

Pricing

from $1.00 / 1,000 instagram hashtag stats & top posts

Go to Apify Store
Instagram Hashtag Stats

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

Alexandre Manguis

Maintained by Community

Actor stats

0

Bookmarked

12

Total users

5

Monthly active users

4 days ago

Last modified

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:

FieldTypeExample
hashtagstringtravel
hashtagUrlstringhttps://www.instagram.com/explore/tags/travel/
hashtagIdstring | null17841563392441660
mediaCountinteger | null3917852048
formattedMediaCountstring | null3.9B
topPostsarraysee below

Each top post includes:

FieldExampleNotes
shortcodeDR5JCDuEvc2Unique post identifier
urlhttps://www.instagram.com/reel/DR5JCDuEvc2/Direct link
typeVideoVideo, Image or Carousel
ownerUsernamenatgeoAuthor's handle
ownerId25025320Author's numeric ID
likesCount48392Like count
commentsCount312Comment count
videoViewCount1200000View count (Reels only)
imageUrlhttps://…Thumbnail / display image URL
caption"Exploring the peaks…"Post caption text
timestamp2026-03-01T14:23:00.000ZISO 8601 post date

Note: ownerUsername, ownerId, likesCount, commentsCount, videoViewCount, imageUrl, caption and timestamp are populated when Instagram includes them in the page's network responses (rich data). When the DOM fallback is used, only shortcode, url and type are guaranteed.


🚀 Usage

Input

{
"hashtags": ["travel", "anime", "msi"],
"includeTopPosts": true,
"maxTopPosts": 9,
"concurrency": 3
}
ParameterTypeDefaultDescription
hashtagsstring[]requiredHashtag names to scrape (without #)
includeTopPostsbooleantrueAlso extract top posts using browser rendering
maxTopPostsinteger9Max posts per hashtag (1–10)
concurrencyinteger3Hashtags 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 be null.

Note on rich post fields: ownerUsername, likesCount, commentsCount, videoViewCount, imageUrl, caption and timestamp are populated when Instagram's page responses include them (JSON intercept). When only the DOM is available (fallback), these fields are null.


🎯 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-stealth to 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 concurrency to 2 if you are scraping many hashtags at once to avoid rate-limiting
  • Use includeTopPosts: false if 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)
  • hashtagId is 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