Instagram Related Hashtag Stats Scraper avatar

Instagram Related Hashtag Stats Scraper

Pricing

$14.99/month + usage

Go to Apify Store
Instagram Related Hashtag Stats Scraper

Instagram Related Hashtag Stats Scraper

๐Ÿ“Š Instagram Related Hashtag Stats Scraper lets you extract detailed hashtag insights from Instagram โ€” including related tags, post counts, engagement stats, and top posts. ๐Ÿš€ Analyze hashtag networks, find trending topics, and export data in JSON, CSV, or Excel for free!

Pricing

$14.99/month + usage

Rating

5.0

(3)

Developer

Scraper Engine

Scraper Engine

Maintained by Community

Actor stats

1

Bookmarked

70

Total users

1

Monthly active users

5 days ago

Last modified

Share

Instagram Hashtag Stats Scraper โ€” Post Counts & Related Tags

Instagram Related Hashtag Stats Scraper returns a hashtag's real post count, a difficulty competition tier, and the related hashtags Instagram itself surfaces for it โ€” split into frequent, average, and rare popularity tiers. Output is delivered as structured JSON dataset rows, ready to filter, export, or feed into another tool. No screen-scraping or HTML parsing required on your end. Run it directly from its Apify Store listing to pull hashtag research data for any tag list in one job.

Instagram Related Hashtag Stats Scraper is a hashtag-research tool that calls Instagram's own private web endpoints (tags/web_info and tags/search) to pull a hashtag's real post count plus the related hashtags Instagram recommends for it, grouped into frequent/average/rare tiers by post volume. It requires a logged-in Instagram sessionid cookie โ€” Instagram's hashtag endpoints reject anonymous requests, and this Actor has no built-in fallback credential. It's built for social media marketers, hashtag-generator workflows, and growth/SEO teams doing bulk hashtag audits rather than developers looking to scrape post content itself.

What Instagram hashtag data is publicly available to scrape?

Instagram gates hashtag-search data behind a login wall โ€” its private hashtag API answers only logged-in sessions, with no logged-out fallback.

Data CategoryVisible to a logged-in sessionRequires business tools
Hashtag total post countYesNo
Related/similar hashtags for a tagYesNo
Frequent/average/rare popularity splitDerived here from related-hashtag countsNo
Top or recent posts under a hashtagYes, on Instagram's own page (not collected here)No
Hashtag reach/impressions insightsNoYes โ€” Instagram Insights, own account only

Instagram Related Hashtag Stats Scraper only returns data visible to a logged-in Instagram session โ€” the same numbers a real logged-in user sees on the hashtag search page. Nothing behind a business-tools or ad-account wall.

Every run returns hashtag identity fields, post-volume metrics, and the related-hashtag pool broken into popularity tiers.

Field NameDescription
hashtagThe clean hashtag name (no #) this row belongs to
urlThe hashtag's Instagram explore-page URL
idInstagram's internal numeric ID for the hashtag (falls back to the hashtag name if unavailable)
sectionWhich row type this is: main, related, frequent, average, rare, or error
postsCountReal, numeric total post count for the hashtag
postsThe same count, human-formatted (e.g. 2.15 B)
postsPerDayEstimateCoarse estimate โ€” total posts divided by a fixed 3,650-day (~10-year) assumption, since Instagram exposes no real hashtag creation date
difficultyHeuristic competition tier (very_low โ†’ very_high) derived from postsCount
countNumber of related-hashtag entries in this row's hashtags array
hashtagsArray of related-hashtag objects for this section (see below)
hashWithin each related-hashtag object: the related tag, prefixed with #
infoWithin each related-hashtag object: Instagram's own formatted post-count label (e.g. "129M posts")
mediaCountWithin each related-hashtag object: the related tag's numeric post count
errorPresent only on diagnostic rows (section: "error") โ€” explains why no data was collected

Hashtag identity fields

hashtag, url, id, section โ€” identify which hashtag and which row type (main stats vs. a related-hashtag tier) each dataset row represents.

Post-volume and related-hashtag metrics

postsCount, posts, postsPerDayEstimate, difficulty, count, hashtags (with nested hash, info, mediaCount), and error โ€” the numeric stats and tiered related-hashtag pool that make up the Actor's research output.

๐Ÿค– Add-on: Need additional Instagram data?

This Actor only returns hashtag-level stats โ€” it doesn't fetch the posts themselves. If you need the actual content under a tag, pair it with Instagram Hashtag Scraper, which pulls posts and reels for a hashtag section-by-section. For account-level research, Instagram Profile Scraper returns bio, follower counts, and recent posts, and Instagram Mentions Scraper โ€” Inbound Tagged Posts tracks who else is tagging a given handle.

Meta's Instagram Graph API exposes hashtag data only through the IG Hashtag Search endpoint, requiring a Business/Creator account plus Meta App Review, and caps lookups at 30 unique hashtags per rolling 7-day window per account โ€” this Actor uses a user-supplied session cookie instead, with no such cap in its code.

FeatureInstagram Graph API (Hashtag Search)Instagram Related Hashtag Stats Scraper
Access requirementBusiness/Creator IG account + Meta App ReviewAny Instagram account's sessionid cookie
Hashtag query volumeCapped at 30 unique hashtags per rolling 7-day windowLimited only by the hashtag list you supply
Related-hashtag discoveryNot provided โ€” only media edges for the queried tagNative related-hashtags pool, tiered by popularity
Setup timeBusiness Manager setup plus App Review approval waitPaste a sessionid cookie and run
Third-party hashtag accessOnly tags tied to your own connected Business accountAny public hashtag, including ones you don't own
Output formatRaw JSON media edges requiring pagination handlingFlat, typed dataset rows billed per output row

Use the Graph API inside Meta's approved Business tooling for your own account. Use this Actor to research any hashtag without an App Review process.

Run this Actor from its Apify Store listing โ€” there's no separate signup or API-key flow beyond your Apify account and an Instagram session cookie.

  1. Open the Actor's page on Apify and click Try for free (or start a run from the API/console).
  2. Paste a logged-in Instagram sessionid cookie into Instagram sessionid cookie โ€” required, no fallback credential exists.
  3. Add your hashtags, #tags, or instagram.com/explore/tags/... URLs to Hashtags / URLs / Keywords โ€” required.
  4. Optionally raise Delay between hashtags above the default 2 seconds for larger batches, and enable Proxy Configuration for extra reliability.
  5. Start the run and read the dataset โ€” export as JSON or CSV.

urls_keywords already takes an array, so bulk research is built in โ€” add as many hashtags, tags, or URLs as you want in a single run and the Actor processes them one at a time with the configured delay between each. There's no separate "batch mode" input; a longer array in one run is the intended scale-up path.

What can you do with Instagram hashtag stats data?

  • A social media manager vetting a hashtag uses postsCount and difficulty to avoid an oversaturated tag before it goes into a caption.
  • A hashtag-generator workflow pulls the frequent, average, and rare tiers to assemble a balanced mix of high-volume and low-competition tags for a single post.
  • A growth agency running bulk audits passes a long urls_keywords list in one job and exports the dataset to compare postsCount and difficulty across an entire client's tag list.
  • An SEO/social researcher maps hashtag clusters by following the hash/mediaCount pairs inside the related section across multiple seed tags.
  • An AI agent building a caption-writing tool feeds a tag's postsCount, difficulty, and related-hashtag arrays into an LLM prompt or RAG index to auto-suggest a hashtag set for a new post.

Requests run through a proxy ladder โ€” direct connection first, then (only if you enable Proxy Configuration) an Apify SDK proxy, a datacenter proxy, and a residential proxy, in that order, retrying each hashtag lookup across tiers until one returns real JSON instead of Instagram's HTML app-shell block page. The delay_between_requests input (default 2 seconds, up to 60) spaces out requests between hashtags to reduce the chance of the session getting rate-limited on longer runs. If a hashtag can't be fetched โ€” an expired cookie, a blocked session, or no credential supplied โ€” the Actor doesn't fail the run; it logs the reason and pushes one diagnostic row with section: "error" and an error message instead, so a single bad hashtag never stops the rest of the batch, and that row isn't billed.

โฌ‡๏ธ Input

ParameterRequiredTypeDescriptionExample Value
urls_keywordsYesarrayHashtags, #tags, or Instagram tag URLs to analyze["fitness", "love", "travel"]
ig_sessionidYesstring (secret)Logged-in Instagram sessionid cookie value โ€” no fallback credential"58012345678%3Aabc123..."
delay_between_requestsNointegerSeconds to wait between hashtags (default 2, range 0โ€“60)2
proxy_configurationNoobjectApify proxy configuration{ "useApifyProxy": false }

Example input

{
"urls_keywords": ["love", "#travel", "https://www.instagram.com/explore/tags/fitness"],
"ig_sessionid": "your-instagram-sessionid-cookie-value",
"delay_between_requests": 2,
"proxy_configuration": {
"useApifyProxy": false
}
}

โฌ†๏ธ Output

Each hashtag produces up to 5 typed dataset rows โ€” one main stats row plus one row each for the related, frequent, average, and rare tiers โ€” or a single unbilled diagnostic row if the fetch failed. Export as JSON or CSV directly from the run's dataset.

Example output

[
{
"hashtag": "love",
"url": "https://www.instagram.com/explore/tags/love",
"id": "17843826570041101",
"section": "main",
"postsCount": 2147483647,
"posts": "2.15 B",
"postsPerDayEstimate": "588.35 K",
"difficulty": "very_high"
},
{
"hashtag": "love",
"url": "https://www.instagram.com/explore/tags/love",
"id": "17843826570041101",
"section": "related",
"count": 5,
"hashtags": [
{ "hash": "#loveyourself", "info": "129M posts", "mediaCount": 129000000 },
{ "hash": "#loveyou", "info": "81.1M posts", "mediaCount": 81100000 }
]
},
{
"hashtag": "love",
"url": "https://www.instagram.com/explore/tags/love",
"id": "17843826570041101",
"section": "frequent",
"count": 5,
"hashtags": [ { "hash": "#loveyourself", "info": "129M posts", "mediaCount": 129000000 } ]
},
{
"hashtag": "love",
"url": "https://www.instagram.com/explore/tags/love",
"id": "17843826570041101",
"section": "average",
"count": 5,
"hashtags": [ { "hash": "#myloves", "info": "8.2M posts", "mediaCount": 8200000 } ]
},
{
"hashtag": "love",
"url": "https://www.instagram.com/explore/tags/love",
"id": "17843826570041101",
"section": "rare",
"count": 5,
"hashtags": [ { "hash": "#nailslove", "info": "5.7M posts", "mediaCount": 5700000 } ]
}
]

If a hashtag can't be fetched, the Actor pushes one unbilled diagnostic row instead:

{
"hashtag": "example",
"url": "https://www.instagram.com/explore/tags/example",
"id": "example",
"section": "error",
"error": "No ig_sessionid supplied in input. This actor requires a real, logged-in Instagram sessionid cookie..."
}

How does it work?

Instagram Related Hashtag Stats Scraper authenticates as you by setting your ig_sessionid cookie on an HTTP session, then warms it up against instagram.com to collect a matching CSRF token before calling Instagram's own private tags/web_info and tags/search endpoints directly โ€” no browser rendering is used. If you enable proxying, requests fall back across an SDK proxy, then datacenter, then residential tiers whenever Instagram serves an HTML block page instead of JSON. Only data visible to that logged-in session is ever returned โ€” nothing scraped from a private account or hidden feature. The output schema (the main/related/frequent/average/rare row shape) is fixed by the Actor's own code, so it stays stable even if Instagram changes its page layout, since the Actor talks to Instagram's API responses, not its HTML.

Integrations

Instagram Related Hashtag Stats Scraper runs on the Apify platform, so it works with any tool that can call the Apify API or trigger an Apify Actor run.

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("Scraper-Engine/instagram-related-hashtag-stats-scraper-pay-per-events").call(
run_input={
"urls_keywords": ["fitness", "love", "travel"],
"ig_sessionid": "<YOUR_IG_SESSIONID_COOKIE>",
"delay_between_requests": 2,
}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["hashtag"], item["section"])

Works in Go, Ruby, Node.js, cURL โ€” any language that can make an HTTP request.

MCP integration for AI agents

This Actor is callable through Apify's official MCP server at https://mcp.apify.com (Bearer-token auth) or locally via npx @apify/actors-mcp-server, which lets an MCP client discover and run any Apify Actor โ€” including this one, by its ID Scraper-Engine/instagram-related-hashtag-stats-scraper-pay-per-events โ€” and page through its dataset results. Compatible with Claude, Claude Code, and any other MCP-aware agent client that supports Streamable HTTP or stdio transport.

No-code tools (n8n, Make, LangChain)

In n8n, use the Apify node (or the HTTP Request node against the Actor's run endpoint) to trigger a run and pull the resulting rows into your workflow. In Make, the Apify app module runs the Actor and passes its dataset output straight into your scenario. In LangChain, wrap the Actor with the built-in ApifyWrapper/ApifyActorsTool integration to load hashtag stats directly into a chain or agent.

Scraping publicly visible, aggregate hashtag data โ€” like post counts and related-tag lists โ€” is generally permitted, since this Actor returns no post authors, captions, or other personal data tied to identifiable individuals. Instagram Related Hashtag Stats Scraper only returns hashtag-level statistics visible to a logged-in session: total post counts and related-tag names with their post volumes. Because this is aggregate, business-facing data rather than personal data, database-rights and Instagram's own Terms of Service are the relevant framework here, not GDPR/CCPA-style personal-data rules. Consult legal counsel if your use case involves bulk storage or resale of this data.

Frequently asked questions

The top fields are postsCount, difficulty, hashtag, section, and the nested hashtags array (hash/info/mediaCount) inside the related-hashtag tiers โ€” see the full data fields table above.

Yes. Every run needs a real, logged-in Instagram sessionid cookie pasted into the input โ€” Instagram's hashtag endpoints reject anonymous requests, and there is no shared or hardcoded fallback session in the code. Without one, each hashtag produces an unbilled diagnostic row instead of real stats.

How many hashtags can I analyze in one run?

As many as you add to the urls_keywords array โ€” there's no hard cap in the input schema. Larger lists just take longer, since hashtags are processed one at a time with the delay_between_requests gap between each.

The Actor pushes one diagnostic dataset row with section: "error" and an error field explaining the reason (missing cookie, failed session warm-up, or no data returned), instead of failing the whole run. These diagnostic rows are not charged โ€” filter them out in your dataset by keeping only rows where section is not "error".

Can I scrape multiple Instagram hashtags at once?

Yes. urls_keywords accepts an array of hashtags, #tags, or tag URLs, and the Actor works through the full list in a single run.

Yes. It's reachable through Apify's official MCP server (https://mcp.apify.com) for MCP-aware clients like Claude, and callable as a plain HTTP endpoint by any other agent framework via the Apify API.

How does this compare to other Instagram hashtag stats scrapers?

Checked on Apify's Store on 2026-07-25, Apify's own instagram-hashtag-analytics-scraper returns a similar shape โ€” post counts plus frequent/average/rare related-hashtag tiers โ€” and its listing does not document a login/sessionid requirement, while this Actor requires one for every run since it authenticates as a real logged-in session rather than an anonymous request. That listing also prices optional topPosts/latestPosts samples starting at $1.40/1,000 results; this Actor instead bills per output row via the row_result pay-per-event, with diagnostic error rows left unbilled.

Yes. Output is typed, normalized JSON with consistent field names across runs โ€” no HTML, no CSS selectors. Pass it directly to an LLM, index it into a vector store, or feed it to an agent tool.

What happens when Instagram changes its layout or anti-bot system?

The Actor is maintained and its output schema is designed to stay stable across Instagram changes, since it reads Instagram's JSON API responses rather than parsing HTML. No specific fix turnaround time is promised.

Yes. The Actor makes direct HTTP requests to Instagram's own API โ€” no headless browser required โ€” and only adds SDK/datacenter/residential proxy tiers automatically if you turn on Proxy Configuration.

Which Instagram hashtag fields work best for AI training data and RAG indexing?

For RAG or agent context, hashtag, postsCount, difficulty, and the related-hashtag hash/info pairs give the most useful text-plus-number signal for hashtag recommendation. For training data, postsCount, mediaCount, and difficulty return as consistent typed primitives (integers and a fixed string enum) across every run.

Scraper NameWhat it extracts
Instagram Hashtag ScraperPosts and reels under a hashtag, section-by-section
Instagram Profile ScraperBio, follower counts, verification, recent posts
Instagram Reels Scraper Pay Per EventsReels per username with likes, comments, views
Instagram Mentions Scraper โ€” Inbound Tagged PostsPosts where others tag or @-mention a handle
Instagram Tagged Posts Scraper (Date & Engagement Analytics)Tagged posts with date/engagement filters and analytics

Your feedback

Found a bug or missing a field? Let us know through the Actor's Issues tab on Apify or your Scraper-Engine support channel โ€” reports like this directly shape the next update.