A hashtag report takes one Instagram hashtag and keeps watching it for you: it collects the posts using that tag into an archive that grows every time you look deeper, works out what the engagement actually looks like, labels how the captions sound, and lists the accounts that keep showing up. Reach for it once you have decided a hashtag matters and want to know whether it deserves a slot in your captions. Deciding which tag that should be is the job of Hashtag Research.
Before you start
You need an account with credits available. Starting a report costs credits, and so do the two ways of adding to it later: refreshing it and loading more posts. Current prices are on the pricing page.
You do not need to connect an Instagram account. Reports read public hashtag feeds. Nothing is published, and nothing is tied to a profile of your own.
Three things come from your plan, not from the module: how many posts one report may archive, how many reports you can track at once, and how long a finished report stays open before it needs a paid refresh. Sentiment analysis is a paid-plan feature too, though not a locked button: on the free plan reports are simply built without it, so the Sentiment box, filter and chart do not appear.
Run your first report
- Open Hashtag Reports from the sidebar, under Analyze.
- Type the tag into the Hashtag field. The
#is optional. Only letters, numbers and underscores survive. Anything else is stripped before the report is created, so#my brand!becomesmybrand. - Look at the button before you press it. For a tag you have not analyzed before it reads Analyze and carries the credit cost on it. If you already own a report for that tag it reads Open report, and costs nothing.
- Press it. You land on the report page straight away, usually while it is still being built ("Analyzing hashtag…"). The page fills itself in as soon as the data arrives.
- When it is ready, the header shows the tag, when its data was last fetched, and the two actions you will use from here on: Refresh and Enable Tracking.
Every report stays in the Recent reports list on the same page, newest data first. Re-sort it by date or name, click a row to open it, and use the row's menu for tracking settings or to delete it. Deleting is permanent and takes the tracking history with it; a report still being generated cannot be deleted until it finishes.
Build up the archive
The first run gives you what a single pass over the live hashtag feed returned. That is the floor, not the ceiling, and the archive only ever grows. No refresh, filter or plan change removes a post you have already collected.
Load More Posts sits under the post grid, on its last page only, so you are never offered more posts while earlier pages are still unread. It costs credits, reaches further back into the feed, and adds whatever it finds that you do not already hold.
Refresh, in the report header, does two jobs at once: it pulls in posts published since your last look, and it re-reads the likes, comments and views on the posts you already archived. When it finishes, a message tells you exactly what the credit bought. A refresh that finds nothing new is still doing the second job, and says so rather than looking like a no-op. Afterwards the button reads Refreshed for a short cooldown, and its tooltip says when it will be available again.
Above the grid, an Archive gauge shows how full the archive is against your plan's limit, warning you when room is running out. At the limit it reads Archive full: refreshes still update the numbers on what you hold, but stop collecting new posts. Nothing is deleted when that happens. It is a ceiling, not a purge.
Track a hashtag over time
Tracking refreshes a report on a schedule, so its history builds up without you remembering to click anything.
- Open the tracking panel with Enable Tracking in the report header, or with Enable tracking from the row menu in the reports list.
- Pick one of three cadences: daily, every three days, or weekly. Each shows an estimated monthly credit spend, because the number that matters here is the recurring one, not the one-off.
- Confirm. Turning tracking on costs credits once, and each automatic refresh afterwards costs the same as a refresh you run by hand.
- Changing the cadence later is free. Stop tracking ends the refreshes and their charges, and everything already collected stays where it is.
An automatic refresh is charged only when it actually brings back fresh data. Each one appends a single point to the report's history. One point per cycle is what keeps the sentiment chart comparable.
Reading the results
Four boxes run across the top of a ready report.
Total Posts counts the posts in your archive and gives a posts-per-day average. The line underneath is the one that matters: it states how many days you actually observed against the calendar span those posts cover. If the archive was collected in separate bursts, the average uses only the observed days, because a gap in collection is not a quiet day on the hashtag.
Avg. Engagement gives average likes, with average comments underneath. The helper line tells you how many posts the average was taken over and the age cut-off it applied: very recent posts are still gathering likes, so they are held out until they have matured. That is why the average can cover fewer posts than the archive holds.
Sentiment shows the dominant label and the share of positive posts. It is built from per-post labels rather than one summary pass, which is why you can filter the grid down to the negative posts and read them yourself.
Top Post Likes is the best performing post in the archive. If its subtitle says "as of" a date, the live feed has stopped serving that post back and its counters are frozen at the moment we last saw it. You still have the post, you just know its numbers stopped moving.
Sentiment over time appears under the boxes once tracking has produced at least two days carrying a sentiment reading. Below it, the archive grid filters by content type and sentiment together, sorts by date, likes, comments or views, and switches between a grid and a list. A post marked as no longer in the live feed is one the archive is keeping for you after Instagram stopped returning it. Click any post for the full-size version, its caption, its counters and a link out to Instagram.
Top Creators closes the report. Sort by Posts to see who drives the tag by volume, and by Likes or Views to see who gets traction on it. Those are rarely the same accounts, and the gap between them is usually the most useful thing on the page.
One habit worth forming: read every average against the coverage line first. A posts-per-day figure over three observed days is a guess; the same figure over a tracked month is a fact. A shorter overview of the module sits on the Hashtag Reports page.
What this does not do
- Instagram only. There is no hashtag report for TikTok, YouTube or X.
- It does not find hashtags for you. A report analyses a tag you already named. Discovery, tiers and opportunity scoring live in Hashtag Research.
- It is not a live feed. Every number is as of the last fetch, and moves only when you refresh or a tracked cycle runs.
- There is no export. Reports are read in the app.
- Tracking runs on fixed cadences, not at a time of day you choose.
- Sentiment needs a paid plan, and archive size, tracked-report count and how long a report stays open all follow your plan.
When something looks wrong
The report says "Processing seems stuck." The job that builds it has been pending longer than it should. Use the retry button on that screen. It restarts the processing without charging you again.
Nothing was retried and the report never finished. A generation killed halfway by a timeout or a restart leaves the report at pending with nothing to show and no error to read, so it is swept up rather than left there. A check runs every quarter of an hour, and any report still pending half an hour after it last moved is marked as failed and refunded the credits it was charged, at the price actually paid rather than today's price. The refund carries a key that makes the sweep safe to run again, so the same report is never credited twice. It is also the reason a report still generating cannot be deleted: the sweep still owes it that refund.
The report failed with "Couldn't analyze." Instagram's hashtag feed is sometimes restricted or empty, especially for very new or very obscure tags. Try again runs a paid refresh, but any fetch that comes back with nothing is refunded automatically. The same goes for a load-more that adds nothing or errors out.
The report says it has expired. Its data window has closed. Nothing was deleted: your archive, history and tracking wait behind the Refresh and reopen button, which pulls current numbers and opens the report for another window. That paid refresh is the only way back in.
Tracking switched itself off. A scheduled refresh could not be paid for. Top up your credits and enable tracking again from the report header. The history you collected is untouched.
If something behaves differently from what is described here, tell us on the support page, with the hashtag and roughly when you ran the report.