Send a TikTok sound ID and page through the videos made with it, with views, likes, comments and the creator on every one. Built for labels, artist teams and music tools that track how a song spreads.
curl -X POST https://scrapingbot.io/api/v1/tiktok \ -H "x-api-key: YOUR_API_KEY" \ -H "content-type: application/json" \ -d '{ "endpoint": "/music/posts", "params": { "music_id": "7682907287056337667" } }'
{ "success": true, "data": { "videos": [{ "video_id": "7682907275505224982", "title": "luna eterna #lofihouse #electronicmusic …", "play_count": 353558, "digg_count": 53947, "comment_count": 741, "create_time": 1788816252, "author": { "unique_id": "aetherrr.flp" } }, …], "cursor": 12, "hasMore": 1 }, "statusCode": 200, "creditsUsed": 1 }
It is the number at the end of the sound’s TikTok page. The full page URL works too.
You get a page of videos using the sound, each with its creator and counts, plus a cursor.
Send the cursor back until hasMore: 0. Key your rows on video_id so re-runs never duplicate.
import requests API = "https://scrapingbot.io/api/v1/tiktok" HEADERS = {"x-api-key": "YOUR_API_KEY"} params = {"music_id": "7682907287056337667", "cursor": 0} videos = {} while True: body = {"endpoint": "/music/posts", "params": params} data = requests.post(API, headers=HEADERS, json=body).json()["data"] for v in data["videos"]: videos[v["video_id"]] = { "creator": v["author"]["unique_id"], "views": v["play_count"], "likes": v["digg_count"], "posted": v["create_time"], } if not data["hasMore"]: # only hasMore: 0 ends the list break params["cursor"] = data["cursor"] print(len(videos), "videos use this sound")
The same two endpoints power very different jobs.
Check every release each morning: how many videos use it, which ones are taking off and where a song is starting to move.
Find the creators who already used a song, sort them by views and reach out to the ones whose videos worked.
Feed your own dashboards and reports with sound-level data, without running scrapers or managing TikTok sessions.
Show a client every video made with their song during a campaign, with views and likes, from one scheduled script.
A TikTok call costs 1 credit, and only when it succeeds. Every endpoint costs the same.
creditsUsed field, and your dashboard logs every request with its status, duration and credits.
Every successful TikTok call
1credit
Open the sound on TikTok: the number at the end of its page URL (tiktok.com/music/name-<id>) is the sound ID. You can also send the whole sound page URL as url instead of music_id.
The video ID, caption, view, like and comment counts, posting time, a video link and the creator’s handle, ID and nickname. /music/info adds the sound’s title, author, duration and how many videos use it.
Each response includes a cursor. Send it back with the next request and keep going while hasMore is set. Pages typically hold around 10 videos and sizes vary, so stop on hasMore: 0, not on page size.
Yes. Run the same walk on a schedule and store results by video_id: new videos and changing view counts show you how a song is spreading. Each page is one call.
1 credit per successful page. On the Starter plan ($49.99 for 275,000 credits) that is about $0.18 per 1,000 pages. Failed calls are refunded, and new accounts get 100 free credits with no card.
No. You only send your ScrapingBot API key. There is no TikTok login, cookie or headless browser to manage.
Yes. The API returns what TikTok shows publicly for a sound and its videos. Private accounts and private videos are not included.
Create an account and the playground opens with this call filled in. No credit card required.