Read the TikTok trending feed and the videos behind any hashtag through REST calls. Each response is JSON with play, like and share counts, so you can find viral videos and rising hashtags from a script or a scheduled job.
| Endpoint | What it returns | Credits/call | USD/call (Freelance plan) |
|---|---|---|---|
/v1/tiktok/search_hashtag | Search by Hashtag | 1 | $0.0017 |
/v1/tiktok/get_trending_feed | Trending Feed | 1 | $0.0017 |
/v1/tiktok/search_hashtagSearch by Hashtag 1,000 calls = 1,000 credits = $1.67 on the Freelance plan.
| Parameter | Type | Required | Description |
|---|---|---|---|
hashtag | string | yes | Hashtag to search for (without #) |
region | string | no | Region the proxy will be set to. Note: this isn't going to grab you all tiktoks from this region, you're just setting the proxy there. |
trim | boolean | no | Set to true to get a trimmed response |
next_cursor | number | no | Cursor to get more videos. Get 'cursor' from previous response. |
Sample response (trimmed):
{
"videos": [
{
"video_id": "7277923990184742177",
"desc": "best boys #friends #joeytribbiani #chandlerbing #joeyandchandler #sitcom #mecore #uscore #bromance #matthewperry #mattleblanc ",
"desc_language": "en",
"region": "DE",
"statistics": {
"video_id": "7277923990184742177",
"collect_count": 385471,
"comment_count": 94635,
"like_count": 2840077,
"download_count": 1318,
"forward_count": 0,
"lose_comment_count": 0,
"lose_count": 0,
"view_count": 12711728,
"repost_count": 0,
"share_count": 614428,
"whatsapp_share_count": 19390
},
"video": {
"cover_tsp": 7.68255116568915,
"ai_dynamic_cover": {
"uri": "tos-useast2a-p-0037-euttp/5a4c497ba73c4d3f90203a4debd33196_1694523739",
"url_list": [
"https://p16-sign-useast2a.tiktokcdn.com/tos-useast2a-p-0037-euttp/5a4c497ba73c4d3f90203a4debd33196_1694523739~tplv-tiktokx-origin.image?dr=9229&refresh_token..."
],
"url_prefix": null
},
"ai_dynamic_cover_bak": {
"uri": "tos-useast2a-p-0037-euttp/5a4c497ba73c4d3f90203a4debd33196_1694523739",
"url_list": [
"https://p16-sign-useast2a.tiktokcdn.com/tos-useast2a-p-0037-euttp/5a4c497ba73c4d3f90203a4debd33196_1694523739~tplv-tiktokx-origin.image?dr=9229&refresh_token..."
],
"url_prefix": null
},
"animated_cover": {
"uri": "tos-useast2a-p-0037-euttp/5a4/v1/tiktok/get_trending_feedTrending Feed 1,000 calls = 1,000 credits = $1.67 on the Freelance plan.
| Parameter | Type | Required | Description |
|---|---|---|---|
region | string | yes | Where you want the proxy to be. This doesn't mean that you will only see TikToks from this region, you will just see the content that isn't banned in that regio |
trim | boolean | no | Set to true to get a trimmed response. |
curl -H "X-Scapi-Key: $SCAPI_KEY" "https://api.scrapall.bipsport.com/scapi/v1/tiktok/search_hashtag"import os, requests
r = requests.get("https://api.scrapall.bipsport.com/scapi/v1/tiktok/search_hashtag",
headers={"X-Scapi-Key": os.environ["SCAPI_KEY"]})
print(r.json())It does the same job with a REST call and JSON response. You pay per successful call instead of per actor run.
As often as your credits allow. Each call is billed separately, so a daily or hourly job costs what the cost table shows times the number of calls.
The trending feed returns videos with their music info, so you can count which sounds appear most. Check the sample response for the fields.
Open the Buy page, pick the Freelance plan and pay in USDT on TRC20 or ERC20. The key is shown once, right after the payment is confirmed on-chain.
The cost table on this page lists credits per call for each endpoint. The Freelance plan is $45 for 27,000 credits per 30 days.
Full reference: all tiktok endpoints.