Instagram Hashtag Research & Related Hashtags
Pricing
from $50.00 / 1,000 hashtag analyzeds
Instagram Hashtag Research & Related Hashtags
Find the Instagram hashtags real posts use together with yours. Type a hashtag and recent public posts are fetched for you (or bring your own), then related hashtags are ranked by co-occurrence with a top-10 list, engagement averages and a competition tier. No AI guessing.
Pricing
from $50.00 / 1,000 hashtag analyzeds
Rating
0.0
(0)
Developer
Turgay NANTA
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
a month ago
Last modified
Categories
Share
Instagram Hashtag Research: Find Related Hashtags from Real Posts
Guessing hashtags is how posts get buried. Generic generators hand you the same 30 popular tags everyone else uses, with no idea whether real posters in your niche actually use them together.
This Actor finds the hashtags that real Instagram posts in your niche use together with your hashtag, ranks them by how strongly they co-occur, and tells you which to add first. Type a hashtag and the Actor fetches its recent public posts for you, or bring your own post data.
- Live mode: type up to 10 hashtags; recent public posts are fetched with Apify's Instagram Hashtag Scraper.
- Bring-your-own mode: paste posts or connect any Instagram scraper dataset. No extra fetching cost.
- Data-based, not AI-guessed: every suggestion is counted from real captions, with its co-occurrence ratio.
- Competition tiers: add total post counts and each seed gets a nano / micro / mid / macro / mega tier with a usage strategy.
At a glance
| Input | Hashtags to research (live), or Instagram posts with captions |
| Output | Per hashtag: ranked related hashtags, top 10 recommendations with relevance, engagement averages, competition tier and strategy |
| Method | Co-occurrence counting over real captions (deterministic, no LLM) |
| Extra outputs | RELATED_POOL (merged related tags across all seeds) and RUN_SUMMARY in the key-value store |
| Pricing | Pay per analyzed hashtag; live fetching is billed by the scraper at its own price |
| Runs on | Apify Console, API, schedules, n8n, Make, Zapier, AI agents via MCP |
Quick start
- Type a hashtag in Hashtags to research, for example
veganrecipes. - Choose Posts per hashtag (100 is a good start; more posts give steadier results).
- Click Start, then open the Dataset tab and read
recommended_hashtags.
What one output record looks like
{"hashtag": "filtercoffee","post_count": null,"competition_tier": "unknown","strategy": {"action": "MEASURE_FIRST", "reason": "no post count, competition unmeasured; fetch post_count first"},"recommended_hashtags": [{"rank": 1, "tag": "specialtycoffee", "relevance": "moderate", "co_occurrence_ratio": 0.31},{"rank": 2, "tag": "coffeetime", "relevance": "moderate", "co_occurrence_ratio": 0.27},{"rank": 3, "tag": "homebrewing", "relevance": "weak", "co_occurrence_ratio": 0.12}],"related_hashtags": [{"tag": "specialtycoffee", "co_occurrence": 31, "co_occurrence_ratio": 0.31}],"engagement": {"sample_size": 100, "avg_likes": 41.2, "avg_comments": 2.3, "avg_engagement": 43.5}}
Values are illustrative; your run reports its own. Every number is counted from the posts in that run.
Why co-occurrence beats a hashtag generator
A hashtag generator answers "what is popular?". That is the wrong question. Popular tags such as #coffee have tens of millions of posts; a new post there is gone in minutes.
The useful question is: "When people post about my exact topic, which other tags do they add?" Those tags describe the same audience, and many of them are small enough for your post to stay visible.
This Actor answers that question by counting. For your seed hashtag it looks at every post that contains it, counts every other hashtag in those captions, and reports:
co_occurrence: in how many of those posts the tag appears,co_occurrence_ratio: the share of seed posts containing it (0-1), comparable across seeds,relevance:strong(50% or more),moderate(25-50%),weak(below 25%).
Because it is counted from captions, you can trace every suggestion back to real posts. Nothing is invented.
Generator vs. co-occurrence research
| Typical hashtag generator | This Actor | |
|---|---|---|
| Source of suggestions | A fixed list or a language model | Captions of real posts under your hashtag |
| Can you check why a tag is suggested? | No | Yes: count and ratio per tag |
| Adapts to your niche | Loosely | Directly: only posts with your seed are counted |
| Shows competition level | Rarely | Tier and strategy when you add post counts |
| Changes with trends | Only when the list is updated | Every run, from current posts |
Who it is for
- Creators and influencers who want reach without guessing.
- Social media managers who need a documented, repeatable hashtag method per client.
- Small brands and e-commerce shops launching products on Instagram.
- Marketing analysts who study communities and sub-niches through the tags people use.
- Developers and automation builders who need hashtag suggestions as structured data in their own tools.
Glossary
- Seed: the hashtag you are researching.
- Co-occurrence: a related tag appearing in the same caption as the seed.
- Co-occurrence ratio: the share of seed posts that contain the related tag.
- Relevance: a label for the ratio: strong (50%+), moderate (25-50%), weak (under 25%).
- Tier: the size class of a hashtag by its total post count on Instagram.
- Related pool: all related tags across your seeds, merged and ranked.
Competition tiers and strategy
If you provide total post counts for your seed hashtags (the number Instagram shows on the hashtag page) in Post counts, each seed gets a tier and a recommended action:
| Tier | Total posts | Action | Why |
|---|---|---|---|
| nano | under 10k | EXPAND | Very narrow reach; combine with 2-3 related tags |
| micro | 10k-100k | USE | Low competition and enough volume: best chance of being discovered |
| mid | 100k-500k | MIX | Moderate competition; balance with micro tags |
| macro | 500k-5M | MIX | Posts get buried fast; add only 1-2 to a micro-weighted mix |
| mega | 5M and above | SPRINKLE | Invisible alone; use as a sprinkle, not a primary tag |
| unknown | not provided | MEASURE_FIRST | Add the post count to get a tier |
A practical mix for most accounts: 3-5 micro tags from the recommendations, 2-3 mid tags, and at most 1-2 macro or mega tags.
Worked example: a hashtag set for a new coffee post
Say you run a small roastery and are posting a pour-over photo.
- Research three candidate seeds in one live run:
pourover,filtercoffee,homebarista, 200 posts each. - Read
recommended_hashtagsfor each. Tags that appear near the top for two or more seeds (for examplespecialtycoffeeorcoffeebrewing) describe your core audience. - Add post counts for the six or seven tags you like, from the Instagram hashtag pages, and run again with
postCountsfilled. Now each seed shows its tier. - Build the set: keep 3-5 micro tags with
strongormoderaterelevance, 2-3 mid tags, and one macro tag at most. Drop anythingweak. - Save
RELATED_POOLas your hashtag bank and rotate tags between posts so you do not repeat the exact same block every time.
Total cost for step 1 at the prices below: about $1.71 for 600 posts and three analyses.
Reading the results
co_occurrence_ratiois the key number. 0.40 means 40% of posts with your seed also used that tag. That is a strong audience overlap.- Rank alone can mislead. In a sample of 20 posts, one account posting five times can push its private tags into the top 10. Look at the ratio, and use at least 100 posts for broad seeds.
engagementdescribes the sample, not your account. It tells you what typical posts under this seed receive, which is useful to compare seeds against each other.- Tags that repeat across seeds are your core. Tags that appear under only one seed are your angles for specific posts.
- Very generic tags at the top (
love,instagood) mean the seed itself is broad. Pick a more specific seed.
Hashtag checklist before you post
- Every tag describes this post, not just your account
- Most tags are micro or mid, with
strongormoderaterelevance - No more than 1-2 mega tags
- No banned or spammy tags (check the tag page on Instagram if unsure)
- The set differs from your previous post by at least a few tags
- Location or community tags added where they fit
Use cases
Creators and small brands
Before a post, research your main topic tag and take the top recommendations as a starting set. Repeat monthly: niches drift, and co-occurrence shows it.
Social media managers and agencies
Run one research per client niche, save the RELATED_POOL, and build a documented hashtag bank per client. The co-occurrence ratio is an easy number to justify in a client report.
E-commerce and product launches
Research the tags real buyers and reviewers use around your product category (#skincareroutine, #homebarista) rather than the tags your brand wishes they used.
Influencer discovery prep
Related tags point to adjacent sub-communities. Use them as search terms in your influencer research to find creators outside the obvious big tags.
Competitor and trend monitoring
Schedule the Actor weekly on your category tags. When a new tag climbs the recommendation list, a sub-trend is forming.
How it works
- Collect posts. Live mode calls Apify's Instagram Hashtag Scraper for your hashtags (recent public posts, up to 500 per tag). In bring-your-own mode, your posts are used as they are.
- Normalize. Captions are parsed; hashtags are lowercased and cleaned (Unicode letters, digits and underscores). Hidden like counts are excluded instead of being counted as zero.
- Pick seeds. Live mode analyzes the hashtags you typed. In bring-your-own mode you can name seeds, or the three most frequent tags in your data are chosen automatically.
- Count co-occurrence for each seed and rank related tags.
- Recommend the top 10 with a relevance label.
- Measure engagement of the sample: average likes, comments and interactions per post.
- Assign tier and strategy when you provide post counts.
- Merge related tags across all seeds into
RELATED_POOL.
Input
| Field | Description |
|---|---|
hashtags | Live mode: up to 10 hashtags, with or without #. Leave empty to use your own posts. |
postsPerHashtag | Live mode: recent posts fetched per hashtag, 10-500. Default 100. |
posts | Bring-your-own mode: Instagram posts with at least a caption. likesCount, commentsCount, timestamp, url are optional. Output of any Instagram scraper works. |
seedHashtags | Bring-your-own mode: which hashtags to analyze. Empty = the three most frequent tags in your posts. |
postCounts | Optional total post counts per seed, e.g. {"filtercoffee": 850000}, to get tiers. |
relatedLimit | Maximum related hashtags per seed. Default 30. |
Live mode example
{"hashtags": ["veganrecipes", "plantbasedmeals"],"postsPerHashtag": 200,"postCounts": {"veganrecipes": 12000000, "plantbasedmeals": 310000}}
Bring-your-own example
{"posts": [{"caption": "Sunday brew #filtercoffee #specialtycoffee #v60", "likesCount": 120},{"caption": "New beans #filtercoffee #homebrewing", "likesCount": 45}],"seedHashtags": ["filtercoffee"]}
Output
Dataset (one record per analyzed hashtag)
| Field | Description |
|---|---|
hashtag | The seed |
post_count | The total post count you provided, or null |
competition_tier | nano, micro, mid, macro, mega or unknown |
strategy | {action, reason} for this tier |
recommended_hashtags | Top 10: rank, tag, relevance, co_occurrence_ratio |
related_hashtags | Up to relatedLimit: tag, co_occurrence, co_occurrence_ratio |
engagement | sample_size, avg_likes, avg_comments, avg_engagement |
Key-value store
RELATED_POOL: related tags merged across all seeds (up to 100).RUN_SUMMARY: seeds analyzed, number of input posts, whether post counts were provided.
Export the dataset as JSON, CSV, Excel or HTML.
Pricing
This Actor charges per event. Current prices are on the Pricing tab; at the time of writing:
| Event | When | Price |
|---|---|---|
actor-start | Once per run | $0.0001 |
hashtag-analyzed | Per seed hashtag analyzed | $0.05 |
In live mode, posts are fetched by Apify's Instagram Hashtag Scraper, which bills your account separately at its own published price (about $0.0026 per post on the free plan, lower on paid plans).
| Scenario | This Actor | Post fetching | Total (approx.) |
|---|---|---|---|
| 1 hashtag, your own posts | $0.05 | $0 | $0.05 |
| 1 hashtag, 100 live posts | $0.05 | $0.26 | $0.31 |
| 3 hashtags, 200 live posts each | $0.15 | $1.56 | $1.71 |
If no posts can be fetched, this Actor charges nothing.
Integrations
API
curl -X POST "https://api.apify.com/v2/acts/enezli~instagram-hashtag-discovery/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"hashtags":["veganrecipes"],"postsPerHashtag":100}'
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")run = client.actor("enezli/instagram-hashtag-discovery").call(run_input={"hashtags": ["veganrecipes"], "postsPerHashtag": 100})for rec in client.dataset(run["defaultDatasetId"]).iterate_items():print(rec["hashtag"], [r["tag"] for r in rec["recommended_hashtags"]])
Chain after your Instagram scraper
Already scraping Instagram? Add an integration that passes your scraper's dataset items as posts. You then pay only for the analysis.
n8n, Make, Zapier
Use the Apify node: Run Actor → Get dataset items → write recommended_hashtags to Google Sheets or Notion as your hashtag bank.
AI agents (MCP)
Available through the Apify MCP server, so an assistant can research a hashtag and suggest a set for a caption it is drafting.
Tips
- Use more posts for broad tags. For a tag with millions of posts, 200-500 posts give steadier ratios than 50.
- Research the specific tag, not the generic one.
#pourovercoffeetells you more about your audience than#coffee. - Add post counts for the tags you are considering to see which are micro (best odds).
- Re-run monthly. Co-occurrence changes as trends move.
- Check relevance, not just rank. A
weaktag with a low ratio is probably a coincidence in the sample.
Limitations
- Live mode uses recent public posts only; private accounts are never included.
- The competition tier needs total post counts from you; the Actor does not fetch hashtag totals.
- Results reflect the sample. Small samples (under 30 posts per seed) can be noisy.
- Instagram may limit how many posts are available for very new or restricted hashtags.
Workflow recipes
Monthly hashtag bank refresh. Schedule a run on the first day of each month with your 5-10 core tags and 200 posts each. Send RELATED_POOL to a Google Sheet. Compare with last month to see which tags rose or fell.
Client onboarding for agencies. For each new client, run live mode on their 3 main topic tags, add post counts for the top 15 candidates, and deliver the tiered list as part of the onboarding report.
Campaign prep. Before a launch, research the tags around the product category and around the problem it solves. The overlap between the two lists is where your buyers talk.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| Run stops with "No public posts could be fetched" | The hashtag is new, restricted or misspelled | Check the tag on Instagram; try a close variant |
| Recommendations look random | Too few posts or a very generic seed | Raise postsPerHashtag; choose a more specific seed |
Tier is unknown | No post count provided | Fill postCounts for that seed |
| My own seeds are ignored in live mode | Live mode analyzes the tags in hashtags | Put your seeds in hashtags, or clear it to use posts |
| Averages are null | The sample had hidden likes or comments | This is expected; hidden values are not counted as zero |
FAQ
Can I use it for TikTok or other platforms?
The analysis works on any posts with captions containing #tags. Pass TikTok or other captions as posts in bring-your-own mode; live mode fetches Instagram only.
How recent are the live posts? The scraper returns recent public posts for each hashtag, as Instagram lists them at run time.
Why pay per hashtag instead of per post? The analysis cost does not grow with the number of posts, so you can use large samples for reliable ratios without paying this Actor more. Only the fetching scales with posts.
Can I get the raw posts too? Yes. In live mode the fetched posts are in the scraper's own run in your account (Runs tab), which you can open and export.
Does it work for non-English hashtags? Yes. Hashtags with Unicode letters (Turkish, German, Spanish, Arabic script and others) are parsed and counted the same way.
Can I exclude my own account's posts?
In bring-your-own mode, filter them out before passing posts. In live mode, all recent public posts under the tag are counted.
Does this Actor scrape Instagram itself? No. In live mode it calls Apify's Instagram Hashtag Scraper, which handles the fetching. This Actor does the analysis. In bring-your-own mode, nothing is fetched.
Is it an AI hashtag generator? No. Suggestions are counted from real captions. There is no language model involved, so every tag can be traced back to posts.
Why is the tier "unknown"? Because no total post count was provided for that seed. Add it under Post counts.
Can I analyze my competitors' hashtags?
Yes. Collect their public posts with any Instagram scraper and pass them as posts; seeds default to their most used tags.
Do hidden likes break the averages? No. Hidden or negative like counts are excluded rather than counted as zero.
How many hashtags per run? Up to 10 in live mode. In bring-your-own mode there is no fixed limit on seeds you name.
Is my data stored? Only in your own Apify storage, under your account's retention settings.
What if a hashtag returns no posts? The run stops with a clear message and this Actor charges nothing.
What's new
- Live mode: type hashtags and the Actor fetches recent public posts for you through Apify's Instagram Hashtag Scraper, then runs the analysis. No need to run a separate scraper first.
- No required fields: the Actor runs with sensible defaults, so you can try it in one click and AI agents can call it without a schema lookup.
- Clearer pricing examples for both modes.
Feedback and feature requests are welcome on the Issues tab; requests with a sample input are handled fastest.
Trademarks
This Actor is not affiliated with, endorsed by, or connected to Instagram or Meta. All product names are trademarks of their respective owners.