TikTok API endpoint
Returns the current TikTok trending feed: `itemList` holds the videos, and `hasMore` and `cursor` describe paging. The response also has a `trendingTopics` field. Takes no parameters.
/tiktok/trendingReturns the current TikTok trending/recommended video feed.
| Field | Filled in, of 5 checked | Values in the sample |
|---|---|---|
| AIGCDescription | 0 | |
| CategoryType | 5 | 100 to 120, median 111 |
| IsHDBitrate | 5 | true in 0 of 5 |
| ShowAIGC | 5 | true in 5 of 5 |
| author | 5 | |
| authorStats | 5 | |
| authorStatsV2 | 5 | |
| backendSourceEventTracking | 5 | |
| challenges | 5 | median 5 entries |
| collected | 5 | true in 0 of 5 |
| contentContext | 5 | |
| contents | 5 | median 1 entry |
| createTime | 5 | 1,787,227,929 to 1,791,360,827, median 1,788,366,377 |
| desc | 5 | |
| digged | 5 | true in 0 of 5 |
| duetDisplay | 5 | 0 |
| forFriend | 5 | true in 0 of 5 |
| id | 5 | |
| imagePost | 1 | |
| isAd | 5 | true in 0 of 5 |
| isProhibited | 5 | true in 0 of 5 |
| isReviewing | 5 | true in 0 of 5 |
| itemCommentStatus | 5 | 0 |
| item_control | 5 | |
| music | 5 | |
| officalItem | 5 | true in 0 of 5 |
| originalItem | 5 | true in 0 of 5 |
| privateItem | 5 | true in 0 of 5 |
| secret | 5 | true in 0 of 5 |
| shareEnabled | 5 | true in 5 of 5 |
| stats | 5 | |
| statsV2 | 5 | |
| stitchDisplay | 5 | 0 |
| textExtra | 5 | median 5 entries |
| textLanguage | 5 | |
| textTranslatable | 5 | true in 4 of 5 |
| titleLanguage | 1 | |
| titleTranslatable | 1 | true in 1 of 1 |
| video | 5 | |
| diversificationId | 4 | 10,040 to 10,067, median 10,040 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/tiktok/trending" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"extra": {
"fatal_item_ids": [],
"logid": "202503190154113B12E72238478F0CB808",
"now": 1742349252000
},
"log_pb": {
"impr_id": "202503190154113B12E72238478F0CB808"
},
"itemList": [
{
"id": "7616993099398614302"
}
],
"hasMore": true,
"statusCode": 0,
"statusMsg": "",
"status_code": 0,
"status_msg": ""
}
}Request schema
No body schema
Response schema
#/definitions/tiktok.trendingResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | tiktok.TrendingResp | No | ||||
| data.cursor | string | No | Cursor TikTok returns for the next page of the trending feed. | |||
| data.extra | object | No | Response metadata from TikTok, such as the request log id and server time. | |||
| data.extra.fatal_item_ids | array | No | ||||
| data.extra.logid | string | No | ||||
| data.extra.now | integer | No | ||||
| data.hasMore | boolean | No | Whether more videos remain after this page. | |||
| data.itemList | array | No | Videos in the trending feed, one entry per video, as TikTok returns them. | |||
| data.log_pb | object | No | Request tracking information from TikTok, holding the `impr_id` impression id. | |||
| data.log_pb.impr_id | string | No | ||||
| data.statusCode | integer | No | TikTok status code for the request. `0` on a successful response. | |||
| data.statusMsg | string | No | Status message that goes with the status code. | |||
| data.status_code | integer | No | Second copy of the TikTok status code, sent as `status_code`. `0` on a successful response. | |||
| data.status_msg | string | No | Second copy of the status message, sent as `status_msg`. | |||
| data.trendingTopics | array | No | Trending topics returned with the feed, as TikTok returns them. | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 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/trending" \
-H "x-api-key: $CRAWLORA_API_KEY"