The Trends List endpoint supports three sort modes via
sort_by. Each answers a different question. Most confusion about trend
ordering comes from expecting one mode to answer another mode’s question.
sort_by | The question it answers | Use it for |
|---|
recommended (default) | “What’s worth my attention overall?” | Browsing; a balanced view of what’s hot |
newest | ”What’s new since I last checked?” | Daily/weekly catch-up on new arrivals |
rising | ”What’s inflecting right now?” | Timing: catching a wave before it peaks |
Biggest is not the same as rising
rising ranks by acceleration of posting activity: is this trend’s
content being created faster than its own recent baseline? It does not rank
by total size. A trend with millions of views and a large, steady stream of videos is
established: it tops recommended, but its curve is flat, so it sits low on
rising. A small trend whose activity is compounding week over week is the
one rising is built to surface. That’s the window where creating content
for it puts you early.
If a 6.1M-view trend appears below a 43K-view trend on rising, that is the
sort working as intended: the smaller trend is accelerating harder relative
to its own baseline. For “biggest overall”, use recommended.
Rising means rising now
The rising signal is anchored to a trend’s latest evidence and fades as
that evidence ages. Two trends with the same climb rank very differently if
one climbed this week and the other went quiet three weeks ago:
Each trend’s momentum value ranges from −1 to +1: positive = building,
negative = fading, near zero = steady, too little evidence to judge, or
evidence that has aged out of relevance. There is no cliff: the value decays
smoothly, so a trend that was hot three weeks ago drifts down the list rather
than vanishing.
Freshness follows the most recent wave
freshness_score (0–1) measures how recent a trend’s content activity
is, weighted toward its newest wave of videos. It is a recency level,
independent of size. A trend can be small and fresh, or huge and stale.
Trends often resurface: a format that had early buzz and then a strong second
wave reads as fresh again, because the score follows the recent wave rather
than averaging over the trend’s whole lifetime.
timeliness_status bands the same signal into recent / active / stale
/ cold if you prefer labels over thresholds.
If you’re rendering your own “fresh” or “hot” badge, decide which question it
should answer. “Recently active content” → threshold on
freshness_score (or use timeliness_status). “Act on this now” →
threshold on momentum (e.g. ≥ 0.1). “New to the catalog” → sort by
newest and compare emerged_at against your last visit. Mixing these
produces badges that feel wrong on big-but-established trends.
Field quick reference
| Field | Meaning |
|---|
freshness_score | 0–1 recency of content activity, weighted toward the newest wave. Size-blind. |
timeliness_status | The same signal as labels: recent, active, stale, cold. |
momentum | −1..+1 trajectory of posting activity, decaying as the latest evidence ages. |
emerged_at | When the trend first accumulated enough confirmed videos to count as a real trend in our catalog. This is when we confirmed it; for formats where we backfill older example videos, it can be later than the oldest video you see on the trend. |
Which sort for which workflow
- “I check in every morning”: use
newest, and stop at the first trend you
recognize from yesterday.
- “I plan content weekly”: use
recommended, filtered to your categories.
- “I want to catch waves early”: use
rising, and prioritize entries that
are also recent/active on timeliness_status.
Legacy sort values
Older sort_by values keep working forever; they resolve to their closest
current equivalent instead of erroring:
| Value sent | Resolves to | Notes |
|---|
momentum | rising | Renamed; identical behavior. |
timeliness | newest | Retired as a distinct sort in July 2026. For a freshness-ordered view, use newest with the timeliness_status=recent filter, or order client-side by freshness_score. |
emerging | (unchanged) | Still accepted as its own ordering, by emerged_at. For most catch-up workflows newest is the better fit. |