curl --request POST \
--url https://app.sideshift.app/api/v1/scrape/tiktok/stories \
--header 'Content-Type: application/json' \
--data '
{
"handle": "mrbeast",
"cursor": "0"
}
'import requests
url = "https://app.sideshift.app/api/v1/scrape/tiktok/stories"
payload = {
"handle": "mrbeast",
"cursor": "0"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({handle: 'mrbeast', cursor: '0'})
};
fetch('https://app.sideshift.app/api/v1/scrape/tiktok/stories', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.sideshift.app/api/v1/scrape/tiktok/stories",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'handle' => 'mrbeast',
'cursor' => '0'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.sideshift.app/api/v1/scrape/tiktok/stories"
payload := strings.NewReader("{\n \"handle\": \"mrbeast\",\n \"cursor\": \"0\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.sideshift.app/api/v1/scrape/tiktok/stories")
.header("Content-Type", "application/json")
.body("{\n \"handle\": \"mrbeast\",\n \"cursor\": \"0\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.sideshift.app/api/v1/scrape/tiktok/stories")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"handle\": \"mrbeast\",\n \"cursor\": \"0\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"unique_id": "mrbeast",
"user_id": "6614519312189947909",
"has_more": false,
"aweme_list": [
{
"aweme_id": "7671717347832368414",
"url": "https://www.tiktok.com/@mrbeast/video/7671717347832368414",
"create_time": 1786210905,
"music": {
"author": "soundweaver (S.O)",
"id": "6930303100771108865",
"title": "Chopin Nocturne No. 2(110090)",
"id_str": "6930303100771108865",
"mid": "6930303100771108865",
"owner_nickname": "soundweaver (S.O)",
"duration": 240,
"is_original": false,
"is_original_sound": false,
"cover_large": {
"uri": "https://p16-sg.tiktokcdn.com/aweme/720x720/tos-alisg-v-2774/43faa110cb7545508bcb8448e005da2d.jpeg",
"url_list": [
"https://p16-sg.tiktokcdn.com/aweme/720x720/tos-alisg-v-2774/43faa110cb7545508bcb8448e005da2d.jpeg"
]
},
"cover_medium": {
"uri": "https://p16-sg.tiktokcdn.com/aweme/720x720/tos-alisg-v-2774/43faa110cb7545508bcb8448e005da2d.jpeg",
"url_list": [
"https://p16-sg.tiktokcdn.com/aweme/720x720/tos-alisg-v-2774/43faa110cb7545508bcb8448e005da2d.jpeg"
]
},
"cover_thumb": {
"uri": "https://p16-sg.tiktokcdn.com/aweme/720x720/tos-alisg-v-2774/43faa110cb7545508bcb8448e005da2d.jpeg",
"url_list": [
"https://p16-sg.tiktokcdn.com/aweme/720x720/tos-alisg-v-2774/43faa110cb7545508bcb8448e005da2d.jpeg"
]
},
"play_url": {
"uri": "https://sf19-music.tiktokcdn-eu.com/obj/tos-alisg-ve-2774/oU7vofzIsWAhQUtvH3hI9WABaQVw2NDjuxtjHB",
"url_list": [
"https://sf19-music.tiktokcdn-eu.com/obj/tos-alisg-ve-2774/oU7vofzIsWAhQUtvH3hI9WABaQVw2NDjuxtjHB"
]
}
},
"video": {
"data_size": 1116565,
"duration": 26,
"watermark_data_size": 2457676,
"cover": {
"uri": "https://p19-common-sign.tiktokcdn-eu.com/tos-useast8-p-0068-tx2/owmP3EVR8IAY7BVV1tGqkAUiBnFdaBali57E3~tplv-tiktokx-cropcenter-q:300:400:q70.jpeg",
"url_list": [
"https://p19-common-sign.tiktokcdn-eu.com/tos-useast8-p-0068-tx2/owmP3EVR8IAY7BVV1tGqkAUiBnFdaBali57E3~tplv-tiktokx-cropcenter-q:300:400:q70.jpeg"
]
},
"download_addr": {
"uri": "https://v77.tiktokcdn-eu.com/068239ab2f553e7a1b716de3fec240e2/6a78e0ce/video/tos/alisg/tos-alisg-ve-37c799-sg/oUVAdIBBPCaRk513AapWVE8VFQ3qiinQE7BmH/",
"url_list": [
"https://v77.tiktokcdn-eu.com/068239ab2f553e7a1b716de3fec240e2/6a78e0ce/video/tos/alisg/tos-alisg-ve-37c799-sg/oUVAdIBBPCaRk513AapWVE8VFQ3qiinQE7BmH/"
]
},
"dynamic_cover": {
"uri": "https://p16-common-sign.tiktokcdn-eu.com/tos-useast8-p-0068-tx2/okPl1IBlV1BDzKdBxARIaiV8Ft357a3EkqnAi~tplv-tiktokx-origin.image",
"url_list": [
"https://p16-common-sign.tiktokcdn-eu.com/tos-useast8-p-0068-tx2/okPl1IBlV1BDzKdBxARIaiV8Ft357a3EkqnAi~tplv-tiktokx-origin.image"
]
},
"origin_cover": {
"uri": "https://p16-common-sign.tiktokcdn-eu.com/tos-useast8-p-0068-tx2/ocPlyIBJV1BAdndBNARIaiV8Fv357a3EkqnAi~tplv-tiktokx-shrink-aq:360:360:q75.webp",
"url_list": [
"https://p16-common-sign.tiktokcdn-eu.com/tos-useast8-p-0068-tx2/ocPlyIBJV1BAdndBNARIaiV8Fv357a3EkqnAi~tplv-tiktokx-shrink-aq:360:360:q75.webp"
]
},
"play_addr": {
"uri": "https://v77.tiktokcdn-eu.com/9fbc9db550abf28ea87fccad1b6d9380/6a78e0ce/video/tos/alisg/tos-alisg-ve-37c799-sg/okR87amEPdkniA6iYBB1qRAV3QVB3Ja7EFE5I/",
"url_list": [
"https://v77.tiktokcdn-eu.com/9fbc9db550abf28ea87fccad1b6d9380/6a78e0ce/video/tos/alisg/tos-alisg-ve-37c799-sg/okR87amEPdkniA6iYBB1qRAV3QVB3Ja7EFE5I/"
]
}
},
"author": {
"nickname": "MrBeast",
"unique_id": "mrbeast",
"region": "CA",
"uid": "6614519312189947909",
"avatar_larger": {
"uri": "https://p19-common-sign.tiktokcdn-eu.com/tos-maliva-avt-0068/1e2348ca19d394037718e3b1d3fc2958~tplv-tiktokx-cropcenter-q:300:300:q70.webp",
"url_list": [
"https://p19-common-sign.tiktokcdn-eu.com/tos-maliva-avt-0068/1e2348ca19d394037718e3b1d3fc2958~tplv-tiktokx-cropcenter-q:300:300:q70.webp"
]
},
"avatar_medium": {
"uri": "https://p19-common-sign.tiktokcdn-eu.com/tos-maliva-avt-0068/1e2348ca19d394037718e3b1d3fc2958~tplv-tiktokx-cropcenter-q:300:300:q70.webp",
"url_list": [
"https://p19-common-sign.tiktokcdn-eu.com/tos-maliva-avt-0068/1e2348ca19d394037718e3b1d3fc2958~tplv-tiktokx-cropcenter-q:300:300:q70.webp"
]
},
"avatar_thumb": {
"uri": "https://p19-common-sign.tiktokcdn-eu.com/tos-maliva-avt-0068/1e2348ca19d394037718e3b1d3fc2958~tplv-tiktokx-cropcenter-q:300:300:q70.webp",
"url_list": [
"https://p19-common-sign.tiktokcdn-eu.com/tos-maliva-avt-0068/1e2348ca19d394037718e3b1d3fc2958~tplv-tiktokx-cropcenter-q:300:300:q70.webp"
]
}
},
"statistics": {
"aweme_id": "7671717347832368414",
"collect_count": 1,
"comment_count": 0,
"play_count": 953103,
"share_count": 1043,
"digg_count": 67444,
"download_count": 0
},
"author_user_id": "6614519312189947909",
"create_time_utc": "2026-08-08T17:41:45.000Z",
"media_id": "v15044gf0000d9rmkl7og65ludonnpi0",
"region": "CA",
"aweme_type": 0,
"is_ad": false,
"is_nff_or_nr": false,
"is_top": 0,
"item_comment_settings": 3,
"commerce_info": {
"adv_promotable": false,
"auction_ad_invited": false,
"branded_content_type": 0,
"is_diversion_ad": 0,
"with_comment_filter_words": false
}
}
],
"cursor": null
},
"request_id": "req_8f3c9a2b1d4e6f70",
"upstream_calls": 1,
"meta": {
"credits_charged": 1,
"credits_remaining": 9998
}
}{
"error": "INVALID_INPUT",
"message": "Invalid request body.",
"request_id": "req_8f3c9a2b1d4e6f70"
}{
"error": "UNAUTHORIZED",
"message": "Invalid scraper API key.",
"request_id": "req_8f3c9a2b1d4e6f70"
}{
"error": "INSUFFICIENT_SCRAPER_CREDITS",
"message": "Insufficient scraper credits.",
"request_id": "req_8f3c9a2b1d4e6f70"
}{
"error": "RESOURCE_NOT_FOUND",
"message": "Requested resource not found or unavailable.",
"request_id": "req_8f3c9a2b1d4e6f70"
}{
"error": "PAYLOAD_TOO_LARGE",
"message": "Request body must be 32KB or smaller.",
"request_id": "req_8f3c9a2b1d4e6f70"
}{
"error": "SCRAPER_RATE_LIMITED",
"message": "Scraper API rate limit exceeded.",
"request_id": "req_8f3c9a2b1d4e6f70"
}{
"error": "INTERNAL_ERROR",
"message": "Request failed. Your credits were refunded.",
"request_id": "req_8f3c9a2b1d4e6f70"
}{
"error": "UPSTREAM_ERROR",
"message": "Data source failed. Your credits were refunded.",
"request_id": "req_8f3c9a2b1d4e6f70"
}{
"error": "UPSTREAM_TIMEOUT",
"message": "Data source timed out. Your credits were refunded.",
"request_id": "req_8f3c9a2b1d4e6f70"
}A creator’s currently-live stories (they expire after 24h). Platform field names are preserved inside data. Standard billing: 1 SideShift credit per completed lookup; the Scraper dashboard shows the exact rate for an account with negotiated pricing.
curl --request POST \
--url https://app.sideshift.app/api/v1/scrape/tiktok/stories \
--header 'Content-Type: application/json' \
--data '
{
"handle": "mrbeast",
"cursor": "0"
}
'import requests
url = "https://app.sideshift.app/api/v1/scrape/tiktok/stories"
payload = {
"handle": "mrbeast",
"cursor": "0"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({handle: 'mrbeast', cursor: '0'})
};
fetch('https://app.sideshift.app/api/v1/scrape/tiktok/stories', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.sideshift.app/api/v1/scrape/tiktok/stories",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'handle' => 'mrbeast',
'cursor' => '0'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.sideshift.app/api/v1/scrape/tiktok/stories"
payload := strings.NewReader("{\n \"handle\": \"mrbeast\",\n \"cursor\": \"0\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.sideshift.app/api/v1/scrape/tiktok/stories")
.header("Content-Type", "application/json")
.body("{\n \"handle\": \"mrbeast\",\n \"cursor\": \"0\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.sideshift.app/api/v1/scrape/tiktok/stories")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"handle\": \"mrbeast\",\n \"cursor\": \"0\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"unique_id": "mrbeast",
"user_id": "6614519312189947909",
"has_more": false,
"aweme_list": [
{
"aweme_id": "7671717347832368414",
"url": "https://www.tiktok.com/@mrbeast/video/7671717347832368414",
"create_time": 1786210905,
"music": {
"author": "soundweaver (S.O)",
"id": "6930303100771108865",
"title": "Chopin Nocturne No. 2(110090)",
"id_str": "6930303100771108865",
"mid": "6930303100771108865",
"owner_nickname": "soundweaver (S.O)",
"duration": 240,
"is_original": false,
"is_original_sound": false,
"cover_large": {
"uri": "https://p16-sg.tiktokcdn.com/aweme/720x720/tos-alisg-v-2774/43faa110cb7545508bcb8448e005da2d.jpeg",
"url_list": [
"https://p16-sg.tiktokcdn.com/aweme/720x720/tos-alisg-v-2774/43faa110cb7545508bcb8448e005da2d.jpeg"
]
},
"cover_medium": {
"uri": "https://p16-sg.tiktokcdn.com/aweme/720x720/tos-alisg-v-2774/43faa110cb7545508bcb8448e005da2d.jpeg",
"url_list": [
"https://p16-sg.tiktokcdn.com/aweme/720x720/tos-alisg-v-2774/43faa110cb7545508bcb8448e005da2d.jpeg"
]
},
"cover_thumb": {
"uri": "https://p16-sg.tiktokcdn.com/aweme/720x720/tos-alisg-v-2774/43faa110cb7545508bcb8448e005da2d.jpeg",
"url_list": [
"https://p16-sg.tiktokcdn.com/aweme/720x720/tos-alisg-v-2774/43faa110cb7545508bcb8448e005da2d.jpeg"
]
},
"play_url": {
"uri": "https://sf19-music.tiktokcdn-eu.com/obj/tos-alisg-ve-2774/oU7vofzIsWAhQUtvH3hI9WABaQVw2NDjuxtjHB",
"url_list": [
"https://sf19-music.tiktokcdn-eu.com/obj/tos-alisg-ve-2774/oU7vofzIsWAhQUtvH3hI9WABaQVw2NDjuxtjHB"
]
}
},
"video": {
"data_size": 1116565,
"duration": 26,
"watermark_data_size": 2457676,
"cover": {
"uri": "https://p19-common-sign.tiktokcdn-eu.com/tos-useast8-p-0068-tx2/owmP3EVR8IAY7BVV1tGqkAUiBnFdaBali57E3~tplv-tiktokx-cropcenter-q:300:400:q70.jpeg",
"url_list": [
"https://p19-common-sign.tiktokcdn-eu.com/tos-useast8-p-0068-tx2/owmP3EVR8IAY7BVV1tGqkAUiBnFdaBali57E3~tplv-tiktokx-cropcenter-q:300:400:q70.jpeg"
]
},
"download_addr": {
"uri": "https://v77.tiktokcdn-eu.com/068239ab2f553e7a1b716de3fec240e2/6a78e0ce/video/tos/alisg/tos-alisg-ve-37c799-sg/oUVAdIBBPCaRk513AapWVE8VFQ3qiinQE7BmH/",
"url_list": [
"https://v77.tiktokcdn-eu.com/068239ab2f553e7a1b716de3fec240e2/6a78e0ce/video/tos/alisg/tos-alisg-ve-37c799-sg/oUVAdIBBPCaRk513AapWVE8VFQ3qiinQE7BmH/"
]
},
"dynamic_cover": {
"uri": "https://p16-common-sign.tiktokcdn-eu.com/tos-useast8-p-0068-tx2/okPl1IBlV1BDzKdBxARIaiV8Ft357a3EkqnAi~tplv-tiktokx-origin.image",
"url_list": [
"https://p16-common-sign.tiktokcdn-eu.com/tos-useast8-p-0068-tx2/okPl1IBlV1BDzKdBxARIaiV8Ft357a3EkqnAi~tplv-tiktokx-origin.image"
]
},
"origin_cover": {
"uri": "https://p16-common-sign.tiktokcdn-eu.com/tos-useast8-p-0068-tx2/ocPlyIBJV1BAdndBNARIaiV8Fv357a3EkqnAi~tplv-tiktokx-shrink-aq:360:360:q75.webp",
"url_list": [
"https://p16-common-sign.tiktokcdn-eu.com/tos-useast8-p-0068-tx2/ocPlyIBJV1BAdndBNARIaiV8Fv357a3EkqnAi~tplv-tiktokx-shrink-aq:360:360:q75.webp"
]
},
"play_addr": {
"uri": "https://v77.tiktokcdn-eu.com/9fbc9db550abf28ea87fccad1b6d9380/6a78e0ce/video/tos/alisg/tos-alisg-ve-37c799-sg/okR87amEPdkniA6iYBB1qRAV3QVB3Ja7EFE5I/",
"url_list": [
"https://v77.tiktokcdn-eu.com/9fbc9db550abf28ea87fccad1b6d9380/6a78e0ce/video/tos/alisg/tos-alisg-ve-37c799-sg/okR87amEPdkniA6iYBB1qRAV3QVB3Ja7EFE5I/"
]
}
},
"author": {
"nickname": "MrBeast",
"unique_id": "mrbeast",
"region": "CA",
"uid": "6614519312189947909",
"avatar_larger": {
"uri": "https://p19-common-sign.tiktokcdn-eu.com/tos-maliva-avt-0068/1e2348ca19d394037718e3b1d3fc2958~tplv-tiktokx-cropcenter-q:300:300:q70.webp",
"url_list": [
"https://p19-common-sign.tiktokcdn-eu.com/tos-maliva-avt-0068/1e2348ca19d394037718e3b1d3fc2958~tplv-tiktokx-cropcenter-q:300:300:q70.webp"
]
},
"avatar_medium": {
"uri": "https://p19-common-sign.tiktokcdn-eu.com/tos-maliva-avt-0068/1e2348ca19d394037718e3b1d3fc2958~tplv-tiktokx-cropcenter-q:300:300:q70.webp",
"url_list": [
"https://p19-common-sign.tiktokcdn-eu.com/tos-maliva-avt-0068/1e2348ca19d394037718e3b1d3fc2958~tplv-tiktokx-cropcenter-q:300:300:q70.webp"
]
},
"avatar_thumb": {
"uri": "https://p19-common-sign.tiktokcdn-eu.com/tos-maliva-avt-0068/1e2348ca19d394037718e3b1d3fc2958~tplv-tiktokx-cropcenter-q:300:300:q70.webp",
"url_list": [
"https://p19-common-sign.tiktokcdn-eu.com/tos-maliva-avt-0068/1e2348ca19d394037718e3b1d3fc2958~tplv-tiktokx-cropcenter-q:300:300:q70.webp"
]
}
},
"statistics": {
"aweme_id": "7671717347832368414",
"collect_count": 1,
"comment_count": 0,
"play_count": 953103,
"share_count": 1043,
"digg_count": 67444,
"download_count": 0
},
"author_user_id": "6614519312189947909",
"create_time_utc": "2026-08-08T17:41:45.000Z",
"media_id": "v15044gf0000d9rmkl7og65ludonnpi0",
"region": "CA",
"aweme_type": 0,
"is_ad": false,
"is_nff_or_nr": false,
"is_top": 0,
"item_comment_settings": 3,
"commerce_info": {
"adv_promotable": false,
"auction_ad_invited": false,
"branded_content_type": 0,
"is_diversion_ad": 0,
"with_comment_filter_words": false
}
}
],
"cursor": null
},
"request_id": "req_8f3c9a2b1d4e6f70",
"upstream_calls": 1,
"meta": {
"credits_charged": 1,
"credits_remaining": 9998
}
}{
"error": "INVALID_INPUT",
"message": "Invalid request body.",
"request_id": "req_8f3c9a2b1d4e6f70"
}{
"error": "UNAUTHORIZED",
"message": "Invalid scraper API key.",
"request_id": "req_8f3c9a2b1d4e6f70"
}{
"error": "INSUFFICIENT_SCRAPER_CREDITS",
"message": "Insufficient scraper credits.",
"request_id": "req_8f3c9a2b1d4e6f70"
}{
"error": "RESOURCE_NOT_FOUND",
"message": "Requested resource not found or unavailable.",
"request_id": "req_8f3c9a2b1d4e6f70"
}{
"error": "PAYLOAD_TOO_LARGE",
"message": "Request body must be 32KB or smaller.",
"request_id": "req_8f3c9a2b1d4e6f70"
}{
"error": "SCRAPER_RATE_LIMITED",
"message": "Scraper API rate limit exceeded.",
"request_id": "req_8f3c9a2b1d4e6f70"
}{
"error": "INTERNAL_ERROR",
"message": "Request failed. Your credits were refunded.",
"request_id": "req_8f3c9a2b1d4e6f70"
}{
"error": "UPSTREAM_ERROR",
"message": "Data source failed. Your credits were refunded.",
"request_id": "req_8f3c9a2b1d4e6f70"
}{
"error": "UPSTREAM_TIMEOUT",
"message": "Data source timed out. Your credits were refunded.",
"request_id": "req_8f3c9a2b1d4e6f70"
}Body
- Option 1
- Option 2
- Option 3
Use a handle (or unique_id) or a numeric creator id, not both.
Response
Completed lookup. Standard cost: 1 SideShift credit; account-specific pricing, when present, is shown in the Scraper dashboard and returned in the billing headers.
TikTok platform data payload. Field names and nesting are preserved.
Show child attributes
Show child attributes
SideShift request id. Include it in support requests.
Number of data-source lookups performed.
1 Per-request credit accounting (also surfaced in the X-Scraper-Credits-* response headers).
Show child attributes
Show child attributes