Appearance
Top Search
GET /v1/tiktok/search/top
Searches TikTok's 'Top' results by query , returns both videos and photo carousels, unlike keyword search which only returns videos. Returns items, an array of objects each with id, desc (caption), content_type (video or photo carousel), statistics (play_count, digg_count/likes, comment_count, share_count), video info, and images for carousels. Paginate with cursor. TikTok may return duplicate results.
Authentication
All requests require the x-api-key header. Get your key at scrapecreators.com.
Query Parameters
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
query | string | yes | Keyword to search for | funny |
publish_time | enum(yesterday, this-week, this-month, last-3-months, last-6-months, all-time) | no | Time Frame TikTok was posted | all-time |
sort_by | enum(relevance, most-liked, date-posted) | no | Sort by | relevance |
region | string | no | Note, this doesn't filter the tiktoks only in a specfic region, it puts the proxy there. Use it in case you want to scrape posts only available for some country. Use 2 letter country codes like US, GB, FR, etc | |
cursor | number | no | Cursor to get more videos. Get 'cursor' from previous response. |
Example Request
curl
bash
curl 'https://api.scrapecreators.com/v1/tiktok/search/top?query=funny' \
-H 'x-api-key: $SCRAPECREATORS_API_KEY'Node / TypeScript
js
const params = new URLSearchParams({ query: 'funny' });
const res = await fetch(`https://api.scrapecreators.com/v1/tiktok/search/top?${params}`, {
headers: { 'x-api-key': process.env.SCRAPECREATORS_API_KEY }
});
const data = await res.json();
console.log(data);Python
python
import os, requests
r = requests.get(
'https://api.scrapecreators.com/v1/tiktok/search/top',
headers={'x-api-key': os.environ['SCRAPECREATORS_API_KEY']},
params={'query': 'funny'},
)
r.raise_for_status()
print(r.json())CLI
bash
scrapecreators tiktok search-top --helpExample Response
json
{
"success": true,
"credits_remaining": 49999301547,
"items": [
{
"id": "7620673421353012494",
"desc": "#fyp #dog #funny #humor #blowthisup? ",
"content_type": "multi_photo",
"create_time": "2026-03-24T04:25:45.000Z",
"desc_language": "un",
"region": "US",
"is_top": 0,
"statistics": {
"aweme_id": "7620673421353012494",
"collect_count": 75335,
"comment_count": 2555,
"digg_count": 570679,
"download_count": 1026,
"forward_count": 0,
"lose_comment_count": 0,
"lose_count": 0,
"play_count": 2674660,
"repost_count": 0,
"share_count": 146329,
"whatsapp_share_count": 430
},
"video": {
"ai_dynamic_cover": {
"data_size": 0,
"height": 814,
"uri": "tos-useast5-i-photomode-tx/d986e70321f24c6f84a0ceca0aa3487f",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-useast5-i-photomode-tx/d986e70321f24c6f84a0ceca0aa3487f~tplv-photomode-image-cover:640:0:q72.heic?dr=12229&refresh_token=b1c65c7d&x-expires=1777644000&x-signature=%2Fud5EfXS%2Fh0MoLcb%2BlOTtddSxt4%3D&t=5897f7ec&ps=d5b8ac02&shp=d05b14bd&shcp=0e6dc556&idc=useast8&s=SEARCH&biz_tag=tt_photomode&sc=cover"
],
"url_prefix": null,
"width": 640
},
"ai_dynamic_cover_bak": {
"data_size": 0,
"height": 814,
"uri": "tos-useast5-i-photomode-tx/d986e70321f24c6f84a0ceca0aa3487f",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-useast5-i-photomode-tx/d986e70321f24c6f84a0ceca0aa3487f~tplv-photomode-image-cover:640:0:q72.heic?dr=12229&refresh_token=b1c65c7d&x-expires=1777644000&x-signature=%2Fud5EfXS%2Fh0MoLcb%2BlOTtddSxt4%3D&t=5897f7ec&ps=d5b8ac02&shp=d05b14bd&shcp=0e6dc556&idc=useast8&s=SEARCH&biz_tag=tt_photomode&sc=cover"
],
"url_prefix": null,
"width": 640
},
"big_thumbs": [],
"bit_rate": [],
"bit_rate_audio": [],
"cdn_url_expired": 0,
"cla_info": {
"caption_infos": null,
"captions_type": 0,
"creator_edited_caption_id": 0,
"enable_auto_caption": 0,
"has_original_audio": 0,
"hide_original_caption": false,
"is_author_dubbing_qualified": false,
"no_caption_reason": 3,
"no_caption_reason_v2": 3,
"vertical_positions": null
},
"cover": {
"data_size": 0,
"height": 814,
"uri": "tos-useast5-i-photomode-tx/d986e70321f24c6f84a0ceca0aa3487f",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-useast5-i-photomode-tx/d986e70321f24c6f84a0ceca0aa3487f~tplv-photomode-image-cover:640:0:q72.heic?biz_tag=musically_general.pics_cover&dr=12229&idc=useast8&ps=d5b8ac02&refresh_token=b1c65c7d&s=SEARCH&sc=cover&shcp=0e6dc556&shp=d05b14bd&t=5897f7ec&x-ex
... (truncated)Credits
Most ScrapeCreators endpoints consume 1 credit per successful response. Some heavier endpoints (transcripts, AI-driven enrichment, ad detail lookups) may cost more. Check GET /v1/credit-balance for your remaining balance.
Errors
| Status | Meaning | Action |
|---|---|---|
| 200 | Success. | Use the JSON payload. |
| 400 | Invalid or missing parameter. | Verify required parameters and value format. |
| 401 | Missing or invalid x-api-key. | Pass a valid API key in the header. |
| 402 | Out of credits. | Top up at scrapecreators.com or wait for plan reset. |
| 404 | Resource not found or private. | Confirm the handle, URL, or id and that the resource is public. |
| 429 | Rate limited. | Backoff and retry with exponential delay. |
| 500 | Server error or upstream platform failure. | Retry with backoff; report persistent errors to support. |