
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.
1 live route on TikTok, from $0.00005 per call. Every route below answered our last live test on 2026-10-06; the gateway re-tests them daily.
The upstream price you are metered at, cheapest first. A route without a published price says so.
| Provider | Endpoint | Price |
|---|---|---|
tiktok-api23RapidAPI listing | Discover Posts by KeywordGET api/post/discover | $0.00005$0.05 / 1k calls |
From a real call to the route: tiktok-api23.
videoList[].idVideo IDvideoList[].descVideo description and hashtagsvideoList[].music.titleBackground music titlevideoList[].stats.playCountVideo play countvideoList[].stats.diggCountVideo like countvideoList[].stats.commentCountVideo comment countvideoList[].video.playAddrVideo playback URLvideoList[].author.uniqueIdCreator usernamehasMoreWhether more pages availableHTTP with your key in x-api-key, or the call_endpoint tool of our MCP server.
| Parameter | Type | Notes | |
|---|---|---|---|
| page | number · query | optional | default 1 |
| keyword | string · query | required | default new-year |
curl "https://fetchapi.co/api/gw/rapidapi-tiktok-api23/api/post/discover?page=1&keyword=new-year" \ -H "x-api-key: YOUR_KEY"
call_endpoint("rapidapi-tiktok-api23.discover_posts_by_keyword", {"page": "1", "keyword": "new-year"}){
"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 mis…",
"music": {
"id": "7404783005917480977",
"album": "Alegria",
"title": "Alegria",
"playUrl": "https://sf16.tiktokcdn-us.com/obj/tos-alisg-ve-2774/ocgZeTxM…",
"duration": 78,
"original": false,
"authorName": "Sweet Dreams & D'Michel Leb",
"coverLarge": "https://p19-common.tiktokcdn-us.com/tos-alisg-v-2774/o0AMeFi…",
"coverThumb": "https://p16-common.tiktokcdn-us.com/tos-alisg-v-2774/o0AMeFi…",
"coverMedium": "https://p16-common.tiktokcdn-us.com/tos-alisg-v-2774/o0AMeFi…"
},
"stats": {
"diggCount": 91000,
"playCount": 1900000,
"shareCount": 2704,
"collectCount": 3841,
"commentCount": 550
},
"video": {
"id": "7590819633674898720",
"cover": "https://p16-common-sign.tiktokcdn-us.com/tos-useast2a-p-0037…",
"ratio": "540p",
"width": 576,
"format": "mp4",
"height": 1024,
"bitrate": 1320999,
"duration": 14,
"playAddr": "https://v16-webapp-prime.us.tiktok.com/video/tos/useast2a/to…",
"codecType": "h264",
"zoomCover": {
"240": "https://p19-common-sign.tiktokcdn-us.com/tos-useast2a-p-0037…",
"480": "https://p19-common-sign.tiktokcdn-us.com/tos-useast2a-p-0037…",
"720": "https://p19-common-sign.tiktokcdn-us.com/tos-useast2a-p-0037…",
"960": "https://p16-common-sign.tiktokcdn-us.com/tos-useast2a-p-0037…"
},
"definition": "540p",
"bitrateInfo": [
{
"Bitrate": 1320999,
"GearName": "normal_540_0",
"PlayAddr": {
"Uri": "…",
"Width": "…",
"FileCs": "…",
"Height": "…",
"UrlKey": "…",
"UrlList": "…",
"DataSize": "…",
"FileHash": "…"
},
"CodecType": "h264",
"QualityType": 20
},
"… 3 more"
],
"encodedType": "normal",
"…": "6 more fields"
},
"author": {
"id": "6780410248706196486",
"ftc": false,
"secUid": "MS4wLjABAAAAU2r3pqdcp_P1GAUlAWU_CGZUzqDV7g2208O7NxmvxWdNZ8WQ…",
"secret": false,
"nickname": "Sam Oris",
"relation": 0,
"uniqueId": "samoris1",
"verified": false,
"signature": "#DADFLUENCER \n👦🏻 Jerom 👶🏻 Gerard \n@beautyroomlisa",
"avatarThumb": "https://p16-common-sign.tiktokcdn-us.com/tos-maliva-avt-0068…",
"duetSetting": 0,
"isADVirtual": false,
"avatarLarger": "https://p16-common-sign.tiktokcdn-us.com/tos-maliva-avt-0068…",
"avatarMedium": "https://p19-common-sign.tiktokcdn-us.com/tos-maliva-avt-0068…",
"…": "4 more fields"
},
"digged": false,
"secret": false,
"itemMute": false,
"forFriend": false,
"textExtra": [
{
"end": 23,
"type": 0,
"start": 14,
"secUid": "MS4wLjABAAAAU2r3pqdcp_P1GAUlAWU_CGZUzqDV7g2208O7NxmvxWdNZ8WQ…",
"userId": "6780410248706196486",
…Call it over HTTP or from any MCP client. Each key has a rate limit and a monthly cap; calls are metered at the upstream price.