{
  "data": {
    "id": "OmGd5pPiMJWniHoUW",
    "actId": "mipelXF4sTs2Hzgga",
    "userId": "IYgBDiXtHOijAaUel",
    "startedAt": "2026-11-02T08:53:10.031Z",
    "finishedAt": "2026-11-02T08:53:18.865Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CLI"
    },
    "stats": {
      "durationMillis": 8758,
      "runTimeSecs": 8.758,
      "computeUnits": 0.00973111111111111,
      "imageSizeBytes": 342201856
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "createdByOrganizationMemberUserId": "QYo53EZkJk0prePWY",
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"X Trends by Location\",\n  \"description\": \"Get the ranked trending topics of any country or city on X, or list every place X publishes trends for. No login, cookies or API key needed.\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"properties\": {\n    \"mode\": {\n      \"title\": \"Mode\",\n      \"type\": \"string\",\n      \"editor\": \"select\",\n      \"description\": \"Choose whether to collect the current trends or list the places X publishes trends for.\",\n      \"enum\": [\n        \"trends\",\n        \"locations\"\n      ],\n      \"enumTitles\": [\n        \"Trends now by location\",\n        \"List all available locations\"\n      ],\n      \"default\": \"trends\",\n      \"prefill\": \"trends\"\n    },\n    \"locations\": {\n      \"title\": \"Locations\",\n      \"type\": \"array\",\n      \"description\": \"Countries, cities, country codes, slugs or WOEIDs (mode=trends). Examples: Worldwide, United States, US, United Kingdom, GB, London, Tokyo, sao-paulo, 23424977. Put \\\"all\\\" to collect every location. Add a country after a comma when two places share a name, for example \\\"Barcelona, ES\\\".\",\n      \"editor\": \"stringList\",\n      \"default\": [\n        \"Worldwide\"\n      ],\n      \"prefill\": [\n        \"Worldwide\"\n      ],\n      \"example\": [\n        \"United States\",\n        \"GB\",\n        \"London\",\n        \"sao-paulo\",\n        \"23424977\"\n      ]\n    },\n    \"allLocations\": {\n      \"title\": \"All available locations\",\n      \"type\": \"boolean\",\n      \"description\": \"Collect trends for every place X serves (currently 467 countries and cities, up to 50 trends each). When enabled, the Locations list is ignored.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"maxTrendsPerLocation\": {\n      \"title\": \"Maximum trends per location\",\n      \"type\": \"integer\",\n      \"description\": \"How many ranked trends to keep for each location. X publishes up to 50.\",\n      \"default\": 50,\n      \"prefill\": 3,\n      \"minimum\": 1,\n      \"maximum\": 50\n    },\n    \"excludeHashtags\": {\n      \"title\": \"Exclude hashtags\",\n      \"type\": \"boolean\",\n      \"description\": \"Skip trends that start with #. X applies this filter before returning the list.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"trendNameContains\": {\n      \"title\": \"Only trends containing these words\",\n      \"type\": \"array\",\n      \"description\": \"Optional case-insensitive keyword filter. A trend is kept when its name contains at least one of these words. Useful for brand or topic monitoring.\",\n      \"editor\": \"stringList\",\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"dedupeAcrossLocations\": {\n      \"title\": \"Merge repeated trends across locations\",\n      \"type\": \"boolean\",\n      \"description\": \"When the same trend appears in several requested locations, keep one row with all locations and the best rank instead of one row per location.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"includeSearchUrls\": {\n      \"title\": \"Include search links\",\n      \"type\": \"boolean\",\n      \"description\": \"Include a ready-made X search link for every trend.\",\n      \"default\": true,\n      \"prefill\": true\n    },\n    \"placeTypeFilter\": {\n      \"title\": \"Place type (mode=locations)\",\n      \"type\": \"string\",\n      \"editor\": \"select\",\n      \"description\": \"Limit the location list to countries, cities and towns, the worldwide entry, or X's unknown place type.\",\n      \"enum\": [\n        \"all\",\n        \"country\",\n        \"town\",\n        \"worldwide\",\n        \"unknown\"\n      ],\n      \"enumTitles\": [\n        \"All places\",\n        \"Countries\",\n        \"Cities and towns\",\n        \"Worldwide\",\n        \"Unknown place type\"\n      ],\n      \"default\": \"all\",\n      \"prefill\": \"all\"\n    },\n    \"proxyConfiguration\": {\n      \"title\": \"Proxy configuration\",\n      \"type\": \"object\",\n      \"description\": \"Optional. Use a proxy if you plan very large or repeated runs.\",\n      \"editor\": \"proxy\",\n      \"sectionCaption\": \"Advanced\",\n      \"sectionDescription\": \"Optional settings for large or repeated runs.\"\n    }\n  },\n  \"required\": [\n    \"mode\"\n  ]\n}",
    "readme": "# X Trends Lookup by Country, City & WOEID\n\nGet the ranked trending topics on X (Twitter) for any country, city, ISO country code, slug or WOEID — or list every place X publishes trends for. Each trend row carries its rank, type, ready-made search link, and the country and parent place where it is trending. No login, cookies or API key needed.\n\n## What this actor does\n\n- **Two modes:** `trends` for the current ranked list of any place, `locations` for the full catalog X publishes trends for\n- **Finds places by any common form:** all 467 catalog places, 62 ISO country codes, URL slugs, friendly aliases and numeric WOEIDs\n- **Adds context:** country, country code, place type and parent country or metro on every trend row\n- **Compares markets:** `locationCount`, `locationsTrendingIn` and `bestRank` show where the same trend appears, with an optional merge\n- **Filters:** remove hashtags, keep only trends containing your keywords, and cap each place at 1–50 trends\n- **Empty fields are omitted** rather than returned as `null` or placeholders\n\n## Output per trend (`mode = trends`)\n\n- `type: \"trend\"`\n- `location` — the place you asked for; the WOEID is appended when two places share a name\n- `woeid` — X's numeric place identifier\n- `country`, `countryCode` — the country the place belongs to (omitted for Worldwide)\n- `placeType` — `Country`, `Town`, `Supername` or `Unknown`\n- `parentWoeid`, `parentLocation` — the country or metro that contains the place (omitted for Worldwide)\n- `rank` — position in the place's trending list (1 = top)\n- `trend` — the trend text, hashtag or cashtag\n- `trendType` — `hashtag`, `cashtag` or `topic`\n- `isHashtag`, `isCashtag` — boolean helpers for filtering\n- `query` — the decoded X search query behind the trend\n- `searchUrl`, `trendUrl` — ready-made search link on x.com\n- `locationCount` — number of requested places where this trend appears\n- `locationsTrendingIn` — those places, in the order you requested them\n- `bestRank` — the best (lowest) rank the trend reached across those places\n- `promoted` — kept for compatibility; X's public trends endpoint never marks trends as promoted\n- `asOf` — the timestamp X returns with that place's list; it can advance on each call\n- `collectedAt` — when this row was collected (the completion time of that place's request)\n\n`tweetVolume` is not part of the output because X's public trends endpoint stopped publishing post counts for trends. No volume is invented or zero-filled.\n\n## Output per location (`mode = locations`)\n\n- `type: \"location\"`\n- `location` — the place name; the WOEID is appended when names repeat\n- `woeid` — X's numeric place identifier\n- `country`, `countryCode` — the country the place belongs to (omitted for Worldwide)\n- `placeType` — `Country`, `Town`, `Supername` or `Unknown`\n- `parentWoeid`, `parentLocation` — the containing country or metro (omitted for Worldwide)\n- `collectedAt` — when this row was collected\n\n## Output: status rows\n\nA run can also contain rows with `type: \"status\"`:\n\n- `unknownLocation` — the place was not recognized; `didYouMean` suggests close matches\n- `ambiguousLocation` — several places share the name; `candidates` lists each one with its country and WOEID\n- `notAvailable` — X does not serve trends for that place\n- `noTrends` — X returned an empty list for that place\n- `noMatchingTrends` — trends existed, but your keyword filter removed them all\n- `rateLimited` / `error` — the request could not be completed; retrying usually helps\n- `collectionSummary` — one summary row in all-locations runs with `trendCount`, `locationsWithTrends`, `locationsTotal`, `locationsWithoutTrends`, `notAvailableLocations` and `failedLocations`\n\nIn `allLocations` mode the run emits one `collectionSummary` row instead of one `noTrends` row per empty place. The summary's `locationsWithoutTrends` count and `locationsTotal` tell you how many places had no trends.\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `mode` | string | `trends` | `trends` to collect the current ranked list, `locations` to list every place X supports |\n| `locations` | array of strings | `[\"Worldwide\"]` | Places to collect (mode=trends). Names, ISO codes, slugs, aliases and WOEIDs are accepted. Put `all` to collect every place |\n| `allLocations` | boolean | `false` | Collect every place X serves (currently 467); ignores `locations` when on |\n| `maxTrendsPerLocation` | integer | `50` | Trends to keep per place (1–50); X publishes at most 50 |\n| `excludeHashtags` | boolean | `false` | Skip trends that start with `#` |\n| `trendNameContains` | array of strings | `[]` | Keep only trends whose name contains at least one of these words (case-insensitive) |\n| `dedupeAcrossLocations` | boolean | `false` | Keep one row per trend across all requested places, with every place and the best rank |\n| `includeSearchUrls` | boolean | `true` | Add `searchUrl` and `trendUrl` to each trend |\n| `placeTypeFilter` | string | `all` | For mode=locations: `all`, `country`, `town`, `worldwide` or `unknown` |\n| `proxyConfiguration` | object | – | Optional proxy override for very large or repeated runs |\n\n## Examples\n\n### Example: three countries\n\n```json\n{\n  \"mode\": \"trends\",\n  \"locations\": [\"United States\", \"GB\", \"Japan\"],\n  \"maxTrendsPerLocation\": 20\n}\n```\n\n### Example: cities, a slug and a WOEID\n\n```json\n{\n  \"mode\": \"trends\",\n  \"locations\": [\"London\", \"sao-paulo\", \"Barcelona, ES\", \"23424977\"],\n  \"excludeHashtags\": true\n}\n```\n\n### Example: brand monitoring across markets\n\n```json\n{\n  \"mode\": \"trends\",\n  \"locations\": [\"United States\", \"United Kingdom\", \"Canada\", \"Australia\"],\n  \"trendNameContains\": [\"tesla\", \"spacex\"],\n  \"dedupeAcrossLocations\": true,\n  \"maxTrendsPerLocation\": 50\n}\n```\n\n### Example: list every place, countries only\n\n```json\n{\n  \"mode\": \"locations\",\n  \"placeTypeFilter\": \"country\"\n}\n```\n\n### Example: every place in one run\n\n```json\n{\n  \"mode\": \"trends\",\n  \"allLocations\": true,\n  \"maxTrendsPerLocation\": 50\n}\n```\n\nThis requests up to 50 trends for each of the 467 places (about 21,700 rows in a full run). Lower `maxTrendsPerLocation` if you only need a sample from each place.\n\n## Use cases\n\n- **Social listening** — follow what is breaking out in one city or across several markets\n- **Newsroom monitoring** — spot emerging stories by place before they reach national coverage\n- **Brand and campaign tracking** — filter trends by keyword and see which markets pick them up\n- **Content planning** — use the ready-made search links to explore a trend on X\n- **Market comparison** — compare ranked trends across countries without running separate jobs\n- **Location discovery** — export the full 467-place catalog with country, place type and parent place\n\n## Limitations\n\n- **No tweet volume.** X's public trends endpoint stopped publishing post counts for trends, so no `tweetVolume` is returned and none is estimated.\n- **No history.** X's public trends endpoint returns only the current ranked list. Schedule the actor and keep the datasets if you need a time series.\n- **At most 50 trends per place.** X caps each place at 50 and does not paginate. Request more places for broader coverage.\n- **No category filter.** X's public trends response has no News/Sports/Entertainment category. Use `trendNameContains` to keep the topics you care about, or `excludeHashtags`.\n- **Some places return no trends.** A few places have an empty list at any moment; the actor emits a `noTrends` row. A very small number are not served at all (`notAvailable`). In `allLocations` mode those places are counted in the `collectionSummary` row instead of getting a per-place row.\n- **X may repeat a trend inside one place.** When X returns the same trend twice in a place's top 50, the actor keeps one row at the better rank.\n- **Search links may ask you to log in.** `searchUrl` and `trendUrl` are the canonical x.com search links. X shows its login wall to logged-out browsers, but the links open search for signed-in users.\n- **Current snapshot only.** `asOf` is the timestamp X returns with the list; it can advance on every call even when the trends did not change. `collectedAt` is the completion time of that place's request, so one long run has different values per place.\n\n## FAQ\n\n**Do I need an X account, cookies or an API key?**\nNo. The actor reads X's public trending data and works without login, cookies or an API key.\n\n**How many places can I request?**\nX currently publishes trends for 467 places: 62 countries, about 400 cities and towns, one worldwide entry and two places with an unknown type. Use `allLocations` or `locations: [\"all\"]` for every one in a single run.\n\n**How do I enter a city?**\nUse the city name (`London`, `Tokyo`, `Sao Paulo`), its slug (`sao-paulo`) or its numeric WOEID. Country codes such as `US`, `GB`, `DE` and `JP` also work.\n\n**Why does `Barcelona` return an ambiguous-location row?**\nX lists more than one place called Barcelona. Add the country code, for example `Barcelona, ES`, or use the WOEID shown in the `candidates` list. Bare `Singapore` returns the country entry; use its WOEID to get the city entry.\n\n**Why is there no `tweetVolume` field?**\nX's public trends endpoint stopped publishing post counts for trends. The actor does not estimate, infer or zero-fill a number, because any such value would be misleading.\n\n**What does `locationCount` tell me?**\nIt is the number of requested places where that trend appears. `locationsTrendingIn` names them and `bestRank` gives the lowest rank across them. With `dedupeAcrossLocations` enabled, those places are merged into one row.\n\n**Why does a place return no trends?**\nSome places have an empty trending list at that moment. The run continues and emits a `noTrends` row instead of failing. A few places are not served by X at all and return `notAvailable`. In `allLocations` mode, empty places are counted in the single `collectionSummary` row rather than emitted as separate rows.\n\n**Why do I see fewer than 50 trends for a place?**\nX's list can be shorter than 50, and it occasionally repeats a trend. The actor removes within-place repeats, so a list of 50 entries can produce fewer than 50 unique rows.\n\n**How fresh is the data?**\nX recalculates trends continuously. `asOf` is the timestamp X returns with each place's list. `collectedAt` is the completion time of that place's request, so in a long all-locations run the last places have later `collectedAt` values than the first.\n\n**Can I get more than 50 trends for one place?**\nNo. X's public endpoint returns at most 50 trends per place and has no pagination. Request several places to widen coverage.\n\n**Why is there no News/Sports/Entertainment category filter?**\nX's public trends response does not include a category. The actor does not invent one. Use `trendNameContains` for the topics you care about, or `excludeHashtags`.\n\n**Why do the search links ask me to log in?**\nX shows a login wall to logged-out browsers. The links are still the canonical x.com search URLs and open search for signed-in users.\n\n**Can I get historical trends?**\nNo. The public trends surface exposes only the current snapshot; the actor does not claim history.\n\n**Is this affiliated with X?**\nNo. This is an independent actor that reads publicly visible trending data and is not affiliated with, endorsed by or sponsored by X Corp.\n",
    "actorDefinition": {
      "actorSpecification": 1,
      "name": "x-trends-lookup-by-country-city-and-woeid",
      "title": "X Trends Lookup by Country, City & WOEID",
      "description": "Get ranked trending topics on X for any country, city, ISO code, slug or WOEID, or list all 467 available locations. Filter hashtags, merge repeated trends across markets, and export ready-made search links. No login required.",
      "seoTitle": "X Trends Lookup by Country, City & WOEID",
      "seoDescription": "Get ranked trending topics on X for 467 countries and cities, by name, ISO code, slug or WOEID. Filter hashtags, compare markets and export search links. No login required.",
      "version": "1.1",
      "buildTag": "latest",
      "dockerfile": "./Dockerfile",
      "readme": "# X Trends Lookup by Country, City & WOEID\n\nGet the ranked trending topics on X (Twitter) for any country, city, ISO country code, slug or WOEID — or list every place X publishes trends for. Each trend row carries its rank, type, ready-made search link, and the country and parent place where it is trending. No login, cookies or API key needed.\n\n## What this actor does\n\n- **Two modes:** `trends` for the current ranked list of any place, `locations` for the full catalog X publishes trends for\n- **Finds places by any common form:** all 467 catalog places, 62 ISO country codes, URL slugs, friendly aliases and numeric WOEIDs\n- **Adds context:** country, country code, place type and parent country or metro on every trend row\n- **Compares markets:** `locationCount`, `locationsTrendingIn` and `bestRank` show where the same trend appears, with an optional merge\n- **Filters:** remove hashtags, keep only trends containing your keywords, and cap each place at 1–50 trends\n- **Empty fields are omitted** rather than returned as `null` or placeholders\n\n## Output per trend (`mode = trends`)\n\n- `type: \"trend\"`\n- `location` — the place you asked for; the WOEID is appended when two places share a name\n- `woeid` — X's numeric place identifier\n- `country`, `countryCode` — the country the place belongs to (omitted for Worldwide)\n- `placeType` — `Country`, `Town`, `Supername` or `Unknown`\n- `parentWoeid`, `parentLocation` — the country or metro that contains the place (omitted for Worldwide)\n- `rank` — position in the place's trending list (1 = top)\n- `trend` — the trend text, hashtag or cashtag\n- `trendType` — `hashtag`, `cashtag` or `topic`\n- `isHashtag`, `isCashtag` — boolean helpers for filtering\n- `query` — the decoded X search query behind the trend\n- `searchUrl`, `trendUrl` — ready-made search link on x.com\n- `locationCount` — number of requested places where this trend appears\n- `locationsTrendingIn` — those places, in the order you requested them\n- `bestRank` — the best (lowest) rank the trend reached across those places\n- `promoted` — kept for compatibility; X's public trends endpoint never marks trends as promoted\n- `asOf` — the timestamp X returns with that place's list; it can advance on each call\n- `collectedAt` — when this row was collected (the completion time of that place's request)\n\n`tweetVolume` is not part of the output because X's public trends endpoint stopped publishing post counts for trends. No volume is invented or zero-filled.\n\n## Output per location (`mode = locations`)\n\n- `type: \"location\"`\n- `location` — the place name; the WOEID is appended when names repeat\n- `woeid` — X's numeric place identifier\n- `country`, `countryCode` — the country the place belongs to (omitted for Worldwide)\n- `placeType` — `Country`, `Town`, `Supername` or `Unknown`\n- `parentWoeid`, `parentLocation` — the containing country or metro (omitted for Worldwide)\n- `collectedAt` — when this row was collected\n\n## Output: status rows\n\nA run can also contain rows with `type: \"status\"`:\n\n- `unknownLocation` — the place was not recognized; `didYouMean` suggests close matches\n- `ambiguousLocation` — several places share the name; `candidates` lists each one with its country and WOEID\n- `notAvailable` — X does not serve trends for that place\n- `noTrends` — X returned an empty list for that place\n- `noMatchingTrends` — trends existed, but your keyword filter removed them all\n- `rateLimited` / `error` — the request could not be completed; retrying usually helps\n- `collectionSummary` — one summary row in all-locations runs with `trendCount`, `locationsWithTrends`, `locationsTotal`, `locationsWithoutTrends`, `notAvailableLocations` and `failedLocations`\n\nIn `allLocations` mode the run emits one `collectionSummary` row instead of one `noTrends` row per empty place. The summary's `locationsWithoutTrends` count and `locationsTotal` tell you how many places had no trends.\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `mode` | string | `trends` | `trends` to collect the current ranked list, `locations` to list every place X supports |\n| `locations` | array of strings | `[\"Worldwide\"]` | Places to collect (mode=trends). Names, ISO codes, slugs, aliases and WOEIDs are accepted. Put `all` to collect every place |\n| `allLocations` | boolean | `false` | Collect every place X serves (currently 467); ignores `locations` when on |\n| `maxTrendsPerLocation` | integer | `50` | Trends to keep per place (1–50); X publishes at most 50 |\n| `excludeHashtags` | boolean | `false` | Skip trends that start with `#` |\n| `trendNameContains` | array of strings | `[]` | Keep only trends whose name contains at least one of these words (case-insensitive) |\n| `dedupeAcrossLocations` | boolean | `false` | Keep one row per trend across all requested places, with every place and the best rank |\n| `includeSearchUrls` | boolean | `true` | Add `searchUrl` and `trendUrl` to each trend |\n| `placeTypeFilter` | string | `all` | For mode=locations: `all`, `country`, `town`, `worldwide` or `unknown` |\n| `proxyConfiguration` | object | – | Optional proxy override for very large or repeated runs |\n\n## Examples\n\n### Example: three countries\n\n```json\n{\n  \"mode\": \"trends\",\n  \"locations\": [\"United States\", \"GB\", \"Japan\"],\n  \"maxTrendsPerLocation\": 20\n}\n```\n\n### Example: cities, a slug and a WOEID\n\n```json\n{\n  \"mode\": \"trends\",\n  \"locations\": [\"London\", \"sao-paulo\", \"Barcelona, ES\", \"23424977\"],\n  \"excludeHashtags\": true\n}\n```\n\n### Example: brand monitoring across markets\n\n```json\n{\n  \"mode\": \"trends\",\n  \"locations\": [\"United States\", \"United Kingdom\", \"Canada\", \"Australia\"],\n  \"trendNameContains\": [\"tesla\", \"spacex\"],\n  \"dedupeAcrossLocations\": true,\n  \"maxTrendsPerLocation\": 50\n}\n```\n\n### Example: list every place, countries only\n\n```json\n{\n  \"mode\": \"locations\",\n  \"placeTypeFilter\": \"country\"\n}\n```\n\n### Example: every place in one run\n\n```json\n{\n  \"mode\": \"trends\",\n  \"allLocations\": true,\n  \"maxTrendsPerLocation\": 50\n}\n```\n\nThis requests up to 50 trends for each of the 467 places (about 21,700 rows in a full run). Lower `maxTrendsPerLocation` if you only need a sample from each place.\n\n## Use cases\n\n- **Social listening** — follow what is breaking out in one city or across several markets\n- **Newsroom monitoring** — spot emerging stories by place before they reach national coverage\n- **Brand and campaign tracking** — filter trends by keyword and see which markets pick them up\n- **Content planning** — use the ready-made search links to explore a trend on X\n- **Market comparison** — compare ranked trends across countries without running separate jobs\n- **Location discovery** — export the full 467-place catalog with country, place type and parent place\n\n## Limitations\n\n- **No tweet volume.** X's public trends endpoint stopped publishing post counts for trends, so no `tweetVolume` is returned and none is estimated.\n- **No history.** X's public trends endpoint returns only the current ranked list. Schedule the actor and keep the datasets if you need a time series.\n- **At most 50 trends per place.** X caps each place at 50 and does not paginate. Request more places for broader coverage.\n- **No category filter.** X's public trends response has no News/Sports/Entertainment category. Use `trendNameContains` to keep the topics you care about, or `excludeHashtags`.\n- **Some places return no trends.** A few places have an empty list at any moment; the actor emits a `noTrends` row. A very small number are not served at all (`notAvailable`). In `allLocations` mode those places are counted in the `collectionSummary` row instead of getting a per-place row.\n- **X may repeat a trend inside one place.** When X returns the same trend twice in a place's top 50, the actor keeps one row at the better rank.\n- **Search links may ask you to log in.** `searchUrl` and `trendUrl` are the canonical x.com search links. X shows its login wall to logged-out browsers, but the links open search for signed-in users.\n- **Current snapshot only.** `asOf` is the timestamp X returns with the list; it can advance on every call even when the trends did not change. `collectedAt` is the completion time of that place's request, so one long run has different values per place.\n\n## FAQ\n\n**Do I need an X account, cookies or an API key?**\nNo. The actor reads X's public trending data and works without login, cookies or an API key.\n\n**How many places can I request?**\nX currently publishes trends for 467 places: 62 countries, about 400 cities and towns, one worldwide entry and two places with an unknown type. Use `allLocations` or `locations: [\"all\"]` for every one in a single run.\n\n**How do I enter a city?**\nUse the city name (`London`, `Tokyo`, `Sao Paulo`), its slug (`sao-paulo`) or its numeric WOEID. Country codes such as `US`, `GB`, `DE` and `JP` also work.\n\n**Why does `Barcelona` return an ambiguous-location row?**\nX lists more than one place called Barcelona. Add the country code, for example `Barcelona, ES`, or use the WOEID shown in the `candidates` list. Bare `Singapore` returns the country entry; use its WOEID to get the city entry.\n\n**Why is there no `tweetVolume` field?**\nX's public trends endpoint stopped publishing post counts for trends. The actor does not estimate, infer or zero-fill a number, because any such value would be misleading.\n\n**What does `locationCount` tell me?**\nIt is the number of requested places where that trend appears. `locationsTrendingIn` names them and `bestRank` gives the lowest rank across them. With `dedupeAcrossLocations` enabled, those places are merged into one row.\n\n**Why does a place return no trends?**\nSome places have an empty trending list at that moment. The run continues and emits a `noTrends` row instead of failing. A few places are not served by X at all and return `notAvailable`. In `allLocations` mode, empty places are counted in the single `collectionSummary` row rather than emitted as separate rows.\n\n**Why do I see fewer than 50 trends for a place?**\nX's list can be shorter than 50, and it occasionally repeats a trend. The actor removes within-place repeats, so a list of 50 entries can produce fewer than 50 unique rows.\n\n**How fresh is the data?**\nX recalculates trends continuously. `asOf` is the timestamp X returns with each place's list. `collectedAt` is the completion time of that place's request, so in a long all-locations run the last places have later `collectedAt` values than the first.\n\n**Can I get more than 50 trends for one place?**\nNo. X's public endpoint returns at most 50 trends per place and has no pagination. Request several places to widen coverage.\n\n**Why is there no News/Sports/Entertainment category filter?**\nX's public trends response does not include a category. The actor does not invent one. Use `trendNameContains` for the topics you care about, or `excludeHashtags`.\n\n**Why do the search links ask me to log in?**\nX shows a login wall to logged-out browsers. The links are still the canonical x.com search URLs and open search for signed-in users.\n\n**Can I get historical trends?**\nNo. The public trends surface exposes only the current snapshot; the actor does not claim history.\n\n**Is this affiliated with X?**\nNo. This is an independent actor that reads publicly visible trending data and is not affiliated with, endorsed by or sponsored by X Corp.\n",
      "input": {
        "title": "X Trends by Location",
        "description": "Get the ranked trending topics of any country or city on X, or list every place X publishes trends for. No login, cookies or API key needed.",
        "type": "object",
        "schemaVersion": 1,
        "properties": {
          "mode": {
            "title": "Mode",
            "type": "string",
            "editor": "select",
            "description": "Choose whether to collect the current trends or list the places X publishes trends for.",
            "enum": [
              "trends",
              "locations"
            ],
            "enumTitles": [
              "Trends now by location",
              "List all available locations"
            ],
            "default": "trends",
            "prefill": "trends"
          },
          "locations": {
            "title": "Locations",
            "type": "array",
            "description": "Countries, cities, country codes, slugs or WOEIDs (mode=trends). Examples: Worldwide, United States, US, United Kingdom, GB, London, Tokyo, sao-paulo, 23424977. Put \"all\" to collect every location. Add a country after a comma when two places share a name, for example \"Barcelona, ES\".",
            "editor": "stringList",
            "default": [
              "Worldwide"
            ],
            "prefill": [
              "Worldwide"
            ],
            "example": [
              "United States",
              "GB",
              "London",
              "sao-paulo",
              "23424977"
            ]
          },
          "allLocations": {
            "title": "All available locations",
            "type": "boolean",
            "description": "Collect trends for every place X serves (currently 467 countries and cities, up to 50 trends each). When enabled, the Locations list is ignored.",
            "default": false,
            "prefill": false
          },
          "maxTrendsPerLocation": {
            "title": "Maximum trends per location",
            "type": "integer",
            "description": "How many ranked trends to keep for each location. X publishes up to 50.",
            "default": 50,
            "prefill": 3,
            "minimum": 1,
            "maximum": 50
          },
          "excludeHashtags": {
            "title": "Exclude hashtags",
            "type": "boolean",
            "description": "Skip trends that start with #. X applies this filter before returning the list.",
            "default": false,
            "prefill": false
          },
          "trendNameContains": {
            "title": "Only trends containing these words",
            "type": "array",
            "description": "Optional case-insensitive keyword filter. A trend is kept when its name contains at least one of these words. Useful for brand or topic monitoring.",
            "editor": "stringList",
            "default": [],
            "prefill": []
          },
          "dedupeAcrossLocations": {
            "title": "Merge repeated trends across locations",
            "type": "boolean",
            "description": "When the same trend appears in several requested locations, keep one row with all locations and the best rank instead of one row per location.",
            "default": false,
            "prefill": false
          },
          "includeSearchUrls": {
            "title": "Include search links",
            "type": "boolean",
            "description": "Include a ready-made X search link for every trend.",
            "default": true,
            "prefill": true
          },
          "placeTypeFilter": {
            "title": "Place type (mode=locations)",
            "type": "string",
            "editor": "select",
            "description": "Limit the location list to countries, cities and towns, the worldwide entry, or X's unknown place type.",
            "enum": [
              "all",
              "country",
              "town",
              "worldwide",
              "unknown"
            ],
            "enumTitles": [
              "All places",
              "Countries",
              "Cities and towns",
              "Worldwide",
              "Unknown place type"
            ],
            "default": "all",
            "prefill": "all"
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional. Use a proxy if you plan very large or repeated runs.",
            "editor": "proxy",
            "sectionCaption": "Advanced",
            "sectionDescription": "Optional settings for large or repeated runs."
          }
        },
        "required": [
          "mode"
        ]
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "X Trends Lookup by Country, City & WOEID Output",
        "description": "Ranked X trends per location, with trend type, search links, cross-location overlap and catalog metadata, plus location-list rows and problem status rows.",
        "type": "object",
        "properties": {
          "trends": {
            "type": "string",
            "title": "Trends and locations",
            "description": "Dataset containing ranked trends per location, location-list rows and problem status rows.",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          }
        }
      },
      "defaultMemoryMbytes": 512,
      "minMemoryMbytes": 256,
      "maxMemoryMbytes": 1024,
      "categories": [
        "SOCIAL_MEDIA"
      ],
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "views": {
            "overview": {
              "title": "Trends and locations",
              "transformation": {
                "fields": [
                  "type",
                  "location",
                  "rank",
                  "trend",
                  "trendType",
                  "countryCode",
                  "locationCount",
                  "searchUrl",
                  "asOf",
                  "collectedAt"
                ]
              },
              "display": {
                "component": "table",
                "properties": {}
              }
            }
          }
        }
      },
      "environmentVariables": {}
    },
    "buildNumber": "1.1.1",
    "imageDigest": "4339c6e5fe7f4d96f7b489b082800873030a0a04c092d3221970c84605321ad0",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "1.1"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.00973111111111111
    }
  }
}