Instagram Related Hashtag Stats Scraper & Multi-Tag Comparison
Pricing
Pay per usage
Instagram Related Hashtag Stats Scraper & Multi-Tag Comparison
Instagram Related Hashtag Stats Scraper finds connected hashtags and delivers key metrics like post volume, reach, popularity, and growth trends. Ideal for research, niche discovery, SEO planning, and optimizing Instagram content with data-driven hashtag insights.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
API Empire
Maintained by CommunityActor stats
0
Bookmarked
14
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Instagram Hashtag Scraper — Extract Stats, Related Tags & Rankings
Instagram Related Hashtag Stats Scraper & Multi-Tag Comparison pulls live post counts, related-hashtag breakdowns, and difficulty tiers for any Instagram hashtag as structured JSON. Enter 2 or more hashtags and it also returns a popularity ranking and a relatedHashtagOverlapScore measuring how much the hashtags' related-tag ecosystems overlap. Every row is typed, normalized JSON — no HTML, no selectors, no parsing. Feed in your target tags and you can rank them by real reach, spot near-duplicate niches, and pipe results straight into a spreadsheet, dashboard, or AI agent.
What is Instagram Related Hashtag Stats Scraper & Multi-Tag Comparison?
Instagram Related Hashtag Stats Scraper & Multi-Tag Comparison is an Apify Actor that fetches real-time hashtag stats and related-tag data from Instagram's private web API for any hashtag you supply, then layers a cross-hashtag comparison on top when you give it 2 or more tags. It requires a logged-in Instagram sessionid cookie — Instagram's hashtag endpoints only answer logged-in traffic — but no Instagram Business account, Facebook Page, or app-review process. Results stream into the Actor's dataset row by row as each hashtag is processed.
- Scrape hashtag stats: post count, formatted count, posts/day estimate, difficulty tier
- Scrape related hashtags tiered into frequent, average, and rare popularity buckets
- Rank 2+ hashtags side by side by real post volume in one comparison row
- Score hashtag-ecosystem overlap with
relatedHashtagOverlapScoreand a shared-tags breakdown - Export results as JSON or CSV directly from the Actor's dataset — no proxy management required
What data does Instagram Related Hashtag Stats Scraper & Multi-Tag Comparison collect?
The Actor returns four distinct row types per run: individual hashtag stats, tiered related hashtags, a batch comparison ranking, and an overlap summary.
| Data Type | Key Fields | JSON Field Names |
|---|---|---|
| Hashtag Stats | Post count, formatted post count, posts/day estimate, difficulty tier | postsCount, posts, postsPerDay, difficulty |
| Related Hashtags | Related tags tiered by popularity, each with a real post count | hashtags, count, section (related/frequent/average/rare) |
| Comparison Ranking | Rank per hashtag, share of batch post volume, most/least popular tag | comparisonRanking, shareOfBatchPercent, mostPopularHashtag, leastPopularHashtag |
| Overlap Summary | Shared related tags across hashtags, unique-tag count, overlap score | relatedHashtagOverlapScore, sharedRelatedTags, totalUniqueRelatedTags |
Need more Instagram data?
If you need the actual posts or Reels behind a hashtag rather than just its stats, Instagram Hashtag Scraper: Top Post Data returns top-performing Reels per hashtag ranked by play count with audio metadata. Instagram Reels Scraper By Hashtag & Keyword Search discovers Reels by hashtag, keyword, direct URL, or profile in one dataset. Both pair naturally with this Actor's hashtag rankings — use this Actor to pick your tags, then those to pull the content behind them.
How does Instagram Related Hashtag Stats Scraper & Multi-Tag Comparison differ from the official Instagram API?
Meta's Instagram Graph API exposes hashtag search only to Instagram Business or Creator accounts, and only after App Review approval — it was not built for ad-hoc, no-account hashtag research.
| Feature | Instagram Graph API | This Scraper |
|---|---|---|
| Account requirement | Instagram Business or Creator account | None — no Instagram account of your own needed |
| Approval process | Meta App Review for Instagram Public Content Access + instagram_basic permission | None — run after pasting a session cookie |
| Hashtag query volume | Max 30 unique hashtags per rolling 7-day period per account (Meta Graph API docs) | No hashtag-count cap in the Actor itself |
| Related-hashtag data | Not exposed — returns only top/recent media for a hashtag you query | Returns related/frequent/average/rare related-tag tiers for every hashtag |
| Multi-hashtag comparison | Not provided — each call is independent; comparison logic is on you | Built-in ranking row + overlap score when 2+ hashtags are supplied |
| Setup time | Facebook Page + Business/Creator linkage + App Review before first call | Paste a sessionid cookie and run |
The Graph API is the right choice if you already manage a Business or Creator account and only need your own hashtag's recent media inside an approved app. This Actor is the faster path when you need related-hashtag data, cross-hashtag comparison, or stats on hashtags you don't personally own an account for.
Why do developers and teams scrape Instagram?
For marketers and brand teams
Marketers use this Actor to benchmark a brand or campaign hashtag against 2–3 competitor or alternative tags before committing a content calendar to one. Feeding #yourbrand, #competitor1, and #competitor2 into hashtagsToCompare returns a comparisonRanking row showing exact postsCount and shareOfBatchPercent for each, so a team can see which tag actually reaches the largest audience instead of guessing from Instagram's UI. The sharedRelatedTags output then flags which of those hashtags' related-tag ecosystems already overlap, useful for avoiding budget spent posting into the same audience twice.
For researchers and analysts
Academic and market researchers use the Actor to study hashtag ecosystems using only publicly reachable tag data — post counts, related-tag pools, and popularity tiers — without touching individual accounts or private content. A researcher studying how tightly a set of niche hashtags cluster can read relatedHashtagOverlapScore directly off the overlap row: a score near 0 means the tags reach mostly distinct audiences, a score near 1 means they largely overlap. Running dozens of hashtags in one job keeps the whole dataset comparable and reproducible.
For AI engineers and agent builders
Because every row is typed JSON with stable field names (postsCount, comparisonRanking, relatedHashtagOverlapScore), an agent can call this Actor as a tool to answer questions like "which of these five hashtags reaches the most people, and which two overlap most?" without writing an HTML parser. The sharedRelatedTags array is small and structured enough to drop straight into an LLM prompt or a RAG index for hashtag-strategy recommendations, and the Actor's own MCP reachability (below) lets an agent call it directly from a tool-use loop.
For developers building data products
Developers building hashtag-research tools or scheduled monitoring dashboards can run this Actor on a schedule against a fixed hashtag watchlist and pipe the dataset into their own database via the Apify API or the apify-client SDK. Because the output schema (section, postsCount, comparisonRanking, relatedHashtagOverlapScore) stays stable between runs, downstream code can rely on the same fields run after run instead of re-parsing a changed page layout every time Instagram tweaks its front end. This makes it a practical backend for a hashtag-tracking product: schedule the run, store each dataset snapshot, and diff postsCount over time to chart hashtag growth without maintaining your own scraper.
How to scrape Instagram (step by step)
- Open Instagram Related Hashtag Stats Scraper & Multi-Tag Comparison on its Apify Store listing and click Try for free / Run.
- Add 2 or more hashtags, bare keywords, or
instagram.com/explore/tags/...URLs to the Hashtags to Compare (hashtagsToCompare) field. - Paste a logged-in Instagram
sessionidcookie value into Instagram Session Cookie (igSessionCookie) — this is required; there is no built-in fallback credential. - Optionally adjust Minimum Shared-Tag Occurrence (
minSharedTagOccurrence) and Delay Between Hashtag Requests (requestDelaySeconds), then start the run. - Download the results as JSON, CSV, or Excel from the run's dataset, or pull them via the Apify API.
What to do when Instagram changes its structure
This Actor is actively maintained, and its output schema is designed to stay stable across Instagram front-end changes, so downstream integrations keep working without code changes on your end. No specific fix turnaround is promised for any individual break.
⬇️ Input
| Parameter | Required | Type | Description | Example Value |
|---|---|---|---|---|
hashtagsToCompare | No | array | Hashtags, tag URLs, or bare keywords to compare. 2+ entries unlock the comparison and overlap rows. Legacy key urls_keywords is still accepted as a fallback. | ["fitness", "yoga", "gym"] |
minSharedTagOccurrence | No | integer (2–10, default 2) | Minimum number of input hashtags a related tag must appear for to be listed in the shared-related-tags overlap summary. | 2 |
igSessionCookie | No | string (secret) | The sessionid cookie value from a logged-in instagram.com browser session. Required in practice — without it the run produces diagnostic rows instead of real data. Legacy key ig_sessionid is accepted as a fallback. | "58012345678%3AabCdEfGhIjKl%3A9%3AAY..." |
requestDelaySeconds | No | integer (0–60) | Seconds to pause between fetching each hashtag, to avoid Instagram rate limits. Legacy key delay_between_requests is accepted as a fallback. | 2 |
proxySettings | No | object | Apify proxy configuration. Legacy key proxy_configuration is accepted as a fallback. | {"useApifyProxy": false} |
Example JSON input
{"hashtagsToCompare": ["fitness", "yoga", "gym"],"minSharedTagOccurrence": 2,"igSessionCookie": "58012345678%3AabCdEfGhIjKl%3A9%3AAY...","requestDelaySeconds": 2,"proxySettings": { "useApifyProxy": false }}
The most common input mistake is leaving igSessionCookie blank: the schema marks it optional so the Actor can still start and produce a diagnostic row explaining why, but Instagram's hashtag endpoints reject anonymous requests, so real data never appears without a valid, currently-logged-in session cookie.
⬆️ Output
Every run pushes typed JSON rows to the Actor's dataset, downloadable as JSON, CSV, Excel, or XML. Row shape depends on section; the four real result types are below, plus an unbilled diagnostic row for failures. This Actor bills on Apify's Pay-Per-Event model: every main, related/frequent/average/rare, comparison, and overlap row is charged once via the row_result event, while error rows are pushed but never charged. To count only billed rows in your own dataset queries, filter on section != "error".
Scraped Hashtag Stats (section: "main")
{"hashtag": "fitness","url": "https://www.instagram.com/explore/tags/fitness","id": "17843826142012345","section": "main","postsCount": 450827193,"posts": "450.83 M","postsPerDay": "123.51 K","postsPerDayEstimate": "123.51 K","difficulty": "high","scrapedAt": "2026-07-25T10:15:03Z"}
Related Hashtags (section: "related" | "frequent" | "average" | "rare")
{"hashtag": "fitness","url": "https://www.instagram.com/explore/tags/fitness","id": "17843826142012345","section": "frequent","count": 5,"hashtags": [{ "hash": "#fitnessmotivation", "info": "82.4M posts", "mediaCount": 82400000 },{ "hash": "#fitfam", "info": "34.2M posts", "mediaCount": 34200000 }],"scrapedAt": "2026-07-25T10:15:03Z"}
Comparison Ranking (section: "comparison", 2+ hashtags only)
{"hashtag": "(comparison)","url": null,"id": null,"section": "comparison","comparisonBatchSize": 3,"comparisonRanking": [{ "rank": 1, "hashtag": "fitness", "postsCount": 450827193, "posts": "450.83 M", "shareOfBatchPercent": 61.2 },{ "rank": 2, "hashtag": "gym", "postsCount": 210443210, "posts": "210.44 M", "shareOfBatchPercent": 28.6 },{ "rank": 3, "hashtag": "yoga", "postsCount": 75123456, "posts": "75.12 M", "shareOfBatchPercent": 10.2 }],"mostPopularHashtag": "fitness","leastPopularHashtag": "yoga","scrapedAt": "2026-07-25T10:15:04Z"}
Overlap Summary (section: "overlap", 2+ hashtags only)
{"hashtag": "(overlap)","url": null,"id": null,"section": "overlap","relatedHashtagOverlapScore": 0.18,"sharedRelatedTags": [{ "hash": "#fitfam", "appearsInCount": 2, "appearsInHashtags": ["fitness", "gym"], "mediaCount": 34200000 }],"totalUniqueRelatedTags": 22,"totalSharedTags": 4,"minSharedOccurrenceThreshold": 2,"scrapedAt": "2026-07-25T10:15:04Z"}
Diagnostic error row (section: "error", unbilled)
{"hashtag": "fitness","url": "https://www.instagram.com/explore/tags/fitness","id": "fitness","section": "error","error": "Could not fetch data — the igSessionCookie may be expired or rate-limited.","scrapedAt": "2026-07-25T10:15:03Z"}
How many results can you scrape with Instagram Related Hashtag Stats Scraper & Multi-Tag Comparison?
There is no hard cap on the number of hashtags you can put in hashtagsToCompare in the Actor itself — the input schema places no maxItems limit on the field. Each hashtag produces up to five rows (main stats plus related/frequent/average/rare tiers), and a batch of 2+ hashtags adds one comparison row and one overlap row at the end, once every hashtag has been processed. There is no built-in pagination parameter because the Actor's own related-hashtag data per tag is already capped at 5 items per tier by Instagram's search response, not by the Actor.
The real constraint is Instagram's own rate limiting: every hashtag in a run is fetched sequentially through the same authenticated session, paced by requestDelaySeconds. Very large hashtag batches increase the chance of the session getting soft-blocked partway through, which is why the delay and the automatic proxy ladder exist. Keep batches to the hashtags you actually need to compare rather than maximizing count for its own sake.
Integrate Instagram Related Hashtag Stats Scraper & Multi-Tag Comparison and automate your workflow
Instagram Related Hashtag Stats Scraper & Multi-Tag Comparison works with any language or tool that can send an HTTP request.
REST API integration
from apify_client import ApifyClientclient = ApifyClient("<APIFY_API_TOKEN>")run = client.actor("<YOUR_APIFY_USERNAME>/instagram-related-hashtag-stats-scraper-multi-tag-comparison").call(run_input={"hashtagsToCompare": ["fitness", "yoga", "gym"],"igSessionCookie": "<YOUR_SESSIONID_COOKIE>","minSharedTagOccurrence": 2,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["section"], item.get("hashtag"))
Works in Python, Node.js, Go, Ruby, cURL.
MCP for AI agents
This Actor is callable through Apify's hosted MCP server at https://mcp.apify.com using the call-actor tool, so any MCP-compatible client (Claude, Cursor, or another agent framework) can invoke it by Actor name without a custom integration. Register the server with {"mcpServers": {"apify": {"url": "https://mcp.apify.com"}}} (OAuth) or a bearer token header, then have the agent search-actors or call it directly by name.
Automation platforms (n8n, Make)
In n8n, add the official Apify node, use its Run Actor operation with this Actor's ID, then chain a Get Dataset Items operation reading the defaultDatasetId from the run. In Make, the official Apify app provides a Run an Actor module and a matching Get Dataset Items module, so a scenario can trigger the comparison run and land the resulting rows in any of Make's 1,500+ connected apps.
Is it legal to scrape Instagram?
Scraping Instagram's publicly viewable hashtag pages is generally permitted, but you are bound by Instagram's Terms of Service regardless of the method used to access the data. Instagram Related Hashtag Stats Scraper & Multi-Tag Comparison returns only publicly available hashtag statistics — post counts, related-tag names, and popularity tiers — with no usernames, profile data, or individual post content, so it does not collect personal data subject to GDPR/CCPA in its output. Consult legal counsel for commercial use cases, particularly around Instagram's Terms of Service and any downstream storage or redistribution of the collected data.
Frequently asked questions
Does this scraper work without an Instagram account?
No. It requires a logged-in Instagram sessionid cookie pasted into igSessionCookie — Instagram's hashtag endpoints only return real data to logged-in traffic, and there is no built-in fallback credential. Without a valid cookie, the run still completes but produces diagnostic error rows instead of hashtag stats.
How often is the scraped data updated?
Every run fetches live data directly from Instagram at run time — nothing is cached or served from a prior run. Re-run the Actor whenever you need current numbers.
What happens if a hashtag can't be fetched?
The Actor pushes an unbilled diagnostic row with section: "error" and a human-readable error message (typically an expired or rate-limited session cookie) instead of fabricating a 0 or guessed value, so a failed hashtag is always visible rather than silently missing from the dataset.
Can I scrape hashtag data that requires being logged in to view?
The Actor only reads hashtag pages and search results that are publicly viewable on Instagram — no private accounts or login-gated individual posts are accessed. A session cookie is required only because Instagram's web API rejects anonymous requests for this public data, not because the data itself is private.
Does this scraper work for AI agent workflows and LLM pipelines?
Yes. It's callable as a plain HTTP endpoint by any agent framework, and it's also reachable through Apify's MCP server (call-actor tool) for MCP-compatible clients. Every response is typed JSON with stable field names, so an agent can consume it without a parsing step.
How does this scraper handle Instagram's anti-bot system?
It warms up an authenticated session (cookie + CSRF token) and retries requests across a proxy ladder — direct connection, then an Apify SDK proxy, then datacenter, then residential — so a soft block on one tier falls through to the next instead of failing the run outright.
Does this scraper return data in a format LLMs can use directly?
Yes. Every row is typed, normalized JSON with stable field names like postsCount, comparisonRanking, and relatedHashtagOverlapScore — no HTML, no selectors, no parsing step before passing it to an LLM context window or a vector store.
Can I use this scraper without managing proxies?
Yes for infrastructure — the Actor's proxy ladder and Apify Proxy configuration (proxySettings) handle routing automatically, including a direct-connection fallback if you leave proxying off. You still need to supply your own valid Instagram sessionid cookie, which the Actor cannot generate for you.
What happens when Instagram changes its structure or blocks the scraper?
The Actor is actively maintained, and its output field names and types are designed to stay stable on your end even when Instagram's own site or API changes underneath it. No specific turnaround time is promised for any individual fix.
Your feedback
Found a bug or a missing field in the output? We want to know — accurate hashtag data is the entire point of this Actor. Reach out through the Actor's Issues tab on Apify or the API-Empire support contact listed on the Apify Store listing, and include the run ID so we can reproduce it quickly.