WEIR

Twitter Hashtag Tracker: Track a Hashtag Free (2026)

A free Twitter hashtag tracker you run yourself: X's Latest tab, a Python script that counts posts per hour and ranks top posts, and daily alerts.


Published · Updated · 7 min read

Cover image: One hashtag, ranked by likes

The simplest Twitter hashtag tracker is free: search the hashtag on X and open the Latest tab.

A tracker should also count the posts and rank the best ones, and the Latest tab can't.

This guide is for anyone following a campaign or event tag on X (Twitter). You get the free method, a script that counts and ranks posts, and alerts. We run Weir, the API it calls.

This call returns the newest posts with a hashtag:

curl -s https://api.weirapp.io/v1/x/search \
  -H "Authorization: Bearer $WEIR_API_KEY" -H "Content-Type: application/json" \
  -d '{"hashtags": ["WorldSeries"], "limit": 3}'
  1. Search on LatestType the hashtag and save the search.
  2. Narrow the resultsDates, a likes floor, no replies.
  3. Pull posts by APIWeir's search takes a hashtags filter.
  4. Count and rankPosts per hour, then the most liked.
  5. Get alertsA monitor checks the tag on a schedule.

Step 1: Track a hashtag free on X's Latest tab

Type the hashtag into X's search box, then pick Latest. Top is X's own ranking, while Latest puts the newest posts first, which is what you need.

In the X app, tap the overflow menu on the results and save the search. X's page on saving searches says they're "currently not available on x.com," so on the web, bookmark the results page instead.

By hand you can read every post, but you get no totals.

Step 2: Narrow the hashtag with search operators

Operators turn a noisy tag into a list you can read. Type them after the hashtag:

#WorldSeries since:2026-10-21 until:2026-10-22 min_faves:100 -filter:replies
  • since: and until: take calendar days in UTC, and until: leaves its own day out.
  • min_faves:100 keeps posts with at least 100 likes.
  • -filter:replies drops replies, so you see original posts and quotes.

Our X advanced search builder writes these for you from a form. The search operators guide lists the rest.

Step 3: Pull every post with a hashtag by API

Weir's search takes a hashtags field. You can pass up to 10 tags, with or without the #, and a post matches if it has any of them.

We ran the call from the top of this page late on 21 October 2026, UTC:

12 secspanned by the three newest posts
4credits: 1 for the call, 1 per post
0posts missing a view count, this time

All three posts came from personal accounts, so we leave them out. Then we added "fromUsers": ["MLB"] to keep the league's own account.

That returned three @MLB posts for 4 credits. The most liked, trimmed:

{
  "id": "2113025472854716603",
  "text": "Better mustache: Logan Henderson or Bernie Brewer 🤔\n\n#WorldSeries ...",
  "url": "https://x.com/MLB/status/2113025472854716603",
  "createdAt": "2026-10-21T21:51:45.000Z",
  "author": { "username": "MLB", "followersCount": 13743497 },
  "likeCount": 393,
  "viewCount": 50018,
  "entities": { "hashtags": ["WorldSeries"] }
}

entities.hashtags lists the post's tags without the #. viewCount is X's view count, and it can be null.

Step 4: Build a Twitter hashtag tracker in Python

This script gives you posts per hour and the most liked posts for one day of a tag. Save it as track_hashtag.py, starting with the fetch:

import os, time, collections, requests

API = "https://api.weirapp.io/v1/x/search"
HEADERS = {"Authorization": f"Bearer {os.environ['WEIR_API_KEY']}"}

def hashtag_posts(body, max_pages=50):
    for _ in range(max_pages):  # each page costs 1 credit + 1 per post
        r = requests.post(API, json=body, headers=HEADERS, timeout=60)
        r.raise_for_status()  # a 402 means out of credits: stop
        page = r.json()
        yield from page["data"]
        if not page["meta"]["nextCursor"]:
            return
        body = {**body, "cursor": page["meta"]["nextCursor"]}
        time.sleep(4)  # 15 search pages a minute fits the free tier's limit

A null cursor is the only stop, as Weir's pagination docs say, and the last call is often an empty page. With about 20 posts a page, max_pages=50 caps a run near 1,000 posts.

If a run hits the cap, your counts miss the oldest posts, so narrow the window.

The second part sets the window, then counts and ranks:

body = {"hashtags": ["WorldSeries"], "limit": 100,
        "since": "2026-10-21T00:00:00Z", "until": "2026-10-22T00:00:00Z"}
posts = list({p["id"]: p for p in hashtag_posts(body)}.values())  # no repeats

per_hour = collections.Counter(p["createdAt"][:13] for p in posts)
for hour, count in sorted(per_hour.items()):
    print(hour, count)

for p in sorted(posts, key=lambda p: p["likeCount"] or 0, reverse=True)[:5]:
    print(p["likeCount"], p["url"])

views = sum(p["viewCount"] or 0 for p in posts)
unknown = sum(p["viewCount"] is None for p in posts)
print(f"{len(posts)} posts, {views:,} views, {unknown} with no view count")

Fed the three @MLB posts from Step 3, it prints:

2026-10-21T21 1
2026-10-21T22 1
2026-10-21T23 1
393 https://x.com/MLB/status/2113025472854716603
235 https://x.com/MLB/status/2113039132058665394
74 https://x.com/MLB/status/2113042751914692718
3 posts, 120,449 views, 0 with no view count

If you want posts per day, change [:13] to [:10].

What does Twitter hashtag analytics cost?

You pay 1 credit per page plus 1 per post. At about 20 posts a page, 1,000 posts cost about 1,050 credits.

Your 5,000 free Weir credits each month cover about 4,760 posts. A busy event tag can pass that in a day.

Each way to track a hashtag, as of October 2026:

Route You get How fresh Cost
X Latest tab Posts to read Live, by hand Free
Weir script Counts, top posts When you run it $0.105 to $0.21 per 1,000 posts
TwitterAPI.io Posts by API When you run it $0.15 per 1,000 tweets
X API search Posts by API When you run it $5 per 1,000 posts
X counts endpoint Volume per hour Last 7 days $0.005 a request
Metricool tracker Reports 7 days back on X €25 a day per network

Our pick: use the Latest tab to watch, the script for a campaign report, and X's counts endpoint if you need volume alone. The X API cost calculator prices bigger jobs.

Step 5: Set up a Twitter hashtag monitor

A monitor runs a saved search on a schedule and keeps only posts it hasn't shown you. This one checks the tag daily:

curl --request POST --url https://api.weirapp.io/v1/monitors \
  --header "Authorization: Bearer $WEIR_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{"name": "WorldSeries tag", "schedule": "daily",
    "target": {"kind": "search", "query": "#WorldSeries", "sources": ["x"]}}'
  • Daily works on the free tier, which allows one monitor. Hourly needs any $5 purchase.
  • A run costs 1 credit plus 1 per new post. Posts it already showed you cost nothing.
  • Each run reads one page of the newest matches, about 20 on X. Count busy tags with the script instead.
  • A webhook can push new posts to you, as the monitor docs show.

If your hashtag tracker misses posts

  • The tag has variants. #WorldSeries and #WorldSeries2026 are separate tags, so list both in hashtags.
  • A 402 stops the script. You're out of credits until a pack or next month's free grant.
  • Page two returns a 400. You must send the cursor with the same body that made it.
  • Some posts never show. X's Help Center says it "may not show every post in search results," and protected posts stay hidden.

When not to use Weir

  • Volume is all you need. X's counts endpoint gives hourly counts at $0.005 a request.
  • You need posts within seconds. X's filtered stream pushes matches in about 4 to 5 seconds.
  • Price per post comes first. TwitterAPI.io lists $0.15 per 1,000 tweets, and its API can post.
  • You'd rather buy reports. Metricool's Hashtag Tracker costs €25 a day per network.

Weir reads public posts and can't post. X's Terms of Service say you "cannot scrape the Services without X's express written permission," so check what applies to you. This isn't legal advice.

FAQ

Is there a free Twitter hashtag tracker?

Yes. X's own search is a free X hashtag tracker: type the tag, pick Latest and save the search. For counts, your 5,000 free Weir credits a month cover about 4,760 posts. X Pro, once TweetDeck, now needs Premium+.

How do I see Twitter hashtag analytics?

X shows you likes, reposts and views on each post, not totals for a tag. Pull the posts by API and count them, as in Step 4. For volume alone, use X's counts endpoint.

Can I see how many impressions a hashtag got?

Not as one number. You get views per post, and some posts come back with no view count. A sum of views is a floor, and it isn't reach, since one person can see many posts.

Is there a real time Twitter hashtag tracker?

Not by polling. Weir's monitors run hourly at best, and a script runs when you start it. X's filtered stream delivers matching posts in about 4 to 5 seconds. TwitterAPI.io's filter rules can check as often as every 0.05 seconds.

Sources

All checked on 22 October 2026: