All questionsTikTok

How do I get trending TikTok hashtags and sounds?

Three endpoints. GET /v1/tiktok/trending/music lists the sounds TikTok is pushing now. GET /v1/tiktok/trending/posts lists the videos on the trending feed. GET /v1/tiktok/search/hashtags?q=… finds hashtags by keyword with their post counts. All three answer with one API key.

Trends move by region and by hour. Read on a schedule and store capturedAt with each row. A trend is a series, not a snapshot.

Checked September 2026 · request and response run against the API · no affiliate links

GET /v1/tiktok/trending/music
curl "https://api.openhandle.dev/v1/tiktok/trending/music" \
  -H "Authorization: Bearer $OPENHANDLE_API_KEY"
TypeScript SDK
import { OpenHandle } from '@openhandle/sdk';

const openhandle = new OpenHandle({ apiKey: process.env.OPENHANDLE_API_KEY! });
const music = await openhandle.tiktok.trending.music.list();
const hashtags = await openhandle.tiktok.search.hashtags.list({ q: 'orchard' });

for (const sound of music.data) console.log(sound.id, sound.title);
200 OK
{
  "platform": "tiktok",
  "resource": "music",
  "capturedAt": "2026-09-18T12:04:51Z",
  "source": "live",
  "data": [
    {
      "id": "950000000003",
      "title": "Synthetic Signal",
      "isOriginalSound": false,
      "url": "https://www.tiktok.com/music/synthetic-signal-950000000003"
    }
  ],
  "meta": { "cursors": { "next": null } }
}

Trimmed to one sound. The full record has artist, duration, cover, and usage metrics where TikTok shows them. The example is a Test sound, so you can run it on a free Test key.

From a trend to the videos

  • Videos using a sound. GET /v1/tiktok/music/{id}/posts lists videos that use the sound, newest first.
  • Videos under a hashtag. GET /v1/tiktok/hashtags/{id}/posts lists videos for a hashtag. The hashtag ID comes from search.
  • Trending categories. GET /v1/tiktok/trending/categories lists the category buckets TikTok groups trends into.

Measure a trend, not a moment

Read the trending lists every few hours and store every row with capturedAt. A sound that appears for the first time is a signal. A sound that climbs over three reads is a trend. A hashtag post count read twice, a day apart, gives you the growth rate. None of that exists in a single response.

What TikTok shows, and what it does not

The trending feed is what TikTok shows a logged-out visitor. It is not personalized, and it is not the Creative Center’s regional charts. A metric TikTok hides is null, never 0.

When this does not work

Empty is an answer. A cursor from another request is a mistake.

SituationStatusCode
No hashtags match the query200empty data
The sound or hashtag ID does not exist404PROFILE_NOT_FOUND
The cursor came from another request400CURSOR_MISMATCH
400 Bad Request
{
  "error": {
    "code": "CURSOR_MISMATCH",
    "message": "The cursor does not belong to this request.",
    "requestId": "req_01j8…",
    "retryable": false
  }
}

An empty page bills as an answered request. Every trending read is a live read unless you ask for a cache tier.

Read next

More TikTok questions

Send your agent ahead.

Paste the prompt into your agent and it sets everything up. Or come yourself, it takes five minutes.

For agents