# Changelog of Trending Searches Today 🔥 (Google Trends by country) (`tagadanar/trending-searches-today`) Actor

- **URL**: https://apify.com/tagadanar/trending-searches-today/changelog.md
- **Full Actor documentation**: https://apify.com/tagadanar/trending-searches-today.md

## Changelog

### 2026-09-14

- **A brief Google Trends rate limit is ridden out instead of failing the
  request.** Retries now wait properly between attempts and move to a fresh
  connection, and a network hiccup is retried rather than failing that keyword
  group on the first try. A sustained block stops retrying after about a minute,
  so it cannot drag a run on.
- When Google refuses, the message says so plainly and no longer tells you to
  enable a proxy setting that does not exist.

### 2026-09-08

- **A run can no longer spend more time than it has.** The retry ladder booked
  its worst case up front, under loops with no ceiling, so a slow or wobbling
  source could push the run past the platform timeout. A run killed that way
  loses its own closing message entirely.
- Every request now plans against the time actually left, and a backoff that
  would outlive the run is not slept.
- A run that hits its time limit now delivers everything it did read and says
  so plainly, naming the searches it never reached — rather than reporting an
  empty result, which is a claim it has not earned.

### 0.1.0 — 2026-08-19

First build. Not published, not priced, no platform run.

- Today's trending Google searches by country from the `i0OFE` batchexecute RPC
  the trends.google.com/trending page calls for itself. One row per trend per
  country, ranked by search volume.
- Fetch layer copied, not rewritten: `src/client.js` is byte-identical to
  `actors/google-trends/src/client.js`, and `BASE` / `USER_AGENT` /
  `TRENDING_URL` / `trendingBody` in `src/api.js` are byte-identical to their
  counterparts there. Explore, widgetdata, Google Sheet and explore-URL helpers
  dropped — this actor has no keyword mode.
- Reads two payload positions the broad actor drops: the trend's **end**
  timestamp (absent while it is still rising) and the ASCII-folded query.
- **Corrected category map.** The id → label table in
  `actors/google-trends/src/normalize.js` is wrong from id 4 onward; the map
  here was re-derived from 3,543 real trends across three feeds and is
  documented with its evidence in `src/normalize.js`. A renumbering by Google
  publishes as `category-<id>` rather than a wrong word, and the health probe
  fails on it.
- A 200 carrying no data payload, or a country whose feed is empty, is treated
  as a dead endpoint. If no country answers, the run **fails** — it never
  finishes SUCCEEDED with an empty dataset. A country that fails while others
  answer is named in the run's status message.
- Bad input exits SUCCEEDED with the reason in the status message.
- Internal datacenter proxy, no proxy input field.
- 25 offline tests over two real captured feeds plus synthetic edge cases.
