# RapidAPI · tiktok-api23 (Lundehund)

Gateway provider `rapidapi-tiktok-api23` · call `https://fetchapi.co/api/gw/rapidapi-tiktok-api23/<path>` with header `x-api-key` (get a key at https://fetchapi.co/keys) · MCP: tools `search_endpoints`, `get_endpoint`, `call_endpoint` at https://fetchapi.co/api/mcp · listing: https://rapidapi.com/Lundehund/api/tiktok-api23

Upstream plan: PRO: $9.99/month for 200,000 requests; free tier: BASIC: $0, 100 requests/month + 10 downloads/day, hard limits (https://rapidapi.com/Lundehund/api/tiktok-api23/pricing).

48 working endpoints, each tested live through this gateway. Endpoints that returned no data in our latest test, write actions and endpoints that need the end user's own login are not listed.

## `rapidapi-tiktok-api23.check_alive` — Check Alive

`GET /api/live/check-alive` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 1323 ms

One call checks whether a TikTok user is currently live streaming. The answer returns a boolean `alive` status and the room ID if applicable.

| param | required | example / default |
|---|---|---|
| `uniqueId` | yes | soloz___ |

Fields: `data[].alive` Whether user is currently live; `data[].room_id` Live room ID if streaming; `data[].room_id_str` Live room ID as string

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/live/check-alive?uniqueId=soloz___" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "data": [
  {
   "alive": false,
   "room_id": 7692050426195185000,
   "room_id_str": "7692050426195184392"
  }
 ],
 "extra": {
  "now": 1791057298877
 },
 "status_code": 0
}
```

## `rapidapi-tiktok-api23.discover_posts_by_keyword` — Discover Posts by Keyword

`GET /api/post/discover` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 1388 ms

One call returns up to 3 TikTok videos matching a keyword, with each showing the video ID, description, music, engagement stats, and playback URLs. The answer held 3 items per page and indicates more pages exist. Get the next page by incrementing the `page` parameter.

| param | required | example / default |
|---|---|---|
| `page` | no | 1 |
| `keyword` | yes | new-year |

Fields: `videoList[].id` Video ID; `videoList[].desc` Video description and hashtags; `videoList[].music.title` Background music title; `videoList[].stats.playCount` Video play count; `videoList[].stats.diggCount` Video like count; `videoList[].stats.commentCount` Video comment count; `videoList[].video.playAddr` Video playback URL; `videoList[].author.uniqueId` Creator username; `hasMore` Whether more pages available

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/post/discover?page=1&keyword=new-year" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "extra": {
  "now": 1791057288000,
  "logid": "20261003195448CBB2A66744E047210E06",
  "fatal_item_ids": []
 },
 "log_pb": {
  "impr_id": "20261003195448CBB2A66744E047210E06"
 },
 "hasMore": true,
 "videoList": [
  {
   "id": "7590819633674898720",
   "desc": "Antwoorden op @Sam Oris fake nye countdown so they don’t miss out 🥳 #countdown #2026 #dadjoke #nye #newyear ",
   "music": {
    "id": "7404783005917480977",
    "album": "Alegria",
    "title": "Alegria",
    "playUrl": "https://sf16.tiktokcdn-us.com/obj/tos-alisg-ve-2774/ocgZeTxMKcGF2fY0UA4EuerAAegkfEkfYSMsSW",
    "duration": 78,
    "original": false,
    "authorName": "Sweet Dreams & D'Michel Leb",
    "coverLarge": "https://p19-common.tiktokcdn-us.com/tos-alisg-v-2774/o0AMeFiTsgATuIQNNvLeDCATHwfADMQUzAGYaF~tplv-tiktokx-cropcenter:720:720.jpeg?dr=9584&t=4d5b0474&ps=933b5bde&shp=08d74b56&shcp=81f88b70&idc=useast8",
    "coverThumb": "https://p16-common.tiktokcdn-us.com/tos-alisg-v-2774/o0AMeFiTsgATuIQNNvLeDCATHwfADMQUzAGYaF~tplv-tiktokx-cropcenter:100:100.jpeg?dr=9584&t=4d5b0474&ps=933b5bde&shp=08d74b56&shcp=81f88b70&idc=useast8",
    "coverMedium": "https://p16-common.tiktokcdn-us.com/tos-alisg-v-2774/o0AMeFiTsgATuIQNNvLeDCATHwfADMQUzAGYaF~tplv-tiktokx-cropcenter:200:200.jpeg?dr=9584&t=4d5b0474&ps=933b5bde&shp=08d74b56&shcp=81f88b70&idc=useast8"
   },
   "stats": {
    "diggCount": 91000,
    "playCount": 1900000,
    "shareCount": 2704,
    "collectCount": 3841,
    "commentCount": 550
   },
   "video": {
    "i
…
```

## `rapidapi-tiktok-api23.download_all_user_videos` — Download All User Videos

`GET /api/download/user/video` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 1206 ms

One call returns up to 10 videos from a TikTok user's profile. Each item is a video with its metadata, stats, and playback URL. The answer held 10 items in this call. Get the next page by passing the `maxCursor` value to the `maxCursor` parameter.

| param | required | example / default |
|---|---|---|
| `minCursor` | no |  |
| `maxCursor` | no |  |
| `secUid` | yes | MS4wLjABAAAAqB08cUbXaDWqbD6MCga2RbGTuhfO2EsHayBYx08NDrN7IE3j |

Fields: `itemList[].id` Video ID; `itemList[].desc` Video caption/description; `itemList[].play` Video playback URL; `itemList[].cover` Video thumbnail URL; `itemList[].stats.digg_count` Likes count; `itemList[].stats.play_count` Views count; `itemList[].stats.comment_count` Comments count; `itemList[].create_time` Unix timestamp of video creation; `hasMore` Whether more videos exist; `maxCursor` Cursor for next page

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/download/user/video?secUid=MS4wLjABAAAAqB08cUbXaDWqbD6MCga2RbGTuhfO2EsHayBYx08NDrN7IE3jQuRDNNN6YwyfH6_6" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "hasMore": true,
 "itemList": [
  {
   "id": "7690393326704430366",
   "desc": "The Patient Zero video is finally out in the world! Getting to work with Emmanuel Lubezki was something out of a dream sequence, and I learned so much from getting to watch his genius in action. I want to thank Dakota and Colin for trusting me with their time, taste, and talent (Giggling with your f…",
   "play": "https://v16me.tiktokcdn.com/9dd0302f132011259c22d4b4d0109225/6ac2af27/video/tos/alisg/tos-alisg-ve-37c799-sg/oIXgeH0VcAwhIeBAQyh4bjHCqen8RZjSI6UAgM/?a=1340&bti=M0BzbGRxbGRoamRobDFybndmKTc6OWYucCNtXGxxZG9kK3FpaHFmOmQ0NDA6&&bt=423&ft=BIhA7V0xwnRRfjCEX~ObK_geFcpiIfCSQjKJhND07.0P3-I&mime_type=video_mp4&…",
   "cover": "https://p16-common-sign.tiktokcdn.com/tos-useast8-p-0068-tx2/ogFA5Ae3cVAmCEIqCuFfECAsMxEAQkECRADjEJ~tplv-tiktokx-cropcenter-q:300:400:q72.jpeg?dr=16276&refresh_token=f5dd3081&x-expires=1791140400&x-signature=1DNRgzb88wxuvQdDtL0gzM4OxAE%3D&t=5872c671&ps=933b5bde&shp=d05b14bd&shcp=ede7c6fc&idc=sg1&biz…",
   "stats": {
    "digg_count": 687431,
    "play_count": 5955325,
    "share_count": 18875,
    "repost_count": 0,
    "collect_count": 24735,
    "comment_count": 8705,
    "forward_count": 0,
    "download_count": 5279
   },
   "images": [],
   "create_time": 1790559242
  },
  {
   "id": "7689069916774878495",
   "desc": "This Sunday. #VMAs.",
   "play": "https://v16me.tiktokcdn.com/1346756497c15e7278f68339f98c2924/6ac2af11/video/tos/alisg/tos-alisg-ve-37c799-sg/ocEh8L0RII
…
```

## `rapidapi-tiktok-api23.download_video` — Download Video

`GET /api/download/video` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 4140 ms

One call extracts and returns video download URLs from a TikTok post. The answer contains both a clean version and a watermarked version of the video.

| param | required | example / default |
|---|---|---|
| `url` | yes | https://www.tiktok.com/@taylorswift/video/755809857455525404 |

Fields: `play` Video playback URL without watermark; `play_watermark` Video playback URL with TikTok watermark

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/download/video?url=https://www.tiktok.com/@taylorswift/video/7558098574555254046" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "play": "https://v16m-default.tiktokcdn.com/dcf78fa94330df227056dd0baeb6dba8/6ac1b208/video/tos/alisg/tos-alisg-ve-37c799-sg/oIBCEAlvdiDkwVjVcPaCP6sCTOEQBi4IlyRBA/?a=0&bti=OHYpOTY0Zik3OjlmOm01MzE6ZDQ0MDo%3D&&bt=1150&ft=H6ByPIRv.sd.wS4OJlsV-4KSnGbE.SAxwF_nz7TiW~cZi77rV6BM&mime_type=video_mp4&rc=aDNpOzlkZWk0NT…",
 "play_watermark": "https://v16m-default.tiktokcdn.com/b8af2537841601fc8c30e615796c6f4f/6ac1b208/video/tos/alisg/tos-alisg-ve-37c799-sg/oYH4VQUIDlsK8BhIAEfXAegxLFwHEoEEl1CRkH/?a=0&bti=OHYpOTY0Zik3OjlmOm01MzE6ZDQ0MDo%3D&&bt=1176&ft=H6ByPIRv.sd.wS4OJlsV-4KSnGbE.SAxwF_nz7TiW~cZi77rV6BM&mime_type=video_mp4&rc=Ojk4M2k0Ozo5Z…"
}
```

## `rapidapi-tiktok-api23.explore_dramas` — Explore Dramas

`GET /api/drama/explore` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 893 ms

One call returns up to 10 short drama series from TikTok's drama section for a region. Each item is a drama with creator info, themes, and view counts. The answer held 10 items. Get the next page by passing the `cursor` value to the `cursor` parameter.

| param | required | example / default |
|---|---|---|
| `type` | no | 10 |
| `count` | no | 10 |
| `releasePeriod` | no | all |
| `cursor` | no | 0 |
| `region` | no | US |

Paging: read `cursor` from the answer and send it back as `cursor=` for the next page; stop when it is empty or repeats.

Fields: `dramaList[].dramaID` Drama series ID; `dramaList[].dramaName` Drama title; `dramaList[].description` Drama description; `dramaList[].cover.urlList[0]` Drama cover image URL; `dramaList[].author.user.nickname` Creator name; `dramaList[].author.user.uniqueId` Creator username; `dramaList[].numVideos` Number of episodes; `dramaList[].numWatched` Total views; `dramaList[].themes[].tagVal` Drama genre/theme tags; `cursor` Cursor for next page

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/drama/explore?type=10&count=10&cursor=0&region=US&releasePeriod=all" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "extra": {
  "now": 1791057243000,
  "logid": "202610031954039C91123388B5BC12879F",
  "fatal_item_ids": []
 },
 "cursor": "1:10",
 "log_pb": {
  "impr_id": "202610031954039C91123388B5BC12879F"
 },
 "reload": false,
 "hasMore": true,
 "dramaList": [
  {
   "cover": {
    "urlList": [
     "https://p16-common-sign.tiktokcdn-eu.com/tos-alisg-i-xbj99bix8q-sg/252347e4d9e54f98a193a04606e8ea96~tplv-tiktokx-origin.image?dr=10395&x-expires=1791226800&x-signature=IcyfW1k4ielY7kvUj2piUD4t9HE%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=no1a",
     "https://p19-common-sign.tiktokcdn-eu.com/tos-alisg-i-xbj99bix8q-sg/252347e4d9e54f98a193a04606e8ea96~tplv-tiktokx-origin.image?dr=10395&x-expires=1791226800&x-signature=HLaufxJaFb%2F41i%2FsvEKE2HD2kGg%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=no1a",
     "https://p16-common-sign.tiktokcdn-eu.com/tos-alisg-i-xbj99bix8q-sg/252347e4d9e54f98a193a04606e8ea96~tplv-tiktokx-origin.jpeg?dr=10395&x-expires=1791226800&x-signature=uzKzG55kJvQz%2FhsCiOYFI0aDZkQ%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=no1a"
    ]
   },
   "author": {
    "user": {
     "id": "7536331034711983134",
     "ftc": false,
     "secUid": "MS4wLjABAAAAf3IuAlOT9QbtMwJWt3QthSTpYOGmBOgyTHf7QPOcaU19RWZhBQtpNovDZ8U7MJT8",
     "secret": false,
     "nickname": "AnimeFlux Daily",
     "relation": 0,
     "ttSeller": false,
     "uniqueId": "aidramalabs.anime",
     "verified": false,
     "signature": "High stakes drama💖Epic adventure✨ power
…
```

## `rapidapi-tiktok-api23.get_ads_detail` — Get Ads Detail

`GET /api/trending/ads/detail` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 401 ms

The call failed because the ad ID does not exist in the system. The answer is an error message indicating the material could not be found.

| param | required | example / default |
|---|---|---|
| `ads_id` | yes | 7169172119488577537 |

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/trending/ads/detail?ads_id=7169172119488577537" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "msg": "can't find material with id: 7169172119488577537",
 "code": 40004,
 "request_id": "20261004035526F9BCA4E7270F8A6E0515"
}
```

## `rapidapi-tiktok-api23.get_collection_info` — Get Collection Info

`GET /api/collection/info` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 527 ms

One call returns metadata about a TikTok collection (curated playlist). The answer contains the collection name, cover image, creator, and total video count.

| param | required | example / default |
|---|---|---|
| `collectionId` | yes | 7442134949027351314 |

Fields: `collectionInfo.collectionId` Collection ID; `collectionInfo.name` Collection name; `collectionInfo.cover.urlList[0]` Collection cover image URL; `collectionInfo.userName` Creator username; `collectionInfo.total` Number of videos in collection; `shareMeta.title` Share title; `shareMeta.desc` Share description

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/collection/info?collectionId=7442134949027351314" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "extra": {
  "now": 1791057307000,
  "logid": "20261003195507FA182722DFBD27EBCEAC",
  "fatal_item_ids": []
 },
 "log_pb": {
  "impr_id": "20261003195507FA182722DFBD27EBCEAC"
 },
 "shareMeta": {
  "desc": "Watch amazing videos in this curated collection KHÔNG THỜI GIAN",
  "title": "Collection KHÔNG THỜI GIAN created by lebong95"
 },
 "statusCode": 0,
 "status_msg": "",
 "status_code": 0,
 "collectionInfo": {
  "name": "KHÔNG THỜI GIAN",
  "cover": {
   "urlList": [
    "https://p16-common-sign.tiktokcdn-us.com/tos-alisg-p-0037/oIQmZmdsGQqfQOoaAfLE40jRSCeZOBDQIaAEIj~tplv-tiktokx-origin.image?dr=9636&x-expires=1791075600&x-signature=MTQEtaROvKAZ5hTHXwKzpzoepA8%3D&t=4d5b0474&ps=13740610&shp=b59d6b55&shcp=43f4a2f9&idc=useast8",
    "https://p19-common-sign.tiktokcdn-us.com/tos-alisg-p-0037/oIQmZmdsGQqfQOoaAfLE40jRSCeZOBDQIaAEIj~tplv-tiktokx-origin.image?dr=9636&x-expires=1791075600&x-signature=Lg8WI5myQopIf7seqh1cqdcSAI0%3D&t=4d5b0474&ps=13740610&shp=b59d6b55&shcp=43f4a2f9&idc=useast8",
    "https://p16-common-sign.tiktokcdn-us.com/tos-alisg-p-0037/oIQmZmdsGQqfQOoaAfLE40jRSCeZOBDQIaAEIj~tplv-tiktokx-origin.jpeg?dr=9636&x-expires=1791075600&x-signature=dGjj9rgFnr%2FUqjIVOnXaFWlSTo4%3D&t=4d5b0474&ps=13740610&shp=b59d6b55&shcp=43f4a2f9&idc=useast8"
   ]
  },
  "total": "49",
  "status": 3,
  "userName": "lebong95",
  "collectionId": "7442134949027351314"
 }
}
```

## `rapidapi-tiktok-api23.get_collection_posts` — Get Collection Posts

`GET /api/collection/posts` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 1277 ms

One call returns up to 30 videos from a TikTok collection. Each item is a video with full metadata including music, stats, and playback URLs. The answer held 30 items. Get the next page by passing the `cursor` value to the `cursor` parameter.

| param | required | example / default |
|---|---|---|
| `count` | no | 30 |
| `cursor` | no |  |
| `collectionId` | yes | 7442134949027351314 |

Paging: read `cursor` from the answer and send it back as `cursor=` for the next page; stop when it is empty or repeats.

Fields: `itemList[].id` Video ID; `itemList[].desc` Video caption; `itemList[].video.playAddr` Video playback URL; `itemList[].video.cover` Video thumbnail URL; `itemList[].music.id` Audio track ID; `itemList[].music.title` Audio track title; `itemList[].stats.playCount` Views count; `itemList[].stats.diggCount` Likes count; `itemList[].stats.commentCount` Comments count; `cursor` Cursor for next page

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/collection/posts?count=30&collectionId=7442134949027351314" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "extra": {
  "now": 1791057306000,
  "logid": "202610031955050C6D6CCA8A914517CAF8",
  "fatal_item_ids": []
 },
 "cursor": "30",
 "log_pb": {
  "impr_id": "202610031955050C6D6CCA8A914517CAF8"
 },
 "hasMore": true,
 "itemList": [
  {
   "id": "7459230804909100296",
   "desc": "Cô giáo Tâm thương thủ trưởng Đại rơi nước mắt #Khongthoigian #VFC #VTV1",
   "isAd": false,
   "music": {
    "id": "7459230886102420225",
    "title": "original sound - VFC Official",
    "tt2dsp": {},
    "playUrl": "https://v45.tiktokcdn-eu.com/f78839ffd417b1eed0cc2113d5677d38/6ac2af71/video/tos/alisg/tos-alisg-v-27dcd7/oEEWDovPgIlQBTnMXvEeCLgCWG3jAQIfNXPheA/?a=1233&bti=ODszNWYuMDE6&&bt=125&ft=cD1VS7z7ThWHGFgnLGZmo0P&mime_type=audio_mpeg&rc=ZDZoOGZoZDg8aDQ5Zzs8ZUBpamc3Onk5cnY7eDMzODU8NEAtLzM1YjReXy8xNmJgLS0uYSN…",
    "private": false,
    "duration": 88,
    "original": true,
    "authorName": "VFC Official",
    "coverLarge": "https://p16-common-sign.tiktokcdn-eu.com/tos-useast2a-avt-0068-euttp/0505c7300bba2c13fc633b527f8f6c49~tplv-tiktokx-cropcenter:1080:1080.jpeg?dr=10399&refresh_token=e463b46f&x-expires=1791226800&x-signature=rhW06DjGkxB5I%2B9kugwtEuC4Olw%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=no1a",
    "coverThumb": "https://p16-common-sign.tiktokcdn-eu.com/tos-useast2a-avt-0068-euttp/0505c7300bba2c13fc633b527f8f6c49~tplv-tiktokx-cropcenter:100:100.jpeg?dr=10399&refresh_token=7cd1a421&x-expires=1791226800&x-signature=xXa8llcQo3bluq%2Fx80jS8Ap3vLU%3D&t=4d5b0474&ps=13740610&s
…
```

## `rapidapi-tiktok-api23.get_comments_of_post` — Get Comments of Post

`GET /api/post/comments` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 1030 ms

One call returns up to 50 comments on a TikTok video. Each item is a comment with user info, text, and engagement stats. The answer held 50 items and shows 55,192 total comments exist. Get the next page by passing the `cursor` value to the `cursor` parameter.

| param | required | example / default |
|---|---|---|
| `cursor` | no | 0 |
| `count` | no | 50 |
| `videoId` | yes | 7306132438047116586 |

Paging: read `cursor` from the answer and send it back as `cursor=` for the next page; stop when it is empty or repeats.

Fields: `comments[].cid` Comment ID; `comments[].text` Comment text; `comments[].user.uid` Commenter user ID; `comments[].user.nickname` Commenter display name; `comments[].user.unique_id` Commenter username; `comments[].digg_count` Comment likes; `comments[].reply_comment_total` Number of replies to comment; `comments[].create_time` Unix timestamp of comment creation; `total` Total comments on video; `cursor` Cursor for next page

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/post/comments?count=50&cursor=0&videoId=7306132438047116586" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "extra": {
  "now": 1791057330000,
  "api_debug_info": null,
  "fatal_item_ids": null
 },
 "total": 55192,
 "cursor": 50,
 "log_pb": {
  "impr_id": "20261004035530EC7BEFEA0AD496668026"
 },
 "comments": [
  {
   "cid": "7306133620770751250",
   "text": "justice for cardigan",
   "user": {
    "uid": "7111130981097440257",
    "events": null,
    "sec_uid": "MS4wLjABAAAApQQlmQywQDuHwssfrOcHSLUzuG5iWZycoryh-ywo_cgY8qMa01NjGo3jCuGIdOv9",
    "cha_list": null,
    "nickname": "jasper💌",
    "cover_url": null,
    "item_list": null,
    "unique_id": "noootjasper",
    "user_tags": null,
    "geofencing": null,
    "type_label": null,
    "bold_fields": null,
    "need_points": null,
    "ad_cover_url": null,
    "avatar_thumb": {
     "uri": "tos-alisg-avt-0068/74d11452bbbf6d930b1e3e4c536a9e69",
     "url_list": [
      "https://p16-common-sign.tiktokcdn.com/tos-alisg-avt-0068/74d11452bbbf6d930b1e3e4c536a9e69~tplv-tiktokx-cropcenter:100:100.jpg?dr=14579&refresh_token=5c6f9299&x-expires=1791140400&x-signature=tdet%2FSCD1Q6PfIek0XdZL9ShSaI%3D&t=4d5b0474&ps=13740610&shp=30310797&shcp=ff37627b&idc=my2",
      "https://p19-common-sign.tiktokcdn.com/tos-alisg-avt-0068/74d11452bbbf6d930b1e3e4c536a9e69~tplv-tiktokx-cropcenter:100:100.jpg?dr=14579&refresh_token=10faa91d&x-expires=1791140400&x-signature=lhvWwXQ9iNG8xxIyrLREgyj82o0%3D&t=4d5b0474&ps=13740610&shp=30310797&shcp=ff37627b&idc=my2",
      "https://p16-common-sign.tiktokcdn.com/tos-alisg-avt-0068/74d11452bbbf6d930b1e3e4c536a9e69~
…
```

## `rapidapi-tiktok-api23.get_commercial_music_library` — Get Commercial Music Library

`GET /api/trending/commercial-music-library` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 1565 ms

One call searches TikTok's commercial music library with optional filters. The answer returned an empty list because no results matched the default parameters.

| param | required | example / default |
|---|---|---|
| `singer_name` | no |  |
| `limit` | no | 20 |
| `music_name` | no |  |
| `moods` | no | [] |
| `page` | no | 1 |
| `region` | no | US |
| `duration` | no | 0 |
| `themes` | no | [] |
| `genres` | no | [] |
| `placements` | no | [] |
| `scenarios` | no | 0 |

Fields: `data.list[].id` Music track ID; `data.list[].title` Track title; `data.list[].artist` Artist name; `data.pagination.page` Current page number; `data.pagination.has_more` Whether more results exist

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/trending/commercial-music-library?page=1&limit=20&moods=[]&genres=[]&region=US&themes=[]&duration=0&scenarios=0&placements=[]" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "msg": "OK",
 "code": 0,
 "data": {
  "list": [],
  "pagination": {
   "page": 1,
   "limit": 20,
   "has_more": false,
   "total_count": 0
  }
 },
 "request_id": "20261004035523B19F46D14F40F998E63E"
}
```

## `rapidapi-tiktok-api23.get_commercial_music_playlist` — Get Commercial Music Playlist

`GET /api/trending/commercial-music-library/playlist` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 678 ms

One call returns up to 20 curated music playlists from TikTok's commercial library. Each item is a playlist with title, cover image, and ID. The answer held 20 items and shows 32 total playlists exist. Get the next page by incrementing the page parameter.

| param | required | example / default |
|---|---|---|
| `region` | no | US |
| `limit` | no | 20 |

Fields: `data.list[].playlist_id` Playlist ID; `data.list[].title` Playlist name; `data.list[].poster_url` Playlist cover image URL; `data.pagination.page` Current page number; `data.pagination.has_more` Whether more playlists exist; `data.pagination.total_count` Total playlists available

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/trending/commercial-music-library/playlist?limit=20&region=US" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "msg": "OK",
 "code": 0,
 "data": {
  "list": [
   {
    "title": "TikTok Viral",
    "poster_url": "https://p16-sg.tiktokcdn.com/aweme/720x720/tos-alisg-v-2774/ocjfALGEm1GnREATU7IEkeFKjAPA8fAS7oesKA.jpeg",
    "playlist_id": 6875250915218050000
   },
   {
    "title": "New Releases",
    "poster_url": "https://p16-sg.tiktokcdn.com/aweme/720x720/tos-alisg-v-2774/oYCEQEEngCBDBh8GZFf4BqDBDApz7EtIHAfwAk.jpeg",
    "playlist_id": 7050075594570075000
   },
   {
    "title": "Emerging Artists",
    "poster_url": "https://p16-sg.tiktokcdn.com/aweme/720x720/tos-alisg-v-2774/ocjfALGEm1GnREATU7IEkeFKjAPA8fAS7oesKA.jpeg",
    "playlist_id": 7055618291871534000
   },
   "… 29 more"
  ],
  "pagination": {
   "page": 1,
   "limit": 20,
   "has_more": true,
   "total_count": 32
  }
 },
 "request_id": "20261004035517A2F74F20ADA91B6F7307"
}
```

## `rapidapi-tiktok-api23.get_commercial_music_playlist_detail` — Get Commercial Music Playlist Detail

`GET /api/trending/commercial-music-library/playlist/detail` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 1182 ms

One call returns up to 20 music tracks from a commercial music playlist. Each item in the answer is a single track with metadata like title, artist, duration, and audio URL. The answer held 20 items in our call; get the next page by passing the next `page` number in the `page` parameter.

| param | required | example / default |
|---|---|---|
| `limit` | no | 20 |
| `region` | no | US |
| `page` | no | 1 |
| `playlist_id` | yes | 6929526806429469442 |

Fields: `data.music_list[].music_id` Unique identifier for the music track; `data.music_list[].title` Track title; `data.music_list[].singer` Artist or performer name; `data.music_list[].duration` Track duration in seconds; `data.music_list[].music_url` URL to stream or download the audio; `data.music_list[].mood` Mood classification (e.g., Dynamic); `data.music_list[].genre` Music genre (e.g., Electronic); `data.music_list[].poster_url` Cover art image URL; `data.pagination.page` Current page number; `data.pagination.has_more` Whether more pages exist

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/trending/commercial-music-library/playlist/detail?page=1&limit=20&region=US&playlist_id=6929526806429469442" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "msg": "OK",
 "code": 0,
 "data": {
  "title": "",
  "music_list": [
   {
    "mood": "Dynamic",
    "genre": "Electronic",
    "theme": "Danceable",
    "title": "Thru My Mind",
    "detail": "https://sf16-ies-music-sg.tiktokcdn.com/obj/tos-alisg-ve-2774/osoDJDT1dczlIDuaL3FmUQYGPAegjpeCqme1Mi",
    "singer": "Sensu",
    "clip_id": "7622260745952118800",
    "duration": 59,
    "music_id": "7622260745952118800",
    "music_url": "https://sf16-ies-music-sg.tiktokcdn.com/obj/tos-alisg-ve-2774/osoDJDT1dczlIDuaL3FmUQYGPAegjpeCqme1Mi",
    "poster_url": "https://p16-sg.tiktokcdn.com/aweme/720x720/tos-alisg-v-2774/o4WeF2wLMiAqKAJ0BkAkEuEHv4WDtAAoiBxs4i.jpeg",
    "meta_song_id": "0",
    "placement_allowed": [
     "TikTok"
    ]
   },
   {
    "mood": "Dynamic",
    "genre": "Electronic",
    "theme": "Danceable",
    "title": "MOVEMENT",
    "detail": "https://sf16-ies-music-sg.tiktokcdn.com/obj/tos-alisg-ve-2774/ocrXdfdNDBeoFEhtmQEkJLQukBQYrY7gyoZKLC",
    "singer": "Weval",
    "clip_id": "7534682398064871441",
    "duration": 60,
    "music_id": "7534682398064871441",
    "music_url": "https://sf16-ies-music-sg.tiktokcdn.com/obj/tos-alisg-ve-2774/ocrXdfdNDBeoFEhtmQEkJLQukBQYrY7gyoZKLC",
    "poster_url": "https://p16-sg.tiktokcdn.com/aweme/720x720/tos-alisg-v-2774/oAtElBS5EBovAOAW8AkiTLlA8ECswAiV0QA4Yf.jpeg",
    "meta_song_id": "0",
    "placement_allowed": [
     "TikTok"
    ]
   },
   {
    "mood": "Dynamic",
    "genre": "Electronic",
    "theme": "Danceable",
    "ti
…
```

## `rapidapi-tiktok-api23.get_drama_detail` — Get Drama Detail

`GET /api/drama/detail` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 1529 ms

One call returns full details of a TikTok drama (short series) by its ID. The answer contains the drama's metadata, video cover, author info, engagement stats, and episode count. One item is the complete drama record with nested video and author objects.

| param | required | example / default |
|---|---|---|
| `dramaId` | yes | 7674268460205364245 |

Fields: `dramaInfo.id` Unique identifier for the drama; `dramaInfo.dramaInfo.dramaName` Title of the drama series; `dramaInfo.dramaInfo.description` Full plot description; `dramaInfo.dramaInfo.numVideos` Total number of episodes; `dramaInfo.stats.playCount` Total play count; `dramaInfo.stats.diggCount` Total likes; `dramaInfo.stats.commentCount` Total comments; `dramaInfo.author.id` Creator's user ID; `dramaInfo.author.nickname` Creator's display name; `dramaInfo.dramaInfo.themes[].tagVal` Drama theme or genre tag

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/drama/detail?dramaId=7674268460205364245" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "extra": {
  "now": 1791057246000,
  "logid": "20261003195406F473B3EE26AB85DC56ED",
  "fatal_item_ids": []
 },
 "log_pb": {
  "impr_id": "20261003195406F473B3EE26AB85DC56ED"
 },
 "dramaInfo": {
  "id": "7674270724466461973",
  "desc": "Dragón furioso liberado: invencible desde que interrumpió la boda",
  "isAd": false,
  "stats": {
   "diggCount": 6387,
   "playCount": 200500,
   "shareCount": 409,
   "collectCount": 1621,
   "commentCount": 21
  },
  "video": {
   "id": "7674270724466461973",
   "cover": "https://p16-common-sign.tiktokcdn-eu.com/tos-alisg-p-c7a081-sg/oQtfAfUNDDLUFCSGbxE6PPIzeC4QOaoBy8zzWk~tplv-tiktokx-origin.image?dr=10395&x-expires=1791226800&x-signature=xogrLo2Fty6EG9YtDeFDA4R6cT4%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=no1a",
   "ratio": "",
   "width": 0,
   "height": 0,
   "duration": 119,
   "zoomCover": {
    "240": "https://p16-common-sign.tiktokcdn-eu.com/tos-alisg-p-c7a081-sg/oQtfAfUNDDLUFCSGbxE6PPIzeC4QOaoBy8zzWk~tplv-photomode-zoomcover:240:240.jpeg?dr=10375&x-expires=1791226800&x-signature=mYqUnlU80ztg%2F%2BZHWqSlfELK7yo%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=no1a&ftpl=1",
    "480": "https://p16-common-sign.tiktokcdn-eu.com/tos-alisg-p-c7a081-sg/oQtfAfUNDDLUFCSGbxE6PPIzeC4QOaoBy8zzWk~tplv-photomode-zoomcover:480:480.jpeg?dr=10375&x-expires=1791226800&x-signature=wDVq2FbUQL41k6MUt4CH6HHDvvM%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=no1a&ftpl=1",
    "720": "https://p16-common-sign.tiktokcdn-eu
…
```

## `rapidapi-tiktok-api23.get_drama_episodes` — Get Drama Episodes

`GET /api/drama/episodes` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 876 ms

One call returns up to 24 episodes of a TikTok drama series. Each item in the answer is a single episode video with stats, cover, and metadata. The answer held 24 items in our call; get the next page by passing the returned `cursor` value in the `cursor` parameter.

| param | required | example / default |
|---|---|---|
| `cursor` | no | 0 |
| `count` | no | 24 |
| `dramaId` | yes | 7674268460205364245 |

Paging: read `cursor` from the answer and send it back as `cursor=` for the next page; stop when it is empty or repeats.

Fields: `itemList[].id` Episode video ID; `itemList[].desc` Episode title or description; `itemList[].stats.playCount` Episode play count; `itemList[].stats.diggCount` Episode likes; `itemList[].video.duration` Episode duration in seconds; `itemList[].video.cover` Episode thumbnail URL; `itemList[].dramaInfo.dramaName` Parent drama series name; `itemList[].dramaInfo.EpisodeNumber` Episode number in sequence; `cursor` Pagination cursor for next page; `hasMore` Whether more episodes exist

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/drama/episodes?count=24&cursor=0&dramaId=7674268460205364245" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "extra": {
  "now": 1791057245000,
  "logid": "20261003195404B1C57490BA4B66FB002E",
  "fatal_item_ids": []
 },
 "cursor": "24",
 "log_pb": {
  "impr_id": "20261003195404B1C57490BA4B66FB002E"
 },
 "hasMore": true,
 "itemList": [
  {
   "id": "7674270724466461973",
   "desc": "Dragón furioso liberado: invencible desde que interrumpió la boda",
   "isAd": false,
   "stats": {
    "diggCount": 6387,
    "playCount": 200500,
    "shareCount": 409,
    "collectCount": 1621,
    "commentCount": 21
   },
   "video": {
    "id": "7674270724466461973",
    "cover": "https://p19-common-sign.tiktokcdn-eu.com/tos-alisg-p-c7a081-sg/oQtfAfUNDDLUFCSGbxE6PPIzeC4QOaoBy8zzWk~tplv-tiktokx-origin.image?dr=10395&x-expires=1791226800&x-signature=67sTfyaXRvzJKgPIkxqw8oCUl7s%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=no1a",
    "ratio": "",
    "width": 0,
    "height": 0,
    "duration": 119,
    "zoomCover": {
     "240": "https://p16-common-sign.tiktokcdn-eu.com/tos-alisg-p-c7a081-sg/oQtfAfUNDDLUFCSGbxE6PPIzeC4QOaoBy8zzWk~tplv-photomode-zoomcover:240:240.jpeg?dr=10375&x-expires=1791226800&x-signature=mYqUnlU80ztg%2F%2BZHWqSlfELK7yo%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=no1a&ftpl=1",
     "480": "https://p19-common-sign.tiktokcdn-eu.com/tos-alisg-p-c7a081-sg/oQtfAfUNDDLUFCSGbxE6PPIzeC4QOaoBy8zzWk~tplv-photomode-zoomcover:480:480.jpeg?dr=10375&x-expires=1791226800&x-signature=b4IJ3c46IASWi%2FPhXFH0P%2Bp0ClQ%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=
…
```

## `rapidapi-tiktok-api23.get_effect_info` — Get Effect Info

`GET /api/effect/info` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 541 ms

One call returns metadata for a single TikTok effect (sticker/filter) by its ID. The answer contains the effect's name, description, icon, usage count, and configuration details. One item is the complete effect record.

| param | required | example / default |
|---|---|---|
| `effectId` | yes | 321535 |

Fields: `sticker_infos[].id` Unique effect ID; `sticker_infos[].name` Effect display name; `sticker_infos[].desc` Effect description; `sticker_infos[].vv_count` Total times effect was used; `sticker_infos[].user_count` Total unique users who used effect; `sticker_infos[].icon_url.url_list[]` Effect icon image URLs; `sticker_infos[].owner_nickname` Effect creator name; `sticker_infos[].publish_time` Effect publish timestamp; `sticker_infos[].tags[]` Effect capability tags

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/effect/info?effectId=321535" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "extra": {
  "now": 1791057308000,
  "logid": "202610031955081FE53928932B262B7A4D",
  "fatal_item_ids": []
 },
 "log_pb": {
  "impr_id": "202610031955081FE53928932B262B7A4D"
 },
 "status_msg": "",
 "status_code": 0,
 "sticker_infos": [
  {
   "id": "321535",
   "desc": "",
   "name": "Green Screen",
   "tags": [
    "canStack",
    "camera_front",
    "gs_enable_tt_effect_page_filter"
   ],
   "extra": "{\"prop_block_story\":true,\"zstFileSize\":\"282781\",\"zstFileUri\":\"54635c330085ae4442197c03da11cd52\",\"zipMd5\":\"cf79b19bcfb3acbc4cbbe6663f822af0\",\"raw_md5\":\"cf79b19bcfb3acbc4cbbe6663f822af0\"}",
   "sec_uid": "",
   "children": [],
   "icon_url": {
    "uri": "cfaa5ce4a49351ceb195197df28a788b",
    "url_list": [
     "https://lf19-effectcdn-us.tiktokcdn-us.com/obj/tiktok-loki-effect-oracle-tx/cfaa5ce4a49351ceb195197df28a788b",
     "https://lf16-effectcdn-us.tiktokcdn-us.com/obj/tiktok-loki-effect-oracle-tx/cfaa5ce4a49351ceb195197df28a788b"
    ],
    "url_prefix": null
   },
   "owner_id": "",
   "vv_count": 242061567347,
   "effect_id": "321535",
   "sdk_extra": "{\"pl\":{\"alg\":[],\"relation\":\"and\",\"imgK\":\"uploadedTexture\",\"loading\":false,\"support_gif\":true},\"isEHEffect\":false,\"triggerJson\":null}",
   "share_info": {
    "share_url": "?_d=0&share_sticker_id=321535&source=h5_m&u_code=0",
    "share_desc": "Check out this sticker! #TikTok",
    "now_invitation_card_image_urls": null
   },
   "user_count": 164862734,
   "is_favorite": false,
   "r
…
```

## `rapidapi-tiktok-api23.get_effect_posts` — Get Effect Posts

`GET /api/effect/posts` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 1018 ms

One call returns up to 30 TikTok posts that use a specific effect. Each item in the answer is a post with video, music, stats, and author data. The answer held 30 items in our call; get the next page by passing the returned `cursor` value in the `cursor` parameter.

| param | required | example / default |
|---|---|---|
| `cursor` | no | 0 |
| `count` | no | 30 |
| `effectId` | yes | 321535 |

Paging: read `cursor` from the answer and send it back as `cursor=` for the next page; stop when it is empty or repeats.

Fields: `aweme_list[].id` Post/video ID; `aweme_list[].desc` Post caption or description; `aweme_list[].stats.playCount` Video play count; `aweme_list[].stats.diggCount` Video likes; `aweme_list[].stats.commentCount` Video comments; `aweme_list[].video.duration` Video duration in milliseconds; `aweme_list[].video.cover.url_list[]` Video thumbnail URLs; `aweme_list[].music.title` Audio track title; `aweme_list[].music.author` Audio track artist; `cursor` Pagination cursor for next page

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/effect/posts?count=30&cursor=0&effectId=321535" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "extra": {
  "now": 1791057329000,
  "logid": "2026100319552943349DD94A1DE600EE06",
  "fatal_item_ids": []
 },
 "cursor": 30,
 "log_pb": {
  "impr_id": "2026100319552943349DD94A1DE600EE06"
 },
 "has_more": 1,
 "aweme_list": [
  {
   "desc": "Vector Jackson 🕺💥",
   "rate": 12,
   "is_vr": false,
   "music": {
    "id": 6927720794093129000,
    "mid": "6927720794093128454",
    "album": "Bad (Remastered)",
    "extra": "{\"aed_music_dur\":4.65,\"amplitude_peak\":1.0347477,\"apple_song_id\":559334751,\"beats\":{\"audio_effect_onset\":\"https://sf16-ies-music-sg.tiktokcdn.com/obj/tos-alisg-v-2774/a9931faadf5142daab7f624430259792\",\"beats_tracker\":\"https://sf16-ies-music-sg.tiktokcdn.com/obj/tos-alisg-v-2774/5b17e5e880234ebab159c…",
    "title": "Bad (2012 Remaster)",
    "author": "Michael Jackson",
    "id_str": "6927720794093128454",
    "is_pgc": true,
    "status": 1,
    "artists": [],
    "duration": 9,
    "language": "English",
    "play_url": {
     "uri": "",
     "width": 720,
     "height": 720,
     "url_list": [],
     "url_prefix": null
    },
    "position": null,
    "tag_list": null,
    "log_extra": "{\"meta_song_matched_type\":\"pgc\",\"ttm_matched_type\":\"\",\"ttm_track_id\":\"\",\"matched_meta_song_id\":\"\",\"vid\":\"\",\"owner_id\":\"\"}",
    "mute_type": 0,
    "music_ugid": 6927720794093129000,
    "mute_share": false,
    "theme_tags": [
     "Dance",
     "… 2 more"
    ],
    "user_count": 0,
    "cover_large": {
     "uri": "tos-alisg-v-2774/
…
```

## `rapidapi-tiktok-api23.get_keyword_sentence` — Get Keyword Sentence

`GET /api/trending/keyword/sentence` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 960 ms

The endpoint returned a deprecation notice with null data, indicating this endpoint is no longer supported.

| param | required | example / default |
|---|---|---|
| `order_type` | no | desc |
| `page` | no | 1 |
| `country` | no | US |
| `period` | no | 30 |
| `limit` | no | 50 |
| `keyword` | yes | promotion |

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/trending/keyword/sentence?page=1&limit=50&period=30&country=US&keyword=promotion&order_type=desc" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "msg": "deprecated",
 "code": 0,
 "data": null
}
```

## `rapidapi-tiktok-api23.get_live_category` — Get Live Category

`GET /api/live/category` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 1130 ms

One call returns all available live stream categories on TikTok. The answer contains category groups (Gaming, Lifestyle, etc.) with sub-categories and viewer counts. One item is a category group with nested sub-tabs.

Fields: `data[].tab_name` Main category name (e.g., Gaming); `data[].tab_type` Category type identifier; `data[].sub_tabs[].tab_name` Sub-category name (e.g., Fortnite); `data[].sub_tabs[].viewer_count` Current viewers in sub-category; `data[].sub_tabs[].cover_url` Sub-category cover image URL; `data[].sub_tabs[].rank_type` Ranking type for sub-category

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/live/category" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "data": [
  {
   "sub_tabs": [
    {
     "position": 0,
     "tab_name": "Garena Free Fire",
     "tab_type": "Garena Free Fire",
     "cover_url": "https://p16-common-sign.tiktokcdn.com/tos-alisg-i-agnx3xz2cs-sg/Garena_Free_Fire_co52c7.png~tplv-tiktokx-origin.image?dr=14582&refresh_token=7c3a8770&x-expires=1791658800&x-signature=YbEJReW6gP25Ua4Momv9kzV26H4%3D&t=4d5b0474&ps=13740610&shp=82f28457&shcp=9b759fb9&idc=my3",
     "rank_type": "hot_game",
     "viewer_count": 101766
    },
    {
     "position": 0,
     "tab_name": "Fortnite",
     "tab_type": "Fortnite",
     "cover_url": "https://p16-common-sign.tiktokcdn.com/tos-alisg-i-agnx3xz2cs-sg/Fortnite_co2ekt.png~tplv-tiktokx-origin.image?dr=14582&refresh_token=a500b06f&x-expires=1791658800&x-signature=SvJkzDi9EYDFZ687Ga7bVXHT4Ig%3D&t=4d5b0474&ps=13740610&shp=82f28457&shcp=9b759fb9&idc=my3",
     "rank_type": "hot_game",
     "viewer_count": 60027
    },
    {
     "position": 0,
     "tab_name": "Minecraft",
     "tab_type": "Minecraft",
     "cover_url": "https://p19-common-sign.tiktokcdn.com/tos-alisg-i-agnx3xz2cs-sg/Minecraft_co2b4k.png~tplv-tiktokx-origin.image?dr=14582&refresh_token=c50fd306&x-expires=1791658800&x-signature=i8Xa4ks5ZXX4pkOaIKdrOP0jV7s%3D&t=4d5b0474&ps=13740610&shp=82f28457&shcp=9b759fb9&idc=my3",
     "rank_type": "hot_game",
     "viewer_count": 37848
    },
    "… 6 more"
   ],
   "tab_name": "Gaming",
   "tab_type": "gaming",
   "is_not_show_tab": false
  },
  {
   "sub_tabs": [
    {
     "po
…
```

## `rapidapi-tiktok-api23.get_live_info` — Get Live Info

`GET /api/live/info` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 1210 ms

One call returns full details of a single live stream by room ID. The answer contains the streamer's profile, stream title, viewer count, engagement stats, and stream URLs. One item is the complete live room record.

| param | required | example / default |
|---|---|---|
| `roomId` | yes | 7618370406579243792 |

Fields: `data.id` Live room ID; `data.title` Stream title; `data.owner.id` Streamer's user ID; `data.owner.nickname` Streamer's display name; `data.owner.follow_info.follower_count` Streamer's follower count; `data.stats.total_user` Total viewers in stream; `data.stats.comment_count` Total comments in stream; `data.like_count` Total likes in stream; `data.stream_url.flv_pull_url.HD1` HD stream URL; `data.stream_url.flv_pull_url.SD1` SD stream URL

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/live/info?roomId=7618370406579243792" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "data": {
  "id": 7618370406579244000,
  "cover": {
   "uri": "webcast-va/7197507146179955462",
   "width": 0,
   "height": 0,
   "url_list": [
    "https://p16-webcast.tiktokcdn.com/webcast-va/7197507146179955462~tplv-obj.image",
    "https://p19-webcast.tiktokcdn.com/webcast-va/7197507146179955462~tplv-obj.image"
   ],
   "avg_color": "#8F8F8F",
   "image_type": 0,
   "is_animated": false,
   "open_web_url": ""
  },
  "owner": {
   "id": 6788752804346496000,
   "exp": 0,
   "id_str": "6788752804346496006",
   "secret": 0,
   "status": 1,
   "sec_uid": "MS4wLjABAAAA3jFDUnObfQ46dsWci1xMiTGzkkUFvww0YLThyqVL3XWTvw6RhDBT8Bk8AsXagwMT",
   "is_block": false,
   "nickname": "EL TOMBO FF 👮🏼‍♂️",
   "top_fans": [],
   "verified": false,
   "pay_grade": {
    "name": "",
    "level": 0,
    "score": 0,
    "next_name": "",
    "deprecated20": 0,
    "deprecated22": 0,
    "deprecated23": 0,
    "deprecated24": 0,
    "deprecated25": 0,
    "deprecated26": 0,
    "grade_banner": "",
    "grade_describe": "",
    "grade_icon_list": [],
    "next_privileges": "",
    "screen_chat_type": 0,
    "upgrade_need_consume": 0
   },
   "pay_score": 0,
   "push_digg": false,
   "scm_label": "",
   "user_attr": {
    "is_admin": false,
    "is_muted": false,
    "mute_duration": 0,
    "is_super_admin": false,
    "is_channel_admin": false,
    "admin_permissions": {},
    "has_voting_function": false
   },
   "user_role": 0,
   "badge_list": [
    {
     "combine": {
      "str": "18",
      "
…
```

## `rapidapi-tiktok-api23.get_live_stream` — Get Live Stream

`GET /api/live/stream` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 978 ms

One call returns up to 3 active live streams for a specific game or category tag. Each item in the answer is a live room with streamer profile, title, viewer count, and stream URLs. The answer held 3 items in our call.

| param | required | example / default |
|---|---|---|
| `load_more` | no | true |
| `related_live_tag` | yes | Fortnite |

Fields: `data[].data.id` Live room ID; `data[].data.title` Stream title; `data[].data.owner.id` Streamer's user ID; `data[].data.owner.nickname` Streamer's display name; `data[].data.owner.display_id` Streamer's handle; `data[].data.stats.total_user` Current viewer count; `data[].data.stats.comment_count` Total comments; `data[].data.like_count` Total likes; `data[].data.stream_url.flv_pull_url.HD1` HD stream URL; `data[].data.hashtag.title` Stream category/hashtag

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/live/stream?load_more=true&related_live_tag=Fortnite" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "data": [
  {
   "rid": "202610031954562B7D45D44D4075000C87",
   "data": {
    "id": 7692466824799014000,
    "cover": {
     "uri": "720x720/tos-alisg-avt-0068/7331555196612542466",
     "url_list": [
      "https://p16-common-sign.tiktokcdn-eu.com/tos-alisg-avt-0068/7331555196612542466~tplv-tiktokx-cropcenter:720:720.webp?dr=10399&refresh_token=1023da80&x-expires=1791226800&x-signature=yd9XHrrhIs1zMQUaxsgI4VBzG9I%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=fdd36af4&idc=no1a",
      "https://p19-common-sign.tiktokcdn-eu.com/tos-alisg-avt-0068/7331555196612542466~tplv-tiktokx-cropcenter:720:720.webp?dr=10399&refresh_token=44f6a52c&x-expires=1791226800&x-signature=T1clvw0FDZPAtFOMLzOTsZYiyUk%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=fdd36af4&idc=no1a",
      "https://p16-common-sign.tiktokcdn-eu.com/tos-alisg-avt-0068/7331555196612542466~tplv-tiktokx-cropcenter:720:720.jpeg?dr=10399&refresh_token=1ca3699d&x-expires=1791226800&x-signature=Gzcw6dF3nA2oX8GSL9QoAWcqiWo%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=fdd36af4&idc=no1a"
     ]
    },
    "owner": {
     "id": 6907362064727246000,
     "id_str": "6907362064727245825",
     "status": 1,
     "sec_uid": "MS4wLjABAAAAsqXZV_NMWFqU9N8EwzXzh7rPdoSAdoUSWJNfO_C4c4BtSgHCvdpIXs-a9A7Cl0LM",
     "nickname": "Loukious",
     "own_room": {
      "room_ids": [
       7692466824799014000
      ],
      "room_ids_str": [
       "7692466824799013653"
      ]
     },
     "pay_grade": {},
     "user_attr": {},
     "display_id": "ttv
…
```

## `rapidapi-tiktok-api23.get_place_info` — Get Place Info

`GET /api/place/info` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 569 ms

One call returns details about a TikTok location (place) by its ID. The answer contains the place's name, address, category, and a gallery of up to 30 pictures taken there, plus a count of videos posted at that location.

| param | required | example / default |
|---|---|---|
| `placeId` | yes | 22535865202704586 |

Fields: `poiInfo.poi.id` Place ID; `poiInfo.poi.name` Place name; `poiInfo.poi.address` Full address; `poiInfo.poi.category` Place category (e.g. 'Places'); `poiInfo.poi.ttTypeNameMedium` Place type (e.g. 'Places', 'District'); `poiInfo.poi.pictureAlbum.pictures[]` Array of pictures taken at this place; `poiInfo.stats.videoCount` Total videos posted at this location

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/place/info?placeId=22535865202704586" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "extra": {
  "now": 1791057335000,
  "logid": "202610031955353AB46BB81920402A1C04",
  "fatal_item_ids": []
 },
 "log_pb": {
  "impr_id": "202610031955353AB46BB81920402A1C04"
 },
 "poiInfo": {
  "poi": {
   "id": "22535865202704586",
   "city": "",
   "name": "Hollywood",
   "type": 3,
   "address": "California, United States",
   "country": "",
   "category": "Places",
   "cityCode": "116023605",
   "province": "",
   "typeCode": "",
   "isClaimed": false,
   "phoneInfo": {
    "exist": false
   },
   "ttTypeCode": "19a3a6",
   "countryCode": "6252001",
   "fatherPoiId": "22535796484723736",
   "isCollected": false,
   "indexEnabled": true,
   "pictureAlbum": {
    "pictures": [
     {
      "urlList": [
       "https://p16-tiktok-poi-picture-sign.tiktokcdn-us.com/tos-useast5-i-8rftdyv36x-tx/035fa12483db8e17c65088691910c35c~tplv-8rftdyv36x-heic-crop-v3:800:800.jpeg?rk3s=733ab7a5&x-expires=1822472998&x-signature=NkmSl4fLrXTNTNbXhrxyqHsK1jg%3D"
      ]
     },
     {
      "urlList": [
       "https://p16-tiktok-poi-picture-sign.tiktokcdn-us.com/tos-useast5-i-8rftdyv36x-tx/d8ba529e347ef40cb2ba6456d76a7680~tplv-8rftdyv36x-heic-crop-v3:800:800.jpeg?rk3s=733ab7a5&x-expires=1822472998&x-signature=VBj1pl%2Bj8uvFZRzKiidkTClFF5Y%3D"
      ]
     },
     {
      "urlList": [
       "https://p19-tiktok-poi-picture-sign.tiktokcdn-us.com/tos-useast5-i-8rftdyv36x-tx/1a3dcf73d6a6f67b830559af911fd658~tplv-8rftdyv36x-heic-crop-v3:800:800.jpeg?rk3s=733ab7a5&x-expires=1822441837&x-signature=
…
```

## `rapidapi-tiktok-api23.get_place_posts` — Get Place Posts

`GET /api/place/posts` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 718 ms

One call returns up to 30 TikTok posts tagged at a specific location. Each item is a post with video, music, stats, and author info. The answer includes a cursor for pagination; pass the returned cursor value to the cursor parameter to get the next page.

| param | required | example / default |
|---|---|---|
| `count` | no | 30 |
| `cursor` | no | 0 |
| `placeId` | yes | 22535796481538024 |

Paging: read `cursor` from the answer and send it back as `cursor=` for the next page; stop when it is empty or repeats.

Fields: `itemList[].id` Post ID; `itemList[].desc` Post caption; `itemList[].poi.name` Location name; `itemList[].video.playAddr` Video play URL; `itemList[].music.title` Audio track title; `itemList[].stats.playCount` View count; `itemList[].stats.diggCount` Like count; `itemList[].author.id` Creator user ID; `cursor` Pagination cursor; pass to cursor parameter for next page; `hasMore` Whether more posts exist

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/place/posts?count=30&cursor=0&placeId=22535796481538024" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "extra": {
  "now": 1791057309000,
  "logid": "20261003195508588E9B78191AB402DD62",
  "fatal_item_ids": []
 },
 "cursor": "283283",
 "log_pb": {
  "impr_id": "20261003195508588E9B78191AB402DD62"
 },
 "hasMore": true,
 "itemList": [
  {
   "id": "7315791427319975169",
   "poi": {
    "id": "22535796481538024",
    "city": "Ho Chi Minh City",
    "name": "District 12",
    "type": 0,
    "address": "Ho Chi Minh City, Vietnam",
    "country": "",
    "category": "Place and Address",
    "cityCode": "1580578",
    "province": "",
    "typeCode": "",
    "ttTypeCode": "19a3a2",
    "countryCode": "1562822",
    "fatherPoiId": "",
    "ttTypeCodeL1": "190000",
    "fatherPoiName": "Ho Chi Minh City",
    "ttTypeNameTiny": "District",
    "ttTypeNameSuper": "Place and Address",
    "ttTypeNameMedium": "Places"
   },
   "desc": "Đú trend cho hội chị em chân ngắn 🐸 #echhuongnoi ",
   "isAd": false,
   "music": {
    "id": "7248618513144122118",
    "album": "พี่ชอบหนูที่สุดเลย Feat.VARINZ",
    "title": "พี่ชอบหนูที่สุดเลย (I Like You The Most) Feat.VARINZ - Speed Up Version",
    "tt2dsp": {
     "tt_to_dsp_song_infos": [
      {
       "token": {
        "apple_music_token": {
         "developer_token": "eyJhbGciOiJFUzI1NiIsImtpZCI6Ikc2Q0dLMjdWQzMifQ.eyJleHAiOjE3OTEyMzIzMjEsImlhdCI6MTc5MDk3MzEyMSwiaXNzIjoiTUo3OTdEOFU2RiJ9._1WH1HzdivD76ZwR9ma7Y-0ROK_GLyqOUKjhMC1XzbsvrSf1oCdIBh7nB8nxyG0o4x67VeInmWSullkKxcztrQ"
        }
       },
       "song_id": "1871796187",
       "platform": 
…
```

## `rapidapi-tiktok-api23.get_post_detail` — Get Post Detail

`GET /api/post/detail` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 975 ms

One call returns full details of a single TikTok post by video ID. The answer contains the post caption, video file with multiple quality options, music track, engagement stats, and author info.

| param | required | example / default |
|---|---|---|
| `videoId` | yes | 7306132438047116586 |

Fields: `itemInfo.itemStruct.id` Post ID; `itemInfo.itemStruct.desc` Post caption; `itemInfo.itemStruct.video.playAddr` Video play URL; `itemInfo.itemStruct.video.duration` Video duration in seconds; `itemInfo.itemStruct.video.cover` Video thumbnail URL; `itemInfo.itemStruct.music.title` Audio track title; `itemInfo.itemStruct.music.authorName` Audio artist name; `itemInfo.itemStruct.stats.playCount` View count; `itemInfo.itemStruct.stats.diggCount` Like count; `itemInfo.itemStruct.stats.commentCount` Comment count

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/post/detail?videoId=7306132438047116586" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "itemInfo": {
  "itemStruct": {
   "id": "7306132438047116586",
   "desc": "Hi! Well, so, basically I have a birthday coming up and I was thinking a fun way to celebrate the year we’ve had together would be to make The Eras Tour Concert Film available for you to watch at home! Very happy to be able to tell you that the extended version of the film including “Wildest Dreams,…",
   "isAd": false,
   "music": {
    "id": "7306132624873917226",
    "title": "original sound",
    "tt2dsp": {
     "tt_to_dsp_song_infos": []
    },
    "playUrl": "https://v16m.tiktokcdn-us.com/10b4eecf368927eda6821d2ba8695c4d/6ac1b23c/video/tos/useast5/tos-useast5-v-27dcd7-tx/oQt0O6BlUk4rgb6TxMvlO76Y1WkmIAviCiZSS/?a=1233&bti=ODszNWYuMDE6&&bt=125&ft=GSDrKInz7ThOEk-GXq8Zmo&mime_type=audio_mpeg&rc=N2Q5aDRlOzw1N2dnMzM4N0BpajhwZ3Q5cnQ8bzMzZzU8NEBgLV8vYWJjNWExY2A0M…",
    "private": false,
    "duration": 59,
    "original": true,
    "collected": false,
    "authorName": "Taylor Swift",
    "coverLarge": "https://p16-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/89f037890a015565d4eb3521d65b7a13~tplv-tiktokx-cropcenter:1080:1080.jpeg?dr=9640&refresh_token=7964adea&x-expires=1791226800&x-signature=R1q3h1%2FkH1MktNyJmWMupgwxU7M%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast8",
    "coverThumb": "https://p19-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/89f037890a015565d4eb3521d65b7a13~tplv-tiktokx-cropcenter:100:100.jpeg?dr=9640&refresh_token=139203f5&x-expires=1791226800
…
```

## `rapidapi-tiktok-api23.get_replies_comment_of_post` — Get Replies Comment of Post

`GET /api/post/comment/replies` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 565 ms

One call returns up to 6 replies to a specific comment on a TikTok post. Each item is a reply with the commenter's username, text, like count, and timestamp. The answer includes a cursor for pagination; pass it to the cursor parameter to get the next batch of replies.

| param | required | example / default |
|---|---|---|
| `count` | no | 6 |
| `cursor` | no | 0 |
| `videoId` | yes | 7306132438047116586 |
| `commentId` | yes | 7306133620770751250 |

Paging: read `cursor` from the answer and send it back as `cursor=` for the next page; stop when it is empty or repeats.

Fields: `comments[].cid` Comment ID; `comments[].text` Comment text; `comments[].user.nickname` Commenter's display name; `comments[].user.unique_id` Commenter's username; `comments[].user.uid` Commenter's user ID; `comments[].digg_count` Like count on this reply; `comments[].create_time` Unix timestamp of comment creation; `cursor` Pagination cursor; pass to cursor parameter for next batch; `total` Total number of replies to the parent comment

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/post/comment/replies?count=6&cursor=0&videoId=7306132438047116586&commentId=7306133620770751250" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "extra": {
  "now": 1791057312000,
  "logid": "202610031955123B59D62C103E5E00F44A",
  "fatal_item_ids": []
 },
 "total": 80,
 "cursor": 6,
 "log_pb": {
  "impr_id": "202610031955123B59D62C103E5E00F44A"
 },
 "comments": [
  {
   "cid": "7306134897168220971",
   "text": "and nbnc 😞",
   "user": {
    "uid": "244763732101201920",
    "events": null,
    "sec_uid": "MS4wLjABAAAAHoIHAm1m2fgRDxpGyFEyZXCZyGXRnq0i4wrunVL7fvxV_ULPblMLPCx8v-W_sHnC",
    "cha_list": null,
    "nickname": "payton°",
    "cover_url": null,
    "item_list": null,
    "unique_id": "payton_davis0",
    "user_tags": null,
    "geofencing": null,
    "type_label": null,
    "bold_fields": null,
    "need_points": null,
    "ad_cover_url": null,
    "avatar_thumb": {
     "uri": "tos-useast5-avt-0068-tx/ec6f314066fce4f8ac7b815252bb60c8",
     "url_list": [
      "https://p19-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/ec6f314066fce4f8ac7b815252bb60c8~tplv-tiktokx-cropcenter:100:100.jpg?dr=9640&refresh_token=b6d82e7d&x-expires=1791140400&x-signature=0dmFgS5HTG7ke6%2Bhiu%2FCNOZ0IXM%3D&t=4d5b0474&ps=13740610&shp=30310797&shcp=ff37627b&idc=useast8",
      "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/ec6f314066fce4f8ac7b815252bb60c8~tplv-tiktokx-cropcenter:100:100.jpg?dr=9640&refresh_token=e284cb9e&x-expires=1791140400&x-signature=EC8u2%2BZ44ODcsfxV%2BYzWRPcwnzY%3D&t=4d5b0474&ps=13740610&shp=30310797&shcp=ff37627b&idc=useast8",
      "https://p19-common-sign.tiktokcdn-us.com/tos-usea
…
```

## `rapidapi-tiktok-api23.get_top_ads` — Get Top Ads

`GET /api/trending/ads` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 492 ms

One call returns up to 20 trending TikTok ads from the past 7 days, sorted by click-through rate. Each item is an ad with title, brand, video, engagement metrics, and industry/objective tags. The answer includes pagination; pass the next page number to the page parameter.

| param | required | example / default |
|---|---|---|
| `keyword` | no |  |
| `ad_format` | no |  |
| `order_by` | no | ctr |
| `period` | no | 7 |
| `like` | no |  |
| `limit` | no | 20 |
| `objective` | no |  |
| `country` | no | US |
| `ad_language` | no |  |
| `industry` | no |  |
| `page` | no | 1 |

Fields: `data.materials[].id` Ad ID; `data.materials[].ad_title` Ad headline; `data.materials[].brand_name` Brand or advertiser name; `data.materials[].ctr` Click-through rate; `data.materials[].like` Like count; `data.materials[].cost` Estimated cost; `data.materials[].video_info.cover` Video thumbnail URL; `data.materials[].video_info.video_url` Video URLs by quality; `data.materials[].industry_key` Industry category; `data.pagination.has_more` Whether more ads exist

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/trending/ads?page=1&limit=20&period=7&country=US&order_by=ctr" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "msg": "OK",
 "code": 0,
 "data": {
  "materials": [
   {
    "id": "7081930419096977410",
    "ctr": 0.09,
    "cost": 2,
    "like": 722,
    "ad_title": "One capsule every night at 9 PM – 10–14 kg down in just 5 weeks.",
    "favorite": false,
    "is_search": true,
    "brand_name": "LET ME HELP YOU TODAY!",
    "video_info": {
     "vid": "v1c033g50000daqqk47og65sb1mnj8ig",
     "cover": "https://p16-common-sign.tiktokcdn.com/tos-useast2a-p-0051c799-euttp/o4Wlv5EAYWzA1BAxKmqovIi8Xaih1GroEqBAP~tplv-noop.image?dr=18692&refresh_token=5c6933d6&x-expires=1791078947&x-signature=KZJIqv90npZxMOFkELFzi7GvD5Q%3D&t=9276707c&ps=14f1eb3e&shp=9e36835a&shcp=317596d8&idc=my&VideoID=v1c033g50000daqqk…",
     "width": 576,
     "height": 1024,
     "duration": 15.967,
     "video_url": {
      "360p": "https://v16m-default.tiktokcdn.com/aef5b3b4c9cad6e1f1c146e00ece4b89/6ac1b223/video/tos/useast2a/tos-useast2a-ve-0051c799-euttp/oQUTUagDDI9wwr8lAvFgQjN8wBf2qCBQEfgTDt/?a=0&bti=NTU4QDM1NGA%3D&&bt=597&ft=cApXJCz7ThWH~FgnLGZmo0P&mime_type=video_mp4&rc=Zjk3Omg0NWk0aGVnZTw8PEBpajtxNHY5cjd0ZDMzODYzNEAxYV5f…",
      "480p": "https://v16m-default.tiktokcdn.com/2585b5eab1a68412b84bee51beaccbf6/6ac1b223/video/tos/useast2a/tos-useast2a-ve-0051c799-euttp/ok1DFBTDaD8Vwel1QgDYEfw8QqtNqIATIBvNgc/?a=0&bti=NTU4QDM1NGA%3D&&bt=857&ft=cApXJCz7ThWH~FgnLGZmo0P&mime_type=video_mp4&rc=ZDtlZjg2ZjtmZTxmOmg2OkBpajtxNHY5cjd0ZDMzODYzNEAxNTI1…",
      "540p": "https://v16m-default.tiktokcdn.com/e4dd934a172f4d7bbbe55ee
…
```

## `rapidapi-tiktok-api23.get_top_product_detail` — Get Top Product Detail

`GET /api/trending/top-products/detail` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 491 ms

This endpoint is deprecated and returns no data.

| param | required | example / default |
|---|---|---|
| `product_id` | yes | 601226 |

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/trending/top-products/detail?product_id=601226" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "msg": "deprecated",
 "code": 0,
 "data": null
}
```

## `rapidapi-tiktok-api23.get_top_product_metrics` — Get Top Product Metrics

`GET /api/trending/top-products/metrics` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 1003 ms

This endpoint is deprecated and returns no data.

| param | required | example / default |
|---|---|---|
| `product_id` | yes | 601226 |

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/trending/top-products/metrics?product_id=601226" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "msg": "deprecated",
 "code": 0,
 "data": null
}
```

## `rapidapi-tiktok-api23.get_top_products` — Get Top Products

`GET /api/trending/top-products` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 348 ms

This endpoint is deprecated and returns no data.

| param | required | example / default |
|---|---|---|
| `order_by` | no | post |
| `page` | no | 1 |
| `order_type` | no | desc |
| `country_code` | no |  |
| `last` | no | 7 |
| `keyword` | no |  |
| `category_id` | no |  |
| `week` | no |  |
| `month` | no |  |

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/trending/top-products?last=7&page=1&order_by=post&order_type=desc" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "msg": "deprecated",
 "code": 0,
 "data": null
}
```

## `rapidapi-tiktok-api23.get_trending_creator` — Get Trending Creator

`GET /api/trending/creator` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 520 ms

This endpoint is deprecated and returns no data.

| param | required | example / default |
|---|---|---|
| `country` | no | US |
| `audience_country` | no |  |
| `page` | no | 1 |
| `audience_count` | no |  |
| `sort_by` | no | follower |
| `limit` | no | 20 |

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/trending/creator?page=1&limit=20&country=US&sort_by=follower" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "msg": "deprecated",
 "code": 0,
 "data": null
}
```

## `rapidapi-tiktok-api23.get_trending_hashtag` — Get Trending Hashtag

`GET /api/trending/hashtag` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 1025 ms

This endpoint is deprecated and returns no data.

| param | required | example / default |
|---|---|---|
| `page` | no | 1 |
| `limit` | no | 20 |
| `period` | no | 120 |
| `industry_id` | no |  |
| `filter_by` | no |  |
| `country` | no | US |
| `sort_by` | no | popular |

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/trending/hashtag?page=1&limit=20&period=120&country=US&sort_by=popular" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "msg": "deprecated",
 "code": 0,
 "data": null
}
```

## `rapidapi-tiktok-api23.get_trending_keyword` — Get Trending Keyword

`GET /api/trending/keyword` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 335 ms

This endpoint is deprecated and returns no data.

| param | required | example / default |
|---|---|---|
| `page` | no | 1 |
| `order_by` | no |  |
| `limit` | no | 20 |
| `order_type` | no |  |
| `period` | no | 7 |
| `country` | no | US |
| `industry` | no |  |
| `objective` | no |  |
| `keyword_type` | no |  |

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/trending/keyword?page=1&limit=20&period=7&country=US" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "msg": "deprecated",
 "code": 0,
 "data": null
}
```

## `rapidapi-tiktok-api23.get_trending_posts` — Get Trending Posts

`GET /api/post/trending` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 1280 ms

One call returns up to 16 trending TikTok posts. Each item is a post with video, music, and engagement stats. The answer held 16 items on this page. Get the next page by passing the cursor value from the answer into the cursor parameter.

| param | required | example / default |
|---|---|---|
| `count` | no | 16 |

Fields: `itemList[].id` Post ID; `itemList[].desc` Post caption/description; `itemList[].stats.playCount` Number of views; `itemList[].stats.diggCount` Number of likes; `itemList[].stats.commentCount` Number of comments; `itemList[].stats.shareCount` Number of shares; `itemList[].music.id` Audio track ID; `itemList[].music.title` Audio track title; `itemList[].video.playAddr` Video playback URL; `cursor` Pagination cursor for next page

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/post/trending?count=16" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "extra": {
  "now": 1791057290000,
  "logid": "20261004035449912EFAD53C5F05F4A512",
  "fatal_item_ids": []
 },
 "cursor": "0",
 "log_pb": {
  "impr_id": "20261004035449912EFAD53C5F05F4A512"
 },
 "hasMore": true,
 "itemList": [
  {
   "id": "7692090203355319559",
   "desc": "фотки в тгк «юник еня» #2k17 #2k17vibes #сохраненки #закат ",
   "isAd": false,
   "music": {
    "id": "7028918534302370562",
    "title": "Фараон нон стоп",
    "tt2dsp": {},
    "playUrl": "https://v16m.tiktokcdn.com/aa915ae4ccb88d4e2d310d24baa84acb/6ac2af1c/video/tos/alisg/tos-alisg-v-27dcd7/453bab2357c14d04b90538eccfb6f053/?a=1180&bti=ODszNWYuMDE6&&bt=122&ft=GcDrcInz7ThNEk-GXq8Zmo&mime_type=audio_mp4&rc=M3A0ZjU6Zmp1OTMzODU8NEBpM3A0ZjU6Zmp1OTMzODU8NEA2YS5xcjRfbDJgLS1kMS1zYSM2YS5xcjRfb…",
    "private": false,
    "duration": 18,
    "original": true,
    "authorName": "crystalldrpo",
    "coverLarge": "https://p16-common-sign.tiktokcdn.com/tos-maliva-avt-0068/7322495748212277253~tplv-tiktokx-cropcenter:1080:1080.jpeg?dr=14579&refresh_token=9c979b41&x-expires=1791226800&x-signature=kl9D9bZOzYihYP5NiK3RpxzIDEI%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=my2",
    "coverThumb": "https://p16-common-sign.tiktokcdn.com/tos-maliva-avt-0068/7322495748212277253~tplv-tiktokx-cropcenter:100:100.jpeg?dr=14579&refresh_token=4c51b244&x-expires=1791226800&x-signature=reWc08NhhOIxvctnUzDYufbxZUY%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=my2",
    "coverMedium": "https://p16-common-sign.t
…
```

## `rapidapi-tiktok-api23.get_trending_song` — Get Trending Song

`GET /api/trending/song` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 1000 ms

This endpoint is deprecated and returns no data.

| param | required | example / default |
|---|---|---|
| `country` | no | US |
| `page` | no | 1 |
| `new_on_board` | no |  |
| `period` | no | 7 |
| `commercial_music` | no |  |
| `rank_type` | no | popular |
| `limit` | no | 20 |

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/trending/song?page=1&limit=20&period=7&country=US&rank_type=popular" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "msg": "deprecated",
 "code": 0,
 "data": null
}
```

## `rapidapi-tiktok-api23.get_trending_video` — Get Trending Video

`GET /api/trending/video` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 1098 ms

This endpoint is deprecated and returns no data.

| param | required | example / default |
|---|---|---|
| `page` | no | 1 |
| `period` | no | 30 |
| `order_by` | no | vv |
| `limit` | no | 20 |
| `country` | no | US |

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/trending/video?page=1&limit=20&period=30&country=US&order_by=vv" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "msg": "deprecated",
 "code": 0,
 "data": null
}
```

## `rapidapi-tiktok-api23.get_trending_video_by_keyword` — Get Trending Video By Keyword

`GET /api/trending/keyword/posts` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 373 ms

This endpoint is deprecated and returns no data.

| param | required | example / default |
|---|---|---|
| `period` | no | 7 |
| `country` | no | US |
| `limit` | no | 10 |
| `keyword` | yes | promotion |

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/trending/keyword/posts?limit=10&period=7&country=US&keyword=promotion" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "msg": "deprecated",
 "code": 0,
 "data": null
}
```

## `rapidapi-tiktok-api23.get_unlimited_sounds` — Get Unlimited Sounds

`GET /api/music/unlimited-sounds` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 509 ms

One call returns up to 10 music tracks from TikTok's unlimited sounds library. Each item is a track with metadata, artist info, and playback URLs. The answer held 3 items on this page. Get the next page by incrementing the page parameter.

| param | required | example / default |
|---|---|---|
| `orderBy` | no | 1 |
| `page` | no | 1 |
| `pageSize` | no | 10 |

Fields: `data.music_list[].id` Music track ID; `data.music_list[].title` Track title; `data.music_list[].author` Artist name; `data.music_list[].duration` Track duration in seconds; `data.music_list[].language` Track language; `data.music_list[].play_url.uri` Audio playback URL; `data.music_list[].user_count` Number of videos using this track; `data.music_list[].is_unlimited_music` Whether track is unlimited use; `data.total` Total tracks in library; `data.has_more` Whether more pages exist

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/music/unlimited-sounds?page=1&orderBy=1&pageSize=10" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "data": {
  "total": 771789,
  "has_more": true,
  "music_list": [
   {
    "id": 7603363008859048000,
    "mid": "7603363008859047972",
    "album": "",
    "extra": "{\"amplitude_peak\":0.80436563,\"beats\":{\"audio_effect_onset\":\"https://sf19.tiktokcdn-us.com/obj/tos-alisg-v-2774/oAIUIABAzhIFFeMTeXEY8SIf4TpaPQAAGdIMCg\",\"beats_tracker\":\"https://sf16.tiktokcdn-us.com/obj/tos-alisg-v-2774/oozFqtBoEGZCCJAnvfrSKEkepmAQUDdRiAEgCA\",\"energy_trace\":\"https://sf16.tiktokcdn-us…",
    "title": "Comedy Corridor",
    "author": "Finley Reed",
    "id_str": "7603363008859047972",
    "is_pgc": true,
    "status": 1,
    "artists": [
     {
      "uid": "7599270419812942869",
      "avatar": {
       "uri": "tos-alisg-avt-0068/ea97e870dfd10f0ba7aae4a18ee46f6c",
       "url_list": [
        "https://p16-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/ea97e870dfd10f0ba7aae4a18ee46f6c~tplv-tiktokx-cropcenter:168:168.webp?dr=9638&refresh_token=62ab2632&x-expires=1791140400&x-signature=xGg05RTfbxMxOKqyHFOzZTIQNeE%3D&t=4d5b0474&ps=13740610&shp=544a444f&shcp=8ee3610a&idc=useast5",
        "https://p19-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/ea97e870dfd10f0ba7aae4a18ee46f6c~tplv-tiktokx-cropcenter:168:168.webp?dr=9638&refresh_token=5f3aa78e&x-expires=1791140400&x-signature=c59vPNR%2BgzlXbHCSDuGLeRdHvzg%3D&t=4d5b0474&ps=13740610&shp=544a444f&shcp=8ee3610a&idc=useast5",
        "https://p16-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/ea97e870dfd10f0ba7aae4a18ee46f6c~tplv-ti
…
```

## `rapidapi-tiktok-api23.get_user_dramas` — Get User Dramas

`GET /api/user/dramas` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 1084 ms

One call returns up to 20 short dramas (serialized video series) from a TikTok user. Each item is a drama with cover, title, episode count, and description. The answer held 3 items on this page. Get the next page by passing the cursor value from the answer into the cursor parameter.

| param | required | example / default |
|---|---|---|
| `cursor` | no | 0 |
| `count` | no | 20 |
| `secUid` | yes | MS4wLjABAAAA63WLj4gsA7Ad6V3caZ9l5PhxNJk7ZQTTdgEF4SZSVKmlOudP |

Paging: read `cursor` from the answer and send it back as `cursor=` for the next page; stop when it is empty or repeats.

Fields: `dramaList[].dramaID` Drama series ID; `dramaList[].dramaName` Drama title; `dramaList[].numVideos` Number of episodes; `dramaList[].numWatched` Total views; `dramaList[].description` Drama synopsis; `dramaList[].themes[].tagVal` Genre/theme tag; `dramaList[].cover.urlList[]` Cover image URLs; `cursor` Pagination cursor for next page

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/user/dramas?count=20&cursor=0&secUid=MS4wLjABAAAA63WLj4gsA7Ad6V3caZ9l5PhxNJk7ZQTTdgEF4SZSVKmlOudPA56zl5rzl6SGCOEv" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "extra": {
  "now": 1791057280000,
  "logid": "2026100319544016EF3F7297966BDFDC30",
  "fatal_item_ids": []
 },
 "cursor": "20",
 "log_pb": {
  "impr_id": "2026100319544016EF3F7297966BDFDC30"
 },
 "hasMore": true,
 "dramaList": [
  {
   "cover": {
    "urlList": [
     "https://p16-common-sign.tiktokcdn-us.com/tos-alisg-i-fjfgkmyddx-sg/3eb09f07de334157977c52c5a2298e1c~tplv-tiktokx-origin.image?dr=9636&x-expires=1791226800&x-signature=oeC%2Fn5ho8Inc%2B5FIiRcfqiSZRcU%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=useast8",
     "https://p19-common-sign.tiktokcdn-us.com/tos-alisg-i-fjfgkmyddx-sg/3eb09f07de334157977c52c5a2298e1c~tplv-tiktokx-origin.image?dr=9636&x-expires=1791226800&x-signature=IrIijZCvh24DQ1Vng5%2Fg60aJ5hg%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=useast8",
     "https://p16-common-sign.tiktokcdn-us.com/tos-alisg-i-fjfgkmyddx-sg/3eb09f07de334157977c52c5a2298e1c~tplv-tiktokx-origin.jpeg?dr=9636&x-expires=1791226800&x-signature=GiXAG25EhZM949BEWbaRMNE1HrA%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=useast8"
    ]
   },
   "themes": [
    {
     "tagID": "7628991192537158672",
     "tagKey": "tag_Fantasy_GeneralSettings",
     "tagVal": "Fantasy"
    },
    {
     "tagID": "7628991193808098305",
     "tagKey": "tag_Medical_Plot",
     "tagVal": "Medical Drama"
    },
    {
     "tagID": "7628991193716069392",
     "tagKey": "tag_Mistakenidentities_Relationship",
     "tagVal": "Mistaken Identities"
    }
   ],
   "dramaID": "
…
```

## `rapidapi-tiktok-api23.get_user_info` — Get User Info

`GET /api/user/info` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 980 ms

One call returns a TikTok user's profile information by username. The answer contains user details, follower/following counts, and engagement stats.

| param | required | example / default |
|---|---|---|
| `uniqueId` | yes | taylorswift |

Fields: `userInfo.user.id` User ID; `userInfo.user.uniqueId` Username; `userInfo.user.nickname` Display name; `userInfo.user.signature` Bio/signature; `userInfo.user.verified` Whether account is verified; `userInfo.stats.followerCount` Number of followers; `userInfo.stats.followingCount` Number of accounts followed; `userInfo.stats.videoCount` Number of videos posted; `userInfo.stats.heartCount` Total likes received; `userInfo.user.avatarLarger` Profile picture URL

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/user/info?uniqueId=taylorswift" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "userInfo": {
  "user": {
   "id": "6881290705605477381",
   "ftc": false,
   "secUid": "MS4wLjABAAAAqB08cUbXaDWqbD6MCga2RbGTuhfO2EsHayBYx08NDrN7IE3jQuRDNNN6YwyfH6_6",
   "secret": false,
   "bioLink": {
    "link": "taylorswift.com",
    "risk": 0
   },
   "nickname": "Taylor Swift",
   "relation": 0,
   "ttSeller": false,
   "uniqueId": "taylorswift",
   "verified": true,
   "signature": "This is pretty much just a cat account",
   "profileTab": {
    "showMusicTab": true,
    "showPlayListTab": false,
    "showQuestionTab": false
   },
   "avatarThumb": "https://p16-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/89f037890a015565d4eb3521d65b7a13~tplv-tiktokx-cropcenter:100:100.jpeg?dr=9640&refresh_token=b207551a&x-expires=1791226800&x-signature=KqkDN5o9BlmaKOquAblS%2BHNF4ms%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast5",
   "duetSetting": 0,
   "isADVirtual": false,
   "avatarLarger": "https://p16-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/89f037890a015565d4eb3521d65b7a13~tplv-tiktokx-cropcenter:1080:1080.jpeg?dr=9640&refresh_token=7964adea&x-expires=1791226800&x-signature=R1q3h1%2FkH1MktNyJmWMupgwxU7M%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast5",
   "avatarMedium": "https://p16-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/89f037890a015565d4eb3521d65b7a13~tplv-tiktokx-cropcenter:720:720.jpeg?dr=9640&refresh_token=62e234c3&x-expires=1791226800&x-signature=0yulsoOM8V6f5CTHJ0UzCqjbh6E%3D&t=4d5b0474&ps=137406
…
```

## `rapidapi-tiktok-api23.get_user_info_include_user_region` — Get User Info (Include User Region)

`GET /api/user/info-with-region` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 889 ms

One call returns a TikTok user's profile information by username, including region and additional metadata. The answer contains user details, follower/following counts, and engagement stats.

| param | required | example / default |
|---|---|---|
| `uniqueId` | yes | taylorswift |

Fields: `userInfo.user.id` User ID; `userInfo.user.uniqueId` Username; `userInfo.user.nickname` Display name; `userInfo.user.signature` Bio/signature; `userInfo.user.verified` Whether account is verified; `userInfo.user.createTime` Account creation timestamp; `userInfo.stats.followerCount` Number of followers; `userInfo.stats.followingCount` Number of accounts followed; `userInfo.stats.videoCount` Number of videos posted; `userInfo.stats.heartCount` Total likes received

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/user/info-with-region?uniqueId=taylorswift" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "needFix": false,
 "userInfo": {
  "user": {
   "id": "6881290705605477381",
   "ftc": false,
   "roomId": "",
   "secUid": "MS4wLjABAAAAqB08cUbXaDWqbD6MCga2RbGTuhfO2EsHayBYx08NDrN7IE3jQuRDNNN6YwyfH6_6",
   "secret": false,
   "bioLink": {
    "link": "taylorswift.com",
    "risk": 0
   },
   "shortId": "",
   "language": "en",
   "nickname": "Taylor Swift",
   "relation": 0,
   "ttSeller": false,
   "uniqueId": "taylorswift",
   "verified": true,
   "eventList": [],
   "signature": "This is pretty much just a cat account",
   "createTime": 1628514847,
   "profileTab": {
    "showMusicTab": true,
    "showPlayListTab": false,
    "showQuestionTab": false
   },
   "avatarThumb": "https://p16-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/89f037890a015565d4eb3521d65b7a13~tplv-tiktokx-cropcenter:100:100.jpeg?dr=9640&refresh_token=b207551a&x-expires=1791226800&x-signature=KqkDN5o9BlmaKOquAblS%2BHNF4ms%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast8",
   "duetSetting": 0,
   "isADVirtual": false,
   "avatarLarger": "https://p19-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/89f037890a015565d4eb3521d65b7a13~tplv-tiktokx-cropcenter:1080:1080.jpeg?dr=9640&refresh_token=13d5157f&x-expires=1791226800&x-signature=I2rjVTVeWnxI655jz2PKC%2BTvzDs%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=useast8",
   "avatarMedium": "https://p16-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/89f037890a015565d4eb3521d65b7a13~tplv-tiktokx-cropcenter:720:
…
```

## `rapidapi-tiktok-api23.get_user_liked_posts` — Get User Liked Posts

`GET /api/user/liked-posts` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 889 ms

One call returns up to 30 posts liked by a TikTok user. Each item is a post with video, music, and engagement stats. The answer held 1 item on this page. Get the next page by passing the cursor value from the answer into the cursor parameter.

| param | required | example / default |
|---|---|---|
| `count` | no | 30 |
| `cursor` | no | 0 |
| `secUid` | yes | MS4wLjABAAAA-hnFaH9aGUYLRspPmUXT3nZOha3-CEyChdtqwlyFaG1M_kAi |

Paging: read `cursor` from the answer and send it back as `cursor=` for the next page; stop when it is empty or repeats.

Fields: `itemList[].id` Post ID; `itemList[].desc` Post caption/description; `itemList[].stats.playCount` Number of views; `itemList[].stats.diggCount` Number of likes; `itemList[].stats.commentCount` Number of comments; `itemList[].music.id` Audio track ID; `itemList[].music.title` Audio track title; `itemList[].video.playAddr` Video playback URL; `itemList[].video.duration` Video duration in seconds; `cursor` Pagination cursor for next page

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/user/liked-posts?count=30&cursor=0&secUid=MS4wLjABAAAA-hnFaH9aGUYLRspPmUXT3nZOha3-CEyChdtqwlyFaG1M_kAi4MD0AaZkbuIsPIzc" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "extra": {
  "now": 1791057252000,
  "logid": "202610031954120A186C1041F450024BFB",
  "fatal_item_ids": []
 },
 "cursor": "1715457924000",
 "log_pb": {
  "impr_id": "202610031954120A186C1041F450024BFB"
 },
 "hasMore": true,
 "itemList": [
  {
   "id": "7613477393453305109",
   "desc": "#fyp #treino #fyppppppppppppppppppppppp ",
   "isAd": false,
   "music": {
    "id": "7613477519550925575",
    "title": "som original",
    "tt2dsp": {},
    "playUrl": "https://v45.tiktokcdn-eu.com/66096aff99a60525481bd6a1384d9512/6ac2af21/video/tos/alisg/tos-alisg-v-27dcd7/oQ8TfzTVoeMUvEnQLCXLxgAeDAAMgACOQLAgAE/?a=1233&bti=ODszNWYuMDE6&&bt=125&ft=cD1VS7z7ThWHRegnLGZmo0P&mime_type=audio_mpeg&rc=M3NxM3M5cng7OTMzODU8NEBpM3NxM3M5cng7OTMzODU8NEBgcGBsMmQ0L2hhLS1kMS1zYSN…",
    "private": false,
    "duration": 61,
    "original": true,
    "authorName": "edina.lima.cunha",
    "coverLarge": "https://p16-common-sign.tiktokcdn-eu.com/tos-alisg-avt-0068/7bc72206e89d7443a8c9b57411856337~tplv-tiktokx-cropcenter:1080:1080.jpeg?dr=10399&refresh_token=42af6010&x-expires=1791226800&x-signature=n3Ung0%2F4piVTQOn8QrAL2tUOuM0%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=no1a",
    "coverThumb": "https://p16-common-sign.tiktokcdn-eu.com/tos-alisg-avt-0068/7bc72206e89d7443a8c9b57411856337~tplv-tiktokx-cropcenter:100:100.jpeg?dr=10399&refresh_token=da9e0608&x-expires=1791226800&x-signature=EriITkT3gg5TFeCiP%2BurYZWJ1Hg%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=no1a",
    "coverMediu
…
```

## `rapidapi-tiktok-api23.get_user_playlist` — Get User Playlist

`GET /api/user/playlist` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 640 ms

One call returns a page of playlists created by a TikTok user. Each item in the answer is a playlist with its name, cover image, video count, and creator details. The page held 20 playlists in our call. To get the next page, pass the `cursor` value from the answer into the `cursor` parameter.

| param | required | example / default |
|---|---|---|
| `cursor` | no | 0 |
| `count` | no | 20 |
| `secUid` | yes | MS4wLjABAAAAOVL3gR6qKaY1C7FWW5x3dNZ-IXOYUrMA9PQ4k2kOZU9FNqvx |

Paging: read `cursor` from the answer and send it back as `cursor=` for the next page; stop when it is empty or repeats.

Fields: `playList[].id` Playlist ID; `playList[].name` Playlist name; `playList[].mixId` Mix ID (same as id); `playList[].videoCount` Number of videos in playlist; `playList[].cover` Playlist cover image URL; `playList[].creator.id` Creator user ID; `playList[].creator.uniqueId` Creator username; `cursor` Pagination cursor for next page

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/user/playlist?count=20&cursor=0&secUid=MS4wLjABAAAAOVL3gR6qKaY1C7FWW5x3dNZ-IXOYUrMA9PQ4k2kOZU9FNqvxo-xV4p_dUsQxtDUW" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "extra": {
  "now": 1791057249000,
  "logid": "2026100319540969339B63176EEE125270",
  "fatal_item_ids": []
 },
 "cursor": "20",
 "log_pb": {
  "impr_id": "2026100319540969339B63176EEE125270"
 },
 "hasMore": true,
 "playList": [
  {
   "id": "7691316947459246862",
   "name": "Midterm Matters",
   "cover": "https://p16-common-sign.tiktokcdn-eu.com/tos-useast5-p-0068-tx/oUVdIiLNAnITM2P4OAGAQ1eIWgqATJFJAEIfee~tplv-tiktokx-origin.image?dr=10395&x-expires=1791075600&x-signature=wPXvBa1xhtmeV%2ByCVox5DKV4RRc%3D&t=4d5b0474&ps=13740610&shp=81f88b70&shcp=43f4a2f9&idc=no1a",
   "mixId": "7691316947459246862",
   "creator": {
    "id": "6971822573634978822",
    "ftc": false,
    "secUid": "MS4wLjABAAAAOVL3gR6qKaY1C7FWW5x3dNZ-IXOYUrMA9PQ4k2kOZU9FNqvxo-xV4p_dUsQxtDUW",
    "secret": true,
    "nickname": "CNN",
    "relation": 0,
    "uniqueId": "cnn",
    "verified": false,
    "signature": "This is CNN...",
    "avatarThumb": "https://p16-common-sign.tiktokcdn-eu.com/tos-maliva-avt-0068/99d43f49d3f1749ffa85f5954ca10a8c~tplv-tiktokx-cropcenter:100:100.jpeg?dr=10399&refresh_token=3db363d5&x-expires=1791226800&x-signature=rnPwQEPsV9hlK64%2Bb2IFL852QOI%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=no1a",
    "isADVirtual": false,
    "avatarLarger": "https://p16-common-sign.tiktokcdn-eu.com/tos-maliva-avt-0068/99d43f49d3f1749ffa85f5954ca10a8c~tplv-tiktokx-cropcenter:1080:1080.jpeg?dr=10399&refresh_token=b7d593f2&x-expires=1791226800&x-signature=AKmI5ZP5jwwTBCV%2F3WW3dgaGoBY%3D
…
```

## `rapidapi-tiktok-api23.get_user_posts` — Get User Posts

`GET /api/user/posts` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 1292 ms

One call returns a page of posts from a TikTok user. Each item in the answer is a post with its description, video details, music, and engagement stats. The page held 35 posts in our call. To get the next page, pass the `cursor` value from the answer into the `cursor` parameter.

| param | required | example / default |
|---|---|---|
| `count` | no | 35 |
| `cursor` | no | 0 |
| `secUid` | yes | MS4wLjABAAAAqB08cUbXaDWqbD6MCga2RbGTuhfO2EsHayBYx08NDrN7IE3j |

Paging: read `data.cursor` from the answer and send it back as `cursor=` for the next page; stop when it is empty or repeats.

Fields: `data.itemList[].id` Post ID; `data.itemList[].desc` Post caption/description; `data.itemList[].video.id` Video ID; `data.itemList[].video.playAddr` Video playback URL; `data.itemList[].video.cover` Video thumbnail URL; `data.itemList[].video.duration` Video duration in seconds; `data.itemList[].stats.playCount` Number of plays; `data.itemList[].stats.diggCount` Number of likes; `data.itemList[].stats.commentCount` Number of comments; `data.cursor` Pagination cursor for next page

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/user/posts?count=35&cursor=0&secUid=MS4wLjABAAAAqB08cUbXaDWqbD6MCga2RbGTuhfO2EsHayBYx08NDrN7IE3jQuRDNNN6YwyfH6_6" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "data": {
  "extra": {
   "now": 1791057277000,
   "logid": "202610040354379DEB22A974BA13E6D36D",
   "fatal_item_ids": []
  },
  "cursor": "1755126161000",
  "log_pb": {
   "impr_id": "202610040354379DEB22A974BA13E6D36D"
  },
  "hasMore": true,
  "itemList": [
   {
    "id": "7690393326704430366",
    "desc": "The Patient Zero video is finally out in the world! Getting to work with Emmanuel Lubezki was something out of a dream sequence, and I learned so much from getting to watch his genius in action. I want to thank Dakota and Colin for trusting me with their time, taste, and talent (Giggling with your f…",
    "isAd": false,
    "music": {
     "id": "7690393357118049055",
     "title": "original sound",
     "tt2dsp": {
      "tt_to_dsp_song_infos": [
       {
        "token": {
         "apple_music_token": {
          "developer_token": "eyJhbGciOiJFUzI1NiIsImtpZCI6Ikc2Q0dLMjdWQzMifQ.eyJleHAiOjE3OTExNDIxMTksImlhdCI6MTc5MDg4MjkxOSwiaXNzIjoiTUo3OTdEOFU2RiJ9.zuFSYfnzoQj4-Njgcv1jmHl3k3dLuuhSs68HQIoqEaJCOP1C0BuhvlgbnMRhzKyiVeFuV1fnzNlBVTlALhZ71g"
         }
        },
        "song_id": "6814996157",
        "platform": 1,
        "meta_song_id": "7689305703027279873"
       },
       {
        "song_id": "49JeKZqejPtqJKpK7x9Ew4",
        "platform": 3,
        "meta_song_id": "7689305703027279873"
       }
      ]
     },
     "playUrl": "https://v16-webapp-prime.tiktok.com/video/tos/alisg/tos-alisg-v-2370c799-sg/o0AsxczeDECAd5uQCgFAVcJMoBfVqAEEE6ATUu/?a=1988&bti=ODszNWYu
…
```

## `rapidapi-tiktok-api23.get_user_repost` — Get User Repost

`GET /api/user/repost` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 1160 ms

One call returns a page of posts that a TikTok user has reposted. Each item in the answer is a reposted video with its description, location tag (poi), music, and engagement stats. The page held 30 reposts in our call. To get the next page, pass the `cursor` value from the answer into the `cursor` parameter.

| param | required | example / default |
|---|---|---|
| `cursor` | no | 0 |
| `count` | no | 30 |
| `secUid` | yes | MS4wLjABAAAA-hnFaH9aGUYLRspPmUXT3nZOha3-CEyChdtqwlyFaG1M_kAi |

Paging: read `cursor` from the answer and send it back as `cursor=` for the next page; stop when it is empty or repeats.

Fields: `itemList[].id` Post ID; `itemList[].desc` Post caption/description; `itemList[].poi.name` Location name if tagged; `itemList[].poi.address` Location address; `itemList[].video.playAddr` Video playback URL; `itemList[].video.cover` Video thumbnail URL; `itemList[].video.duration` Video duration in seconds; `itemList[].stats.playCount` Number of plays; `itemList[].stats.diggCount` Number of likes; `cursor` Pagination cursor for next page

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/user/repost?count=30&cursor=0&secUid=MS4wLjABAAAA-hnFaH9aGUYLRspPmUXT3nZOha3-CEyChdtqwlyFaG1M_kAi4MD0AaZkbuIsPIzc" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "extra": {
  "now": 1791057251000,
  "logid": "202610031954114FD8AF4BE473E00F3405",
  "fatal_item_ids": []
 },
 "cursor": "16",
 "log_pb": {
  "impr_id": "202610031954114FD8AF4BE473E00F3405"
 },
 "hasMore": true,
 "itemList": [
  {
   "id": "7433393101818907909",
   "poi": {
    "id": "22535865212984827",
    "city": "",
    "name": "Saquarema",
    "type": 0,
    "address": "Rio de Janeiro, Brazil",
    "country": "",
    "category": "Place and Address",
    "cityCode": "3448011",
    "province": "",
    "typeCode": "",
    "ttTypeCode": "19a3a0",
    "countryCode": "3469034",
    "fatherPoiId": "",
    "ttTypeCodeL1": "190000",
    "fatherPoiName": "",
    "ttTypeNameTiny": "City",
    "ttTypeNameSuper": "Place and Address",
    "ttTypeNameMedium": "Places"
   },
   "desc": "🌊✨ Novembro de paz e relaxamento te espera no Hostel Surf Bless! ✨🌊 A poucos passos da praia, nosso espaço é perfeito para você que busca sossego e conexão com a natureza. Imagine-se relaxando nas nossas poltronas externas, ouvindo o som das ondas e dos pássaros, ou aproveitando nossa cozinha comp…",
   "isAd": false,
   "music": {
    "id": "7433393158802688774",
    "title": "som original",
    "tt2dsp": {},
    "playUrl": "https://v45.tiktokcdn-eu.com/73abec4d206963988b284352e6afcc9d/6ac2af21/video/tos/useast2a/tos-useast2a-v-27dcd7/owoiqKA3EWEkAvAcRf55oEFFz7At0Bl3lAioBg/?a=1233&bti=ODszNWYuMDE6&&bt=125&ft=cD1VS7z7ThWH4egnLGZmo0P&mime_type=audio_mpeg&rc=Mztxd3M5cmhldjMzNzU8M0BpMztxd3M5cmhldjMzNzU8
…
```

## `rapidapi-tiktok-api23.others_searched_for_suggest_search` — Others Searched For (Suggest Search)

`GET /api/search/others-searched-for` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 769 ms

One call returns search suggestions based on what others have searched for related to a keyword. Each item in the answer is a suggested search term with a group ID. The answer shows 10 suggestions total (3 shown plus 7 more).

| param | required | example / default |
|---|---|---|
| `keyword` | yes | cat |

Fields: `data[].word` Suggested search term; `data[].group_id` Group ID for the suggestion

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/search/others-searched-for?keyword=cat" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "data": [
  {
   "word": "top funniest cat videos",
   "group_id": "7954677751921857621"
  },
  {
   "word": "cat funny video",
   "group_id": "5452936678483924032"
  },
  {
   "word": "clingy cat",
   "group_id": "7811858888403468780"
  },
  "… 7 more"
 ],
 "log_id": "202610031953554FD8AF4BE473E00F29CE",
 "status_msg": "",
 "status_code": 0
}
```

## `rapidapi-tiktok-api23.search_account` — Search Account

`GET /api/search/account` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 437 ms

One call searches for TikTok accounts matching a keyword. The answer shows no user results were returned for the query 'taylor'. The `has_more` field indicates whether more results exist.

| param | required | example / default |
|---|---|---|
| `search_id` | no | 0 |
| `cursor` | no | 0 |
| `keyword` | yes | taylor |

Paging: read `cursor` from the answer and send it back as `cursor=` for the next page; stop when it is empty or repeats.

Fields: `user_list[]` Array of user accounts (empty in this sample); `cursor` Pagination cursor; `has_more` Whether more results exist

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/search/account?cursor=0&keyword=taylor&search_id=0" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "type": 1,
 "extra": {
  "now": 1791057237000,
  "logid": "20261004035356714566893C331B0679BD",
  "api_debug_info": null,
  "fatal_item_ids": [],
  "search_request_id": "",
  "server_stream_time": 107
 },
 "cursor": 12,
 "log_pb": {
  "impr_id": "20261004035356714566893C331B0679BD"
 },
 "has_more": false,
 "user_list": [],
 "status_code": 0,
 "feedback_type": "user"
}
```

## `rapidapi-tiktok-api23.search_general_top` — Search General (Top)

`GET /api/search/general` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 504 ms

One call searches TikTok for top results matching a keyword. The answer shows no items were returned for the query 'cat'. The `has_more` field indicates whether more results exist.

| param | required | example / default |
|---|---|---|
| `cursor` | no | 0 |
| `search_id` | no | 0 |
| `keyword` | yes | cat |

Paging: read `cursor` from the answer and send it back as `cursor=` for the next page; stop when it is empty or repeats.

Fields: `item_list[]` Array of search results (empty in this sample); `cursor` Pagination cursor; `has_more` Whether more results exist

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/search/general?cursor=0&keyword=cat&search_id=0" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "extra": {
  "now": 1791057239180,
  "logid": "202610040353582361CC22E1C0664C384A",
  "search_request_id": ""
 },
 "cursor": 12,
 "log_pb": {
  "impr_id": "202610040353582361CC22E1C0664C384A"
 },
 "has_more": 0,
 "backtrace": "",
 "item_list": [],
 "status_code": 0
}
```

## `rapidapi-tiktok-api23.search_photo` — Search Photo

`GET /api/search/photo` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 2886 ms

One call searches TikTok for photo posts matching a keyword. Each item in the answer is a photo post with its description, author, engagement stats, and image URLs. The page held 3 items in our call. To get the next page, pass the `cursor` value from the answer into the `cursor` parameter.

| param | required | example / default |
|---|---|---|
| `cursor` | no |  |
| `search_id` | no |  |
| `keyword` | yes | fornite |

Paging: read `cursor` from the answer and send it back as `cursor=` for the next page; stop when it is empty or repeats.

Fields: `item_list[].id` Post ID; `item_list[].desc` Post caption/description; `item_list[].author.id` Author user ID; `item_list[].author.uniqueId` Author username; `item_list[].imagePost.images[].imageURL.urlList[]` Image URLs; `item_list[].stats.playCount` Number of views; `item_list[].stats.diggCount` Number of likes; `item_list[].stats.commentCount` Number of comments; `cursor` Pagination cursor for next page; `has_more` Whether more results exist

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/search/photo?keyword=fornite" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "extra": {
  "now": 1791057240000,
  "logid": "202610040354006CA62790B88C595E6994",
  "api_debug_info": null,
  "fatal_item_ids": [],
  "search_request_id": ""
 },
 "cursor": 12,
 "log_pb": {
  "impr_id": "202610040354006CA62790B88C595E6994"
 },
 "has_more": 1,
 "backtrace": "",
 "item_list": [
  {
   "id": "7692237919628578070",
   "desc": "#fortnite #fortnitecommunity #fyp #goviral #season7 ",
   "isAd": false,
   "music": {
    "id": "7616430687876320033",
    "title": "som original",
    "tt2dsp": {},
    "playUrl": "https://v16-webapp-prime.tiktok.com/video/tos/useast2a/tos-useast2a-v-2370-euttp/o0gQeSGlafFa1LNkN9gf1AwhAIilM29IAAPfIf/?a=1988&bti=ODszNWYuMDE6&&bt=125&ft=GNDpcInz7ThMJk-GXq8Zmo&mime_type=audio_mpeg&rc=amo3cW05cnFpOTMzZjU8NUBpamo3cW05cnFpOTMzZjU8NUAzc2FzMmRzcm1hLS1kMTNzYSMzc2FzMmRzcm1hLS1kMTNzcw%3D…",
    "private": false,
    "duration": 15,
    "original": true,
    "authorName": ".𝑵𝑱_𝟏𝟎",
    "coverLarge": "https://p16-common-sign.tiktokcdn.com/tos-useast2a-avt-0068-euttp/6d7fdf13ff7335293211cb18c174bb56~tplv-tiktokx-cropcenter:1080:1080.jpeg?dr=14579&refresh_token=02fc7abd&x-expires=1791226800&x-signature=47fZ0lwlHRIFCacOlBpHMTIRJXY%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=my2",
    "coverThumb": "https://p16-common-sign.tiktokcdn.com/tos-useast2a-avt-0068-euttp/6d7fdf13ff7335293211cb18c174bb56~tplv-tiktokx-cropcenter:100:100.jpeg?dr=14579&refresh_token=fb323f19&x-expires=1791226800&x-signature=M0aIu0hqMnTTDeYRGD%2FLV7afvb0%3D&t=4d5b04
…
```

## `rapidapi-tiktok-api23.search_video` — Search Video

`GET /api/search/video` · ✓ working (tested 2026-10-06) · $0.000050/call upstream · sampled 2026-10-03, 416 ms

One call searches TikTok for video posts matching a keyword. The answer shows no video results were returned for the query 'cat'. The `has_more` field indicates whether more results exist.

| param | required | example / default |
|---|---|---|
| `cursor` | no | 0 |
| `search_id` | no | 0 |
| `keyword` | yes | cat |

Paging: read `cursor` from the answer and send it back as `cursor=` for the next page; stop when it is empty or repeats.

Fields: `item_list[]` Array of video search results (empty in this sample); `cursor` Pagination cursor; `has_more` Whether more results exist

```bash
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/search/video?cursor=0&keyword=cat&search_id=0" \
  -H "x-api-key: $FETCHAPI_KEY"
```

Real answer (trimmed):

```json
{
 "extra": {
  "now": 1791057236282,
  "logid": "2026100403535696CF14A23BEC1D91F2BF",
  "search_request_id": ""
 },
 "cursor": 12,
 "log_pb": {
  "impr_id": "2026100403535696CF14A23BEC1D91F2BF"
 },
 "has_more": 0,
 "backtrace": "",
 "item_list": [],
 "status_code": 0
}
```
