X (Twitter) Trends Scraper & Monitor - Countries & Cities avatar

X (Twitter) Trends Scraper & Monitor - Countries & Cities

Pricing

from $0.15 / 1,000 trend returneds

Go to Apify Store
X (Twitter) Trends Scraper & Monitor - Countries & Cities

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

NeverEmpty

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

13 days ago

Last modified

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, US or japan/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, trendingSince and trendingForHours, plus previousRank to see what is climbing.
  • History. hoursBack returns the hourly snapshots of up to the last ~20 hours.
  • Nothing is guessed. Tweet counts are null when the source does not show them (it showed none for 6,000 trends checked on 2026-10-09), never 0. 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:

FieldExampleMeaning
locationTokyo, JapanThe place
locationSlugjapan/tokyoThe same as a slug (worldwide for Worldwide). You can paste it back into locations
country, cityJapan, Tokyocity is null for a country; both are null for Worldwide
snapshotAt2026-10-08T19:08:06.092ZWhen this snapshot of the list was taken (UTC)
rank1Position in that snapshot (1-50)
trend#DevDayCommunityThe trending topic or hashtag
isHashtagtrueThe trend starts with #
previousRank26Rank in the snapshot before; null if it was not in it (or this is the oldest snapshot)
consecutiveSnapshots8Snapshots in a row, ending with this one, that have this trend
trendingSince, trendingForHours2026-10-08T12:58:00.321Z, 6.2When that run of snapshots started. null when it started before the oldest snapshot on the page (streakStartsBeforePage: true)
tweetCount, tweetCountTextnullTweet count as a number and as shown, when the source shows one
xSearchUrlhttps://x.com/search?q=...Opens the trend on X
sourceUrlhttps://trends24.in/japan/tokyo/The page that was read
changeTypefirst-check / newWatch mode only; null otherwise
checkedAtISO timeWhen 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)

statusWhen
bad-inputThe 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-locationThe site has no page for that place (HTTP 404)
no-new-snapshotWatch mode: the site has not published a new snapshot since the last run
no-new-trendsWatch mode: new snapshots, but no trend entered the list
no-trendsThe latest snapshot is empty
blocked, unreadableThe page was refused, showed a check page (never solved), or was not a trends page for that place
robots-disallowedThe site's robots.txt does not allow the page (it is read on every run)
timed-outThe run was about to reach its timeout
budget-reachedThe 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

FieldDefaultNotes
locationsempty = 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
hoursBack0 = latest snapshot onlyAlso the snapshots taken up to N hours before the latest (max 24). Ignored in watch mode
maxRank50Only the top N of each snapshot. In watch mode, "new" means new in this top N
onlyNewoffWatch mode (below)
watchNameemptySeparate memory for separate schedules
resetMonitoringStateoffForget 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

  1. Run once with onlyNew: true and your locations: the latest snapshot of each comes back with changeType: "first-check".
  2. Create a Schedule with the same input (every hour fits how often the site updates).
  3. 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 ok row. 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.