TikTok API endpoint
Returns the mobile app's trending sound chart: `music_list` of full sound objects (`id_str`, `title`, `user_count`, `album`, `artists`, `cover_large`/`cover_medium`/`cover_thumb`, `binded_challenge_id`, `collect_stat`, `audition_duration`) unmodified, plus `cursor` and `has_more` for paging. This is the chart behind `music.trending`.
/tiktok/mobile/music/trendingReturns the mobile app's trending sound chart: music_list of full sound objects (id_str, title, user_count, album, artists, cover_large/cover_medium/cover_thumb, binded_challenge_id, collect_stat, audition_duration) unmodified, plus cursor and has_more for paging. This is the chart behind music.trending (the previously documented music/hot path 404s, so the gap is now closed here).
Query parameters:
count: optional. Sounds per page (max 50). Default: 20.cursor: optional. Pagination cursor. Default: 0.| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| x-api-key (header) | string | Yes | API key required | ||
| count | integer | No | Sounds per page (max 50) | ||
| cursor | integer | No | Pagination cursor |
curl -X GET "https://api.crawlora.net/api/v1/tiktok/mobile/music/trending?count=10" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"music_list": [
{
"id_str": "6799585653702019073",
"title": "Lofi",
"user_count": 1538008,
"album": "",
"artists": [],
"cover_large": {
"uri": "example",
"url_list": [
"https://example.invalid/cover.jpg"
]
},
"binded_challenge_id": "0",
"collect_stat": 0,
"audition_duration": 60,
"duration": 60
}
],
"cursor": 10,
"has_more": 1,
"msg": "success",
"extra": {
"logid": "example",
"now": 1792283000
},
"log_pb": {
"impr_id": "example"
},
"status_code": 0,
"status_msg": ""
}
}Request schema
No body schema
Response schema
#/definitions/tiktokmobile.hotMusicResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | tiktokmobile.HotMusicResponse | No | ||||
| data.cursor | integer | No | ||||
| data.extra | unknown | No | ||||
| data.has_more | boolean | No | ||||
| data.log_pb | unknown | No | ||||
| data.msg | string | No | ||||
| data.music_list | array | No | ||||
| data.status_code | integer | No | ||||
| data.status_msg | string | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Invalid input | #/definitions/app.Response |
| 429 | Rate limit exceeded | #/definitions/app.Response |
| 500 | Internal server error | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/tiktok/mobile/music/trending?count=10" \
-H "x-api-key: $CRAWLORA_API_KEY"