X (Twitter) Trends Scraper & Monitor - Countries & Cities
Pricing
from $0.15 / 1,000 trend returneds
X (Twitter) Trends Scraper & Monitor - Countries & Cities
X (Twitter) trending topics for 400+ countries and cities, with the snapshot time, rank, previous rank and how long each trend has been on the list. Watch mode returns only trends that entered the list since the last run. No login, no API key.
Pricing
from $0.15 / 1,000 trend returneds
Rating
0.0
(0)
Developer
NeverEmpty
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 days ago
Last modified
Categories
Share
Get the X (Twitter) trending topics for any of 400+ countries and cities (plus Worldwide): the rank, the exact time of each hourly snapshot, the rank in the snapshot before, and how long each trend has been on the list. Watch mode returns only the trends that entered the list since your last run, so a schedule can send alerts without duplicates. Built for social media managers, newsrooms, marketers, traders and AI agents that need to know what is trending on X right now.
- Countries and cities by name. Type
Japan,Tokyo,London, United Kingdom,USorjapan/tokyo. No WOEID numbers to look up. A place that is not available comes back as a free row with suggestions. - Every row has its snapshot time (
snapshotAt, UTC), not just the time the run happened. - Only new trends, on a schedule. With
onlyNew, later runs read every snapshot published since the last run and return only trends that were not in the snapshot just before (changeType: "new"). - How long it has been trending.
consecutiveSnapshots,trendingSinceandtrendingForHours, pluspreviousRankto see what is climbing. - History.
hoursBackreturns the hourly snapshots of up to the last ~20 hours. - Nothing is guessed. Tweet counts are
nullwhen the source does not show them (it showed none for 6,000 trends checked on 2026-10-09), never0. A blocked or unreadable page is a free row that says why. - No login, no API key, no browser.
Data comes from the public pages of trends24.in, which records X's trending list for each place about once an hour. Unofficial: not affiliated with X Corp. or trends24.in.
What you get
One row per trend per snapshot:
| Field | Example | Meaning |
|---|---|---|
location | Tokyo, Japan | The place |
locationSlug | japan/tokyo | The same as a slug (worldwide for Worldwide). You can paste it back into locations |
country, city | Japan, Tokyo | city is null for a country; both are null for Worldwide |
snapshotAt | 2026-10-08T19:08:06.092Z | When this snapshot of the list was taken (UTC) |
rank | 1 | Position in that snapshot (1-50) |
trend | #DevDayCommunity | The trending topic or hashtag |
isHashtag | true | The trend starts with # |
previousRank | 26 | Rank in the snapshot before; null if it was not in it (or this is the oldest snapshot) |
consecutiveSnapshots | 8 | Snapshots in a row, ending with this one, that have this trend |
trendingSince, trendingForHours | 2026-10-08T12:58:00.321Z, 6.2 | When that run of snapshots started. null when it started before the oldest snapshot on the page (streakStartsBeforePage: true) |
tweetCount, tweetCountText | null | Tweet count as a number and as shown, when the source shows one |
xSearchUrl | https://x.com/search?q=... | Opens the trend on X |
sourceUrl | https://trends24.in/japan/tokyo/ | The page that was read |
changeType | first-check / new | Watch mode only; null otherwise |
checkedAt | ISO time | When this run read the page |
A snapshot has 50 trends. Snapshots are about 52 minutes apart. When the site stores two snapshots a few seconds apart, only the newer one is used, so the same trend is never returned (or charged) twice for one hour.
Free rows (not charged)
status | When |
|---|---|
bad-input | The place is not on the list (with suggestions), matches two places (Birmingham: use united-kingdom/birmingham), or watch mode was started without a location |
unknown-location | The site has no page for that place (HTTP 404) |
no-new-snapshot | Watch mode: the site has not published a new snapshot since the last run |
no-new-trends | Watch mode: new snapshots, but no trend entered the list |
no-trends | The latest snapshot is empty |
blocked, unreadable | The page was refused, showed a check page (never solved), or was not a trends page for that place |
robots-disallowed | The site's robots.txt does not allow the page (it is read on every run) |
timed-out | The run was about to reach its timeout |
budget-reached | The run reached its maximum total charge; the row lists what was not returned |
If no location could be read, the run is not charged and ends with an error so your schedule notices.
Input
| Field | Default | Notes |
|---|---|---|
locations | empty = Worldwide (watch mode needs at least one) | Names, short codes (US, UK, JP), slugs or trends24.in addresses. Up to 50 per run. Duplicates are read once |
hoursBack | 0 = latest snapshot only | Also the snapshots taken up to N hours before the latest (max 24). Ignored in watch mode |
maxRank | 50 | Only the top N of each snapshot. In watch mode, "new" means new in this top N |
onlyNew | off | Watch mode (below) |
watchName | empty | Separate memory for separate schedules |
resetMonitoringState | off | Forget the watch memory at the start of this run |
Example: { "locations": ["united-states", "japan"] } returns 100 rows (the latest 50 trends of each).
Watch mode
- Run once with
onlyNew: trueand your locations: the latest snapshot of each comes back withchangeType: "first-check". - Create a Schedule with the same input (every hour fits how often the site updates).
- Later runs return only trends that entered the list since the last run (
changeType: "new"), each with the snapshot it entered in. Send them to Slack, email or a webhook with an Apify integration.
Trends not returned because the run hit its maximum total charge are not remembered, so the next run returns them. Do not run two schedules with the same watchName at the same time.
Pricing
Pay per event:
- Run start - once per run, only when at least one location's trends were read. This includes watch-mode runs that find nothing new. Not charged when every location is a free row, or when the run's maximum total charge has no room for the start fee plus one row (then nothing is requested at all).
- Trend - one per
okrow. Free rows are never charged.
The exact prices are shown on the Pricing tab.
How it reads the site
One page per location, at most 50 pages per run, with a pause between pages. robots.txt is read on every run and checked before each page. Check pages are never solved or bypassed.
Thanks for using this Actor
We build these tools for people who run them every day, and we improve them from what users tell us.
- Missing a field, or need another filter? Tell us in the Issues tab. If the data is there, we add it.
- Found a bug or a wrong value? Post the run ID in the Issues tab. Wrong data is the thing we fix first.
If this Actor saved you time, a short review helps other people find it.