The official X trends path is GET /2/trends/by/woeid/:id. Each WOEID maps to a city or country. X bills one trends read at $0.010 per location per call. This page lists the WOEIDs teams actually use, models multi-city polling cost, and shows where location-based trends stop short of a global feed.
X exposes trending topic names through a single location-scoped endpoint: GET /2/trends/by/woeid/:id. The response is a JSON array of topic strings ranked by volume within that geography. Nothing in the payload explains why a topic trended, and there is no worldwide WOEID that returns a single global list.
For the broader X API cost picture, see the X trending topics API and X API pay-per-use endpoint costs.
GET https://api.x.com/2/trends/by/woeid/{id}
Authorization: Bearer YOUR_ACCESS_TOKEN
A successful response returns a data array. Each element includes a trend_name string and a tweet_count field when X exposes volume for that location. Field availability varies by WOEID and account tier.
Example response structure:
{
"data": [
{"trend_name": "topic one", "tweet_count": 125000},
{"trend_name": "topic two", "tweet_count": 98000}
]
}
The endpoint returns names only. Tweet bodies, user objects, and engagement breakdowns require separate post-read calls at $0.005 each.
Teams monitoring multiple markets maintain a WOEID lookup table. The IDs below match values published in X developer examples and third-party geo references. Verify in the Developer Console before production use, since X occasionally deprecates location coverage.
| Market | WOEID | Scope |
|---|---|---|
| Worldwide (not available as one call) | n/a | No single WOEID |
| United States | 23424977 | Country |
| United Kingdom | 23424975 | Country |
| Canada | 23424775 | Country |
| Australia | 23424748 | Country |
| Germany | 23424829 | Country |
| France | 23424819 | Country |
| Japan | 23424856 | Country |
| India | 23424848 | Country |
| Brazil | 23424768 | Country |
| New York City | 2459115 | City |
| Los Angeles | 2442047 | City |
| London | 44418 | City |
| San Francisco | 2487956 | City |
| Tokyo | 1118370 | City |
Polling country-level WOEIDs captures national trending lists. City WOEIDs surface local events that never appear on the country list. A product monitoring both needs duplicate calls per interval.
X classifies GET /2/trends/by/woeid/:id as a Trends: Read at $0.010 per fetch. Unlike search endpoints, there is no per-result multiplication. One call returns the full trending list for that WOEID regardless of how many topic names appear.
| Polling pattern | Locations | Interval | Daily trends reads | Daily cost |
|---|---|---|---|---|
| US only | 1 | Every 30 min | 48 | $0.48 |
| US + UK + CA | 3 | Every 30 min | 144 | $1.44 |
| 10 major cities | 10 | Every 30 min | 480 | $4.80 |
| 15 markets | 15 | Every 15 min | 1,440 | $14.40 |
| 5 countries | 5 | Every hour | 120 | $1.20 |
Monthly cost scales linearly with location count and inversely with poll interval. A 15-market monitor on a 15-minute cadence spends roughly $432 per month on trends reads alone, with no post sampling or user resolution.
Location-scoped trends answer a different question than a global ranked feed. A breaking story in San Francisco may rank locally before it surfaces nationally. Political and sports events often show city-level spikes hours before country lists update.
Three workflow patterns justify multi-WOEID polling:
Each pattern multiplies the $0.010 per-call cost. Merging results also requires custom deduplication logic X does not provide.
The WOEID endpoint has structural gaps teams discover after wiring production monitors:
tweet_count may be null depending on location and API tier.For rank-change detection and cron scheduling on a single global feed, see monitoring X trending topics on a schedule.
When the goal is a ranked global topic list without WOEID tables or per-location billing, get_top_trends on Trends MCP returns live X trending data in one POST call:
{
"mode": "get_top_trends",
"type": "X (Twitter)",
"limit": 25
}
Response shape:
{
"as_of_ts": "2026-07-23T06:00:00Z",
"type": "X (Twitter)",
"data": [[1, "topic name"], [2, "another topic"]]
}
One request replaces 15 WOEID calls at $0.010 each ($0.15 per poll on the official API). The tradeoff is geography: the aggregated feed does not expose per-city breakdowns. Teams that need city-level lists still require WOEID polling or a geo-aware data provider.
The official WOEID endpoint remains the right path when the product requires X-native location scoping, tweet counts per trend where available, or integration inside an existing X developer project. The aggregated feed fits alerting, cross-platform dashboards, and AI assistant workflows that only need current ranked topic names.
FAQ