TikTok Search sounds by keyword API
type is sound: musicId, title, author, durationSeconds, videoCount (videos made with the sound), isOriginal, coverUrl (temporary), playUrl (audio link when public, temporary), url and keyword (soundSearch) or sourceProfile (userSounds).
Sound fields (modes soundSearch, userSounds)
type is sound: musicId, title, author, durationSeconds, videoCount (videos made with the sound), isOriginal, coverUrl (temporary), playUrl (audio link when public, temporary), url and keyword (soundSearch) or sourceProfile (userSounds). The existing music mode takes sound IDs, and soundSearch is how you find them.
With includeSoundDetail each sound is followed by a record of type soundDetail: musicId, title, author, album, createdAt (when the sound was added), durationSeconds, videoCount, isOriginal, isCommercial, themeTags and url. It is delivered only when the details were found; a sound without details gets no second record and no extra charge. A sound that appears under two keywords gets its detail record once.
The input that produced this run
Mode soundSearch. Parameters as sent, with what each one does.
| Parameter | Value | What it does |
|---|---|---|
mode | "soundSearch" | What to get: videos by keyword, hashtag, profile, sound, repost list, playlist, photo search or explore category; profiles by keyword or similar to a profile; sounds or places by keyword; the sounds a profile has made;... |
keywords | ["love"] | Search keywords; each keyword is a separate search (or a separate suggestion lookup). Falls back to a sample keyword when empty (skincare; love for soundSearch, cats for photoSearch, paris for placeSearch). soundSearch... |
maxResults | 3 | Maximum items for each keyword, hashtag, profile, sound, video or category (up to 1000). Video details, profile details and analytics return one record per input, so the limit rarely matters there. A search inside... |
includeSoundDetail | true | Also fetch a detail record for each sound found (album, release date, theme tags, commercial-use flag). It adds one extra record per sound, charged at $0.002 (the 'detail' event) only when the details were found. |
11 fields in every sound
From the first record of the run above. Identity fields of ordinary users are masked on this site.
| Field | Type | Example |
|---|---|---|
type | str | sound |
musicId | str | 7522531285815379985 |
title | str | Love |
author | str | <masked> |
durationSeconds | int | 60 |
videoCount | int | 680878 |
isOriginal | bool | false |
coverUrl | str | https://p16-common.tiktokcdn-us.com/tos-alisg-v-2774/oIS7... |
playUrl | str | https://sf16.tiktokcdn-us.com/obj/tos-alisg-ve-2774/ogXhZ... |
url | str | https://www.tiktok.com/music/Love-7522531285815379985 |
keyword | str | love |
A real run, 11 fields per record
Run on 2026-11-09 with input {"mode": "soundSearch", "keywords": ["love"], "maxResults": 3, "includeSoundDetail": true}. Personal fields of ordinary users are masked here.
| title | keyword | durationSeconds | videoCount |
|---|---|---|---|
| Love | love | 60 | 680878 |
| Love | love | 60 | 377267 |
| Love | love | 60 | 235351 |
All 11 fields in one record
typesoundmusicId7522531285815379985titleLoveauthordurationSeconds60videoCount680878isOriginalcoverUrlhttps://p16-common.tiktokcdn-us.com/tos-alisg-v-2774/oIS7...playUrlhttps://sf16.tiktokcdn-us.com/obj/tos-alisg-ve-2774/ogXhZ...urlhttps://www.tiktok.com/music/Love-7522531285815379985keywordlove
What one sound costs
Result (result) · $0.003 · For each video or profile-search record returned (search, hashtag, userPosts, userSearch, music, userReposts, userPlaylists, similarUsers, soundSearch, photoSearch, userSounds) and each videoAnalytics record.
Run this request yourself
The same input as above, three ways.