TikTok Sound Search API reference
TikTok sounds and music matching a keyword, with a cursor. Takes a keyword, returns a cursor page, 1 credit a call.
This named API keeps TikTok fields in TikTok's own vocabulary. For a higher-level product page, see TikTok Sound Search API.
Endpoint
GET /v1/tiktok/sound/search
Authorization: Bearer sv_live_... `POST` is also accepted with the same parameters in the request body. Send the key in the `Authorization` header, never in the query string.
Parameters
| Name | Type | Required | Notes |
|---|---|---|---|
q | string | yes | Search term or hashtag, up to 100 characters. Trimmed and lowercased before the lookup. |
cursor | string | no | Cursor returned by the previous page. |
limit | integer | no | Maximum items to return, up to 50. |
Sample Request
This is a copyable request shape. Replace the sample values with the public TikTok target or parameters your workflow uses.
curl -G 'https://api.sourcevine.io/v1/tiktok/sound/search' \
-H 'Authorization: Bearer sv_live_...' \
--data-urlencode 'q=coffee' \
--data-urlencode 'limit=20' Sample Response
A response this API returned, against the target above. Your values depend on the resource you ask about and when you ask.
{
"data": {
"items": [
{
"url": {
"uri": "https://sf19.tiktokcdn-us.com/obj/tos-alisg-ve-2774/oMQlszCNecx30XVZwklMUAdageD8FleaUYqZQd",
"width": 720,
"height": 720,
"url_list": [
"https://sf19.tiktokcdn-us.com/obj/tos-alisg-ve-2774/oMQlszCNecx30XVZwklMUAdageD8FleaUYqZQd"
],
"url_prefix": null
},
"title": "Coffee",
"cached": false,
"soundId": "6790428344753080322",
"coverUrl": {
"uri": "tos-alisg-v-2774/ocD4AQCSEB7ufEEmpfZ7tJpBP6nROgXgAKCAFm",
"width": 720,
"height": 720,
"url_list": [
"https://p16-common.tiktokcdn-us.com/tos-alisg-v-2774/ocD4AQCSEB7ufEEmpfZ7tJpBP6nROgXgAKCAFm~tplv-tiktokx-cropcenter:720:720.jpeg?dr=9584&t=4d5b0474&ps=933b5bde&shp=08d74b56&shcp=544a444f&idc=useast8"
],
"url_prefix": null
},
"fetchedAt": "2026-09-02T06:52:46Z",
"postCount": 819614,
"authorName": "beabadoobee",
"cacheAgeSeconds": null,
"durationSeconds": 60
},
{
"url": {
"uri": "https://sf16.tiktokcdn-us.com/obj/tos-alisg-ve-2774/a3226c0e7b2e47bcaaa5b58c211276d5",
"width": 720,
"height": 720,
"url_list": [
"https://sf16.tiktokcdn-us.com/obj/tos-alisg-ve-2774/a3226c0e7b2e47bcaaa5b58c211276d5"
],
"url_prefix": null
},
"title": "Coffee",
"cached": false,
"soundId": "6746483331266791426",
"coverUrl": {
"uri": "tos-alisg-v-2774/69d3c80e161e40f4970257792c84b228",
"width": 720,
"height": 720,
"url_list": [
"https://p16-common.tiktokcdn-us.com/tos-alisg-v-2774/69d3c80e161e40f4970257792c84b228~tplv-tiktokx-cropcenter:720:720.jpeg?dr=9584&t=4d5b0474&ps=933b5bde&shp=08d74b56&shcp=544a444f&idc=useast8"
],
"url_prefix": null
},
"fetchedAt": "2026-09-02T06:52:46Z",
"postCount": 107925,
"authorName": "leira",
"cacheAgeSeconds": null,
"durationSeconds": 60
},
{
"url": {
"uri": "https://sf16.tiktokcdn-us.com/obj/tos-alisg-ve-2774/d7273983ab2242b3b27556735f60637a",
"width": 720,
"height": 720,
"url_list": [
"https://sf16.tiktokcdn-us.com/obj/tos-alisg-ve-2774/d7273983ab2242b3b27556735f60637a"
],
"url_prefix": null
},
"title": "coffee",
"cached": false,
"soundId": "6715582739715721218",
"coverUrl": {
"uri": "tos-alisg-v-2774/3d9c693e612345169022d5f42cc2c713",
"width": 720,
"height": 720,
"url_list": [
"https://p16-common.tiktokcdn-us.com/tos-alisg-v-2774/3d9c693e612345169022d5f42cc2c713~tplv-tiktokx-cropcenter:720:720.jpeg?dr=9584&t=4d5b0474&ps=933b5bde&shp=08d74b56&shcp=544a444f&idc=useast8"
],
"url_prefix": null
},
"fetchedAt": "2026-09-02T06:52:46Z",
"postCount": 83979,
"authorName": "Miguel",
"cacheAgeSeconds": null,
"durationSeconds": 60
}
],
"cached": false,
"fetchedAt": null,
"nextCursor": null,
"cacheAgeSeconds": null
},
"success": true,
"available": true
} Fields
| Field | Type | Notes |
|---|---|---|
items | array | Matching public TikTok sounds or music tracks. |
items[].soundId | string | Use this id with the sound posts API. |
items[].title | string | null | Track or sound title. |
items[].authorName | string | null | Public sound author or label when available. |
items[].postCount | integer | null | How many public posts use the sound when reported. |
nextCursor | string | null | Pass as cursor to request the next page. |
fetchedAt | ISO datetime | When Sourcevine read the public page. |
sourceTimestamp | ISO datetime | null | The platform timestamp when it is available. |
cached | boolean | True when this answer repeats an identical request made moments earlier. |
cacheAgeSeconds | integer | Seconds since the reading was taken. |
Availability States
| Status | Charged | Client behavior |
|---|---|---|
available | yes for live reads | Use data. |
not_found | yes | Store the state and stop polling. |
private | yes | Store the state and stop polling. |
unsupported | no | Fix the URL or call the matching API. |
upstream_unavailable | no | Retry later with backoff. |
Unavailable resources return `success: true`, `available: false`, `availability`, and `data: null`. API or authentication failures return `success: false` with an `error` object.
Billing
A call costs 1 credit. A deleted, private or empty resource is charged like any lookup and says so. An unsupported URL or a read we could not complete is not charged. The `X-Credits-Charged` response header is the source of truth for what happened on that request.
Successful responses include `fetchedAt`, the time we read the platform.
What This API Does Not Return
- No contact or bio fields: Bios, email addresses, phone numbers, postal addresses and messenger handles are outside the response contract.
- No private data: Private accounts, restricted content and unavailable resources return typed availability instead of guessed data.
- No media download: Sound search returns public metadata and ids. It does not download audio files or bypass platform restrictions.
Related
- TikTok API hub
- TikTok Sound Search API product page
- Quickstart
- Credits and billing
- TikTok Video Stats API reference
- TikTok Profile API reference
- TikTok Channel Videos API reference
- TikTok Search API reference
Last updated 1 September 2026