TikTok Top search API
To get top results for a keyword from TikTok, call GET /v1/tiktok/search?query=… with your API key. You get clean JSON back.
/v1/tiktok/searchcurl "https://api.scraperize.com/v1/tiktok/search?query=outfit%20ideas" \ -H "x-api-key: YOUR_API_KEY"
cursor to get the next page.cache_max_age to reuse a recent result for free.429 with a Retry-After header.Parameters
queryRequiredregionOptionalcursorOptionalcursor from the previous response (same query and region), to get the next page. Omit for the first page.cache_max_ageOptionalmeta.cached=true and meta.cachedAt. Otherwise a fresh scrape runs (1 credit) and refreshes the cache. Omit to always scrape fresh.One of 5 values.Send your key in the x-api-key header. Full API reference
Example response
{
"data": {
"query": "outfit ideas",
"correctedQuery": null,
"region": "NG",
"regionName": "Nigeria",
"servedRegion": "NG",
"posts": [
{
"id": "7688982317183880469",
"url": "https://www.tiktok.com/@faithsphotography1/video/7688982317183880469",
"type": "video",
"description": "Book a session with me ✍️📸#prettygirlsoutfits #outfitinspo #creatorsearchinsights #fypシ゚viral #blowthisuptiktok @Faith …",
"createdAt": "2026-09-24T06:18:30.000Z",
"language": "en",
"stats": {
"playCount": 11700,
"likeCount": 553,
"commentCount": 10,
"shareCount": 9,
"collectCount": 64,
"repostCount": 0
},
"author": {
"id": "6961148364013683717",
"secUid": "MS4wLjABAAAAnvEaD4BX7Q0lb-NhgZTHL-QoZ0W4-kX7gipXNzXX5welpmsffbQ2KBxtiqJ4SXcS",
"handle": "faithsphotography1",
"nickname": "Faith’s Photography 📸✍️",
"bio": "Dm for snapping & editing✍️\nDon’t spam pls 🥺🙏🏻\nJust like,follow and comment",
"avatarUrl": "https://p19-common-sign.tiktokcdn.com/tos-alisg-avt-0068/91764930d2dafecfb9036595c09e1ae8~tplv-tiktokx-cropcenter:1080:1…",
"verified": false,
"privateAccount": false,
"stats": {
"followerCount": 19100,
"followingCount": 1031,
"likeCount": 565600,
"videoCount": 1409,
"friendCount": 0,
"diggCount": 53500
}
},
"video": {
"duration": 12,
"width": 576,
"height": 1024,
"definition": "540p",
"format": "mp4",
"codec": "h264",
"bitrate": 599893,
"quality": "lowest",
"size": 972352,
"coverUrl": "https://p16-common-sign.tiktokcdn.com/tos-alisg-p-0037/okIt0vBEYThI2zlnXAbiSi1LINBaArA1BPASw~tplv-tiktokx-dmt-logom:tos-…",
"originCoverUrl": "https://p16-common-sign.tiktokcdn.com/tos-alisg-p-0037/oEiptdEILvjVBgegKCLVAgdGA04meDMWeYaIIO~tplv-tiktokx-origin.image?…",
"dynamicCoverUrl": "https://p16-common-sign.tiktokcdn.com/tos-alisg-p-0037/okCHifIggDAVtyaevAL4TeLI0tEVpIAdGCYjDO~tplv-tiktokx-origin.image?…",
"playUrl": "https://v16-webapp-prime.tiktok.com/video/tos/alisg/tos-alisg-pve-0037c001/ooQtfRBqmtpgCFkynaFDXgdEcRBfAWOIqIr3EM/?a=198…",
"downloadUrl": "https://v16-webapp-prime.tiktok.com/video/tos/alisg/tos-alisg-pve-0037c001/ogeqIacRkEtMO9DkBEgFRtYyQfgqqWEB3gCnpA/?a=198…",
"volume": {
"loudness": -18.7,
"peak": 0.5188
},
"formats": [
{
"gearName": "lowest_540_0",
"qualityType": 25,
"codec": "h264",
"format": null,
"bitrate": 599893,
"fps": null,
"width": 576,
"height": 1024,
"size": 972352,
"url": "https://v16-webapp-prime.tiktok.com/video/tos/alisg/tos-alisg-pve-0037c001/ooQtfRBqmtpgCFkynaFDXgdEcRBfAWOIqIr3EM/?a=198…"
}
],
"subtitles": []
},
"photo": null,
"music": {
"id": "7684687153628859156",
"title": "original sound",
"url": "https://www.tiktok.com/music/original-sound-7684687153628859156",
"authorName": "𝔸𝕄𝔼𝔼𝕊ℍ 𝔽𝕀ℝ𝕊𝕋 𝕊𝕆ℕ🧃",
"album": null,
"duration": 60,
"preciseDuration": null,
"shootDuration": null,
"original": true,
"isCopyrighted": false,
"isCommerceMusic": false,
"isUnlimitedMusic": false,
"isPrivate": false,
"coverUrl": "https://p16-common-sign.tiktokcdn.com/tos-alisg-avt-0068/a29fa4f88c32255a850390e2ca65d9dc~tplv-tiktokx-cropcenter:1080:1…",
"playUrl": "https://v16-webapp-prime.tiktok.com/video/tos/alisg/tos-alisg-v-27dcd7/ooLyIAeVSEUjD4BAIJXvKTfCgDVeQuRAoa8AQG/?a=1988&bt…",
"streaming": []
},
"hashtags": [
{
"id": "7236417005916848130",
"name": "prettygirlsoutfits",
"description": null
}
],
"mentions": [
{
"userId": "7433507813878219781",
"handle": "faith.famous36",
"secUid": "MS4wLjABAAAAmDIu68a8kPyBYaX1W8LhGw3FqNc4bVo8X6SUlp0N46WAswzj3lYERl733Dm0kpEQ"
}
],
"effects": [
{
"id": "564661779",
"name": "Nice Skin Tone 2.0"
}
],
"stickerTexts": [
"Pretty girls outfit \nBook a session with me\nOutfit inspo",
"Pretty girls outfit \nOutfit inspo \nBook a session with me"
],
"location": null,
"contentCategory": {
"id": 109,
"name": "Outfits"
},
"anchors": [
{
"id": "0",
"type": 54,
"keyword": "CapCut · Try this template",
"description": "CapCut · Video Editor",
"url": "https://www.capcut.com/template-detail/7479190102518893877?channel=capcutpc_ttweb_anchor_template1¤t_page=capcutpc…",
"iconUrl": "https://p16-common-sign.tiktokcdn.com/tiktok-obj/capcut_logo_64px_bk.png~tplv-tiktokx-origin.image?dr=14566&x-expires=17…"
}
],
"warnings": [],
"playlistId": null,
"isAd": false,
"isPinned": false,
"isPrivate": false,
"isCommerce": false,
"aigcDescription": null,
"aigcLabelType": null,
"duetEnabled": true,
"stitchEnabled": true,
"shareEnabled": true,
"canRepost": true,
"commentStatus": 0,
"suggestedSearches": []
}
],
"users": [],
"mediaHeaders": {
"Cookie": "tt_chain_token=<session token returned by the API>",
"Referer": "https://www.tiktok.com/"
},
"count": 12,
"videoCount": 12,
"photoCount": 0,
"cursor": "12_20261005224555721E792591617ECA0D7A",
"hasMore": true,
"fetchedAt": "2026-10-05T14:45:58.852Z"
},
"meta": {
"requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f",
"creditsCharged": 1,
"creditsRemaining": 4999,
"cached": false
}
}A real response, shortened to one item per list.
TikTok Top search API questions
How much does the TikTok Top search API cost?
1 credit per successful call. Errors and cached results are free, and new accounts start with 100 free credits, no card required. See pricing.
Do I need a TikTok account or API key?
No. You only need a Scraperize API key, sent in the x-api-key header. Scraperize returns publicly available data. No TikTok login or developer app is needed.
How fresh is the data?
Each call fetches the data live. To trade freshness for cost, pass cache_max_age (e.g. 1h, 1d) to get a recent cached result instantly for 0 credits.
How do I get more results?
Each response includes a cursor. Send it back as the cursor parameter with the same other parameters to get the next page. It is null on the last page.
Where are the full parameters and response fields?
In the API reference, with every parameter, field and error.