TikTok trending API: browse without a query is flag-gated

Sume trending search needs a query on production. Browse with no query, limit up to 100 and relevance floors are dev-only until a flag is set. The differences.

5 min readSume
All posts

On production, Sume's POST /v1/trending-videos/search requires a query. Calling it with none works only where the rebuilt browse feed is on: the dev API, or an environment where SUME_COM_TRENDING_VIDEOS_REBUILD_ENABLED is exactly 1 or true. So a script that browses with no query on dev and then ships to production will start failing for a missing field.

Trend lists make a good query source. Exploding Topics' September 21 update lists massage comb, egg weights, train case and wireless meat thermometer among the fastest-growing product searches (Exploding Topics, read 2026-10-04); any of those is a valid query on both contracts.

Two contracts side by side

This comes from the trending videos docs as read on 2026-10-04. The page states production stays off until the flag is set; confirm current behaviour in the live OpenAPI before depending on either column.

Production (flag off) versus rebuild on (trending videos docs, read 2026-10-04)
BehaviourProduction, flag offRebuild on
queryRequiredOptional; omitted means browse
limit1 to 50, default 101 to 100; search default 20, browse default 48
RelevanceLegacy generic ranker, no extra floorMatch on caption, hashtag, mention or author, plus an engagement floor
PaddingFills toward the limitOff-topic and stale hits are not padded back
Extra fieldsNoneparams.mode (browse or search) and params.cached
Browse regionNot applicableWith no region, fans out across US, GB and KR feeds

A call that works on both

Send a query and the request is valid under either contract. Each accepted call reserves and captures $0.10 of Sume usage per the docs; summary_mode: "metadata" is included, and repeat browse calls may be served from cache. summary_mode: "transcript" currently returns metadata plus an unsupported warning, and download values above zero return an unsupported warning because nothing is mirrored.

import os, requests

resp = requests.post(
    "https://api.sume.com/v1/trending-videos/search",
    headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"},
    json={
        "platform": "tiktok",
        "query": "massage comb",
        "window": "this-month",
        "limit": 10,
        "region": "US",
    },
    timeout=60,
)
print(resp.status_code)
for video in resp.json().get("videos", [])[:3]:
    print(video.get("url"), video.get("metrics"))

The results are public watch URLs, cover thumbnails, handles and metrics, not video files, so research here feeds a brief rather than a remix source; see what you can remix. Window defaults and region behaviour are in the related posts.

Sources

Related posts

More in Media tools

All Media tools posts

Written by Sume