profile, posts, post, and TikTok audience resources.
Start with a normalized endpoint when it covers your use case. It
gives you the same response schema across platforms. Choose an operation on this page
when you need a platform-only resource or the platform’s full field structure.
Choose an operation
| Need | Use |
|---|---|
| Comparable profiles or posts across platforms | Normalized endpoints |
| TikTok favorites, reposts, stories, social graph, sounds, hashtags, playlists, search, trends, comments, transcripts, or ads | A TikTok operation below |
| Instagram timeline, reels, full post details, transcripts, comments, search, audio, or highlights | An Instagram operation below |
| Exact request and response schemas | The API reference or an endpoint in the left navigation |
POST https://app.sideshift.app/api/v1/scrape/{platform}/{resource}
/tiktok/audience route because its response remains wire-compatible.
The data object in every interactive 200 example was captured from a successful live
request using the request body shown for that operation. The generated API reference records
each operation’s capture date. Every example is
required to contain the operation’s defining result before it can be published. To keep the reference
readable and safe, arrays show an information-rich item selected from the returned page, long strings
are trimmed, public contact fields are redacted, and transient URL query strings are removed. The static
TikTok region catalog is the exception and is published in full. SideShift applies the same
authentication, billing, error, and outer response envelope to every operation.
Quick example
Send a SideShift scraper key (scrape_live_*) in the x-api-key header and a JSON
request body. See the quickstart for complete setup examples.
export SIDESHIFT_SCRAPER_KEY="scrape_live_YOUR_KEY"
curl -X POST https://app.sideshift.app/api/v1/scrape/tiktok/profile-details \
-H "x-api-key: $SIDESHIFT_SCRAPER_KEY" \
-H "Content-Type: application/json" \
-d '{"handle":"tiktok"}'
Response shape
The operation examples below document the contents ofdata. The outer envelope is
consistent across the entire Scraper API:
{
"data": {
"user": {
"id": "107955",
"nickname": "TikTok",
"avatarLarger": "https://p19-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/ba67b11de451691939223e9d978e613a~tplv-tiktokx-cropcenter:1080:1080.webp",
"avatarMedium": "https://p19-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/ba67b11de451691939223e9d978e613a~tplv-tiktokx-cropcenter:720:720.webp",
"avatarThumb": "https://p19-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/ba67b11de451691939223e9d978e613a~tplv-tiktokx-cropcenter:100:100.webp",
"secUid": "MS4wLjABAAAAv7iSuuXDJGDvJkmH_vz1qkDZYo1apxgzaxdBSeIuPiM",
"signature": "One TikTok can make a big impact",
"uniqueId": "tiktok",
"UserStoryStatus": 0,
"createTime": 1425144149,
"ftc": false,
"isADVirtual": false,
"isUnderAge18": false,
"openFavorite": false,
"privateAccount": false,
"relation": 0,
"secret": false,
"verified": true,
"bioLink": {
"link": "linktr.ee/tiktok"
},
"ins_id": "",
"twitter_id": "",
"youtube_channel_id": "",
"youtube_channel_title": "",
"commentSetting": null,
"duetSetting": null,
"stitchSetting": null
},
"stats": {
"followerCount": 95165527,
"followingCount": 0,
"heart": 462539539,
"heartCount": 462539539,
"videoCount": 1570,
"diggCount": null
},
"itemList": []
},
"request_id": "req_8f3c9a2b1d4e6f70",
"upstream_calls": 1,
"meta": { "credits_charged": 1, "credits_remaining": 9999 }
}
data are intentionally preserved. Keep the
capitalization shown in the schemas, including uniqueId, UserStoryStatus,
strong_id__, and AIGCDescription. A missing count can be null; numeric 0
means the platform returned a real zero. A table type such as string or null means the
platform can omit that value for some records; the live example never substitutes a default.
Read Responses and data for
the envelope, identifier, media URL, and nullability rules.
Billing, pagination, and failures
- The standard cost of every completed platform operation or page is 1 SideShift credit.
- If your account has negotiated pricing, the Scraper dashboard’s advanced rate is the exact cost for every operation on this page.
- Confirmed not-found responses are billed.
- Requests rejected before work starts (
400,401,402,413,429) are free. - SideShift/data-source failures and timeouts (
500,502,504) are refunded.
has_more flag is
false. TikTok follower/following lists use min_time; collection posts use
max_cursor; Instagram timeline uses next_max_id; Instagram reels use max_id;
and Instagram hashtag/profile search uses page numbers capped at 10. Single-shot
operations return no cursor.
Read meta.credits_charged on success and X-Scraper-Credits-Charged on errors. Retry
refunded 500/502/504 failures with backoff, do not loop on billed 404
responses, and honor Retry-After on 429. See Billing, errors, and limits
for the complete policy and a copyable retry wrapper.
API reference
The operation sections below include copyable requests, parameter tables, pagination rules, and response-field tables. The left navigation also exposes a generated interactive reference for every endpoint.TikTok — 27 platform operations
Posts come back as TikTok’saweme object: aweme_id (the numeric id in a
permalink), desc, statistics (play_count, digg_count, comment_count,
share_count, collect_count), video (play_addr, cover, duration - each
URL field is a {uri, url_list} wrapper, read url_list[0]), author, music,
create_time and url.
Creators come back as uid / unique_id / nickname / sec_uid /
avatar_medium / follower_count / following_count.
TikTok · Creator
POST /api/v1/scrape/tiktok/profile-details
Profile header for one creator - identity, counts, links.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
handle (or unique_id) | str | no | null | Creator’s username/handle (with or without @). |
user_id | str | no | null | Numeric TikTok user id - an alternative to unique_id |
cache_max_age | str | no | null | Accepted and ignored - every response is a live read. |
curl -X POST https://app.sideshift.app/api/v1/scrape/tiktok/profile-details \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"handle":"tiktok"}'
ReturnsResponse - theuserandstatsin TikTok’s own web shape.itemListis present and empty; use the post endpoints for a feed.
data object:
| Key | Type | |
|---|---|---|
user | object | |
stats | object | |
itemList | array |
{
"user": {
"id": "107955",
"nickname": "TikTok",
"avatarLarger": "https://p19-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/ba67b11de451691939223e9d978e613a~tplv-tiktokx-cropcenter:1080:1080.webp",
"avatarMedium": "https://p19-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/ba67b11de451691939223e9d978e613a~tplv-tiktokx-cropcenter:720:720.webp",
"avatarThumb": "https://p19-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/ba67b11de451691939223e9d978e613a~tplv-tiktokx-cropcenter:100:100.webp",
"secUid": "MS4wLjABAAAAv7iSuuXDJGDvJkmH_vz1qkDZYo1apxgzaxdBSeIuPiM",
"signature": "One TikTok can make a big impact",
"uniqueId": "tiktok",
"UserStoryStatus": 0,
"createTime": 1425144149,
"ftc": false,
"isADVirtual": false,
"isUnderAge18": false,
"openFavorite": false,
"privateAccount": false,
"relation": 0,
"secret": false,
"verified": true,
"bioLink": {
"link": "linktr.ee/tiktok"
},
"ins_id": "",
"twitter_id": "",
"youtube_channel_id": "",
"youtube_channel_title": "",
"commentSetting": null,
"duetSetting": null,
"stitchSetting": null
},
"stats": {
"followerCount": 95165527,
"followingCount": 0,
"heart": 462539539,
"heartCount": 462539539,
"videoCount": 1570,
"diggCount": null
},
"itemList": []
}
user fields:
| Field | Type | Example |
|---|---|---|
id | string | "107955" |
uniqueId | string | "tiktok" |
nickname | string | "TikTok" |
avatarThumb | string | "https://p16-common-sign.tiktokcdn-us.… |
avatarMedium | string | "https://p16-common-sign.tiktokcdn-us.… |
avatarLarger | string | "https://p19-common-sign.tiktokcdn-us.… |
signature | string | "One TikTok can make a big impact" |
verified | boolean | true |
secUid | string | "MS4wLjABAAAAv7iSuuXDJGDvJkmH_vz1qkDZY… |
secret | boolean | false |
ftc | boolean | false |
relation | number | 0 |
openFavorite | boolean | false |
commentSetting | null | |
duetSetting | null | |
stitchSetting | null | |
privateAccount | boolean | false |
isADVirtual | boolean | false |
isUnderAge18 | boolean | false |
ins_id | string | |
twitter_id | string | |
youtube_channel_title | string | |
youtube_channel_id | string | |
UserStoryStatus | number | 0 |
createTime | number | 1425144149 |
bioLink | object | nested: link |
stats fields:
| Field | Type | Example |
|---|---|---|
followingCount | number | 0 |
followerCount | number | 95148223 |
heartCount | number | 462523908 |
videoCount | number | 1570 |
diggCount | null | |
heart | number | 462523908 |
POST /api/v1/scrape/tiktok/favorites
Videos a creator publicly liked.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
handle (or unique_id) | str | no | null | Creator’s username/handle (with or without @). |
user_id | str | no | null | Numeric TikTok user id - an alternative to unique_id |
cursor | str | no | '0' | Pagination cursor - echo back the cursor from the previous response. Omit it for the first page. |
curl -X POST https://app.sideshift.app/api/v1/scrape/tiktok/favorites \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"handle":"ramiryatebyalybly","cursor":"0"}'
Most accounts hide their Liked tab, so an empty page is normal rather than an error.Response - the
data object:
| Key | Type | |
|---|---|---|
aweme_list | array of post | |
cursor | string | Pass back on the next call. null once the list is exhausted. |
has_more | boolean | Whether another page exists. |
unique_id | string | Echo of what you queried. |
user_id | null | Echo of what you queried. |
{
"unique_id": "ramiryatebyalybly",
"cursor": "1781595870000000",
"has_more": true,
"aweme_list": [
{
"aweme_id": "7659413529019026709",
"desc": "👌😂😜 #друзья #гости #прикол",
"url": "https://www.tiktok.com/@nastenchik__ru/video/7659413529019026709",
"create_time": 1783346188,
"music": {
"author": "NIKITA",
"id": "6709404227262760961",
"title": "Francuzskiy Poceluy",
"album": "Mashina - Special Edition",
"id_str": "6709404227262760961",
"mid": "6709404227262760961",
"owner_nickname": "NIKITA",
"duration": 60,
"is_original": false,
"is_original_sound": false,
"cover_large": {
"uri": "https://p19-common.tiktokcdn-us.com/tos-alisg-v-2774/oUjAIGKLeIAZBmAAUN1xPeImCyNzGepFA7ekcj~tplv-tiktokx-cropcenter:720:720.jpeg",
"url_list": [
"https://p19-common.tiktokcdn-us.com/tos-alisg-v-2774/oUjAIGKLeIAZBmAAUN1xPeImCyNzGepFA7ekcj~tplv-tiktokx-cropcenter:720:720.jpeg"
]
},
"cover_medium": {
"uri": "https://p19-common.tiktokcdn-us.com/tos-alisg-v-2774/oUjAIGKLeIAZBmAAUN1xPeImCyNzGepFA7ekcj~tplv-tiktokx-cropcenter:720:720.jpeg",
"url_list": [
"https://p19-common.tiktokcdn-us.com/tos-alisg-v-2774/oUjAIGKLeIAZBmAAUN1xPeImCyNzGepFA7ekcj~tplv-tiktokx-cropcenter:720:720.jpeg"
]
},
"cover_thumb": {
"uri": "https://p19-common.tiktokcdn-us.com/tos-alisg-v-2774/oUjAIGKLeIAZBmAAUN1xPeImCyNzGepFA7ekcj~tplv-tiktokx-cropcenter:720:720.jpeg",
"url_list": [
"https://p19-common.tiktokcdn-us.com/tos-alisg-v-2774/oUjAIGKLeIAZBmAAUN1xPeImCyNzGepFA7ekcj~tplv-tiktokx-cropcenter:720:720.jpeg"
]
},
"play_url": {
"uri": "https://sf19.tiktokcdn-us.com/obj/tos-alisg-ve-2774/o4bmAZ3CBdBDDwgYW2nVQjoNwQrirCZnAeGtfK",
"url_list": [
"https://sf19.tiktokcdn-us.com/obj/tos-alisg-ve-2774/o4bmAZ3CBdBDDwgYW2nVQjoNwQrirCZnAeGtfK"
]
}
},
"video": {
"data_size": 408118,
"watermark_data_size": 1106239,
"cover": {
"uri": "https://p16-common-sign.tiktokcdn-us.com/tos-alisg-p-0037/ocU0kJ0ejUI30oDfCiGuagL2LEelAAvgvF0UgI~tplv-tiktokx-cropcenter-q:300:400:q70.jpeg",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-alisg-p-0037/ocU0kJ0ejUI30oDfCiGuagL2LEelAAvgvF0UgI~tplv-tiktokx-cropcenter-q:300:400:q70.jpeg"
]
},
"download_addr": {
"uri": "https://v45.tiktokcdn-us.com/c20a3cd8b723259479ced00631540189/6a77e39b/video/tos/alisg/tos-alisg-pve-0037c001/oc7ENCFSaQDyE3gAQaHgfyE3qXI2ReRBUCC7aB/",
"url_list": [
"https://v45.tiktokcdn-us.com/c20a3cd8b723259479ced00631540189/6a77e39b/video/tos/alisg/tos-alisg-pve-0037c001/oc7ENCFSaQDyE3gAQaHgfyE3qXI2ReRBUCC7aB/"
]
},
"dynamic_cover": {
"uri": "https://p19-common-sign.tiktokcdn-us.com/tos-alisg-p-0037/oc2LBa7muVPEBkxiu5BN7tYtBBIaAiI0ABCAI~tplv-tiktokx-origin.image",
"url_list": [
"https://p19-common-sign.tiktokcdn-us.com/tos-alisg-p-0037/oc2LBa7muVPEBkxiu5BN7tYtBBIaAiI0ABCAI~tplv-tiktokx-origin.image"
]
},
"origin_cover": {
"uri": "https://p19-common-sign.tiktokcdn-us.com/tos-alisg-p-0037/o0IaLkt8iPZiuEBIA7INAEBd0Yt7BBO5NBmbV~tplv-tiktokx-shrink-aq:360:360:q75.jpeg",
"url_list": [
"https://p19-common-sign.tiktokcdn-us.com/tos-alisg-p-0037/o0IaLkt8iPZiuEBIA7INAEBd0Yt7BBO5NBmbV~tplv-tiktokx-shrink-aq:360:360:q75.jpeg"
]
},
"play_addr": {
"uri": "https://v45.tiktokcdn-us.com/8d61cd910937bdfa7235b26a69d53f59/6a77e39b/video/tos/alisg/tos-alisg-pve-0037c001/owaGBRkZu5BxiBHIO0L7IA7NEmtEAPiYoVtBj/",
"url_list": [
"https://v45.tiktokcdn-us.com/8d61cd910937bdfa7235b26a69d53f59/6a77e39b/video/tos/alisg/tos-alisg-pve-0037c001/owaGBRkZu5BxiBHIO0L7IA7NEmtEAPiYoVtBj/"
]
}
},
"author": {
"nickname": "@nastenchik__ru",
"unique_id": "nastenchik__ru",
"region": "BY",
"uid": "6615520580681973766",
"avatar_larger": {
"uri": "https://p16-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/9959bbd48536962fcc479354dfe12a23~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/9959bbd48536962fcc479354dfe12a23~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg"
]
},
"avatar_medium": {
"uri": "https://p16-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/9959bbd48536962fcc479354dfe12a23~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/9959bbd48536962fcc479354dfe12a23~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg"
]
},
"avatar_thumb": {
"uri": "https://p16-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/9959bbd48536962fcc479354dfe12a23~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/9959bbd48536962fcc479354dfe12a23~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg"
]
}
},
"statistics": {
"aweme_id": "7659413529019026709",
"collect_count": 12280,
"comment_count": 433,
"play_count": 2053980,
"share_count": 87826,
"digg_count": 281498,
"download_count": 2175
},
"author_user_id": "6615520580681973766",
"create_time_utc": "2026-07-06T13:56:28.000Z",
"media_id": "v14044g50000d95r817og65rtu92dd6g",
"region": "BY",
"aweme_type": 0,
"is_ad": false,
"is_nff_or_nr": false,
"is_top": 0,
"item_comment_settings": 0,
"anchors": [
{
"id": "7658297519461449744",
"component_key": "anchor_ucg_template",
"description": "Templates",
"extra": "{\"sub_type\":\"ugc\",\"dispatch_type\":\"ugc_template\",\"nle_extra\":\"{\\\"ai_template_func_list\\\":\\\"\\\"}\",\"music_post_unavailable\":\"false\",\"title\":\"\",\"is_use_editor_pro_template\":\"1\",\"template_used_functions\":\"transition,edit_video_length,crop_video,replace_video\",\"origin_video_id\":\"765…",
"keyword": "Try TikTok template",
"log_extra": "{\"anchor_id\":\"7658297519461449744\",\"anchor_name\":\"Try TikTok template\",\"anchor_type\":\"ugc_template\",\"has_friends_info\":\"0\"}",
"type": 65,
"actions": [
{
"schema": "shoot",
"action_type": 1,
"icon": {
"uri": "tiktok-obj/28px_primary_create_onDark3x.png",
"height": 720,
"width": 720,
"url_list": [
"https://p16-common.tiktokcdn-us.com/tiktok-obj/28px_primary_create_onDark3x.png~tplv-tiktokx-origin.image",
"https://p19-common.tiktokcdn-us.com/tiktok-obj/28px_primary_create_onDark3x.png~tplv-tiktokx-origin.image",
"https://p16-common.tiktokcdn-us.com/tiktok-obj/28px_primary_create_onDark3x.png~tplv-tiktokx-origin.jpeg"
]
}
}
],
"icon": {
"uri": "tiktok-obj/Templates_Cards.png",
"height": 720,
"width": 720,
"url_list": [
"https://p16-common.tiktokcdn-us.com/tiktok-obj/Templates_Cards.png~tplv-tiktokx-origin.image",
"https://p19-common.tiktokcdn-us.com/tiktok-obj/Templates_Cards.png~tplv-tiktokx-origin.image",
"https://p16-common.tiktokcdn-us.com/tiktok-obj/Templates_Cards.png~tplv-tiktokx-origin.jpeg"
]
},
"thumbnail": {
"uri": "tiktok-obj/Templates_Cards.png",
"height": 720,
"width": 720,
"url_list": [
"https://p16-common.tiktokcdn-us.com/tiktok-obj/Templates_Cards.png~tplv-tiktokx-origin.image",
"https://p19-common.tiktokcdn-us.com/tiktok-obj/Templates_Cards.png~tplv-tiktokx-origin.image",
"https://p16-common.tiktokcdn-us.com/tiktok-obj/Templates_Cards.png~tplv-tiktokx-origin.jpeg"
]
}
}
],
"commerce_info": {
"bc_label_test_text": "Promotional content",
"adv_promotable": true,
"auction_ad_invited": false,
"brand_organic_type": 1010,
"branded_content_type": 0,
"is_diversion_ad": 0,
"with_comment_filter_words": false
}
}
],
"user_id": null
}
POST /api/v1/scrape/tiktok/reposts
Posts a creator reposted.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
handle (or unique_id) | str | no | null | Creator’s username/handle (with or without @). |
user_id | str | no | null | Numeric TikTok user id - an alternative to unique_id |
cursor | str | no | '0' | Pagination cursor - echo back the cursor from the previous response. Omit it for the first page. |
curl -X POST https://app.sideshift.app/api/v1/scrape/tiktok/reposts \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"handle":"tiktok","cursor":"0"}'
Each item is the ORIGINAL author’s post, so author.unique_id is that author, not the account queried.
Response - the data object:
| Key | Type | |
|---|---|---|
aweme_list | array of post | |
cursor | string | Pass back on the next call. null once the list is exhausted. |
has_more | boolean | Whether another page exists. |
unique_id | string | Echo of what you queried. |
user_id | null | Echo of what you queried. |
{
"unique_id": "tiktok",
"cursor": "30",
"has_more": true,
"aweme_list": [
{
"aweme_id": "7634552248974052630",
"desc": "send this one to all your college besties and get the first campus group chat going ASAP‼️ #TikTokCampusHub — a new TikTok experience that builds on the brand's Campus Verification feature — is live, and I have the exclusive details on all the cool perks that come along with t…",
"url": "https://www.tiktok.com/@hercampus/video/7634552248974052630",
"create_time": 1777557723,
"music": {
"author": "hercampus",
"id": "7634552271187708694",
"title": "original sound - hercampus",
"id_str": "7634552271187708694",
"mid": "7634552271187708694",
"owner_nickname": "hercampus",
"duration": 85,
"is_original": true,
"is_original_sound": true,
"cover_large": {
"uri": "https://p19-common-sign.tiktokcdn-us.com/tos-useast2a-avt-0068-euttp/8a57f9686e1f52263841295ec656b60c~tplv-tiktokx-cropcenter:1080:1080.jpeg",
"url_list": [
"https://p19-common-sign.tiktokcdn-us.com/tos-useast2a-avt-0068-euttp/8a57f9686e1f52263841295ec656b60c~tplv-tiktokx-cropcenter:1080:1080.jpeg"
]
},
"cover_medium": {
"uri": "https://p19-common-sign.tiktokcdn-us.com/tos-useast2a-avt-0068-euttp/8a57f9686e1f52263841295ec656b60c~tplv-tiktokx-cropcenter:1080:1080.jpeg",
"url_list": [
"https://p19-common-sign.tiktokcdn-us.com/tos-useast2a-avt-0068-euttp/8a57f9686e1f52263841295ec656b60c~tplv-tiktokx-cropcenter:1080:1080.jpeg"
]
},
"cover_thumb": {
"uri": "https://p19-common-sign.tiktokcdn-us.com/tos-useast2a-avt-0068-euttp/8a57f9686e1f52263841295ec656b60c~tplv-tiktokx-cropcenter:1080:1080.jpeg",
"url_list": [
"https://p19-common-sign.tiktokcdn-us.com/tos-useast2a-avt-0068-euttp/8a57f9686e1f52263841295ec656b60c~tplv-tiktokx-cropcenter:1080:1080.jpeg"
]
},
"play_url": {
"uri": "https://v16-ies-music.tiktokcdn-us.com/7ed1b188798315e84662f6ddab0a64b1/6a80ca84/video/tos/no1a/tos-no1a-v-2370-no/oQczJ2zspEkAUAFjYB8FYDDEEJDAL3CedgfjNz/",
"url_list": [
"https://v16-ies-music.tiktokcdn-us.com/7ed1b188798315e84662f6ddab0a64b1/6a80ca84/video/tos/no1a/tos-no1a-v-2370-no/oQczJ2zspEkAUAFjYB8FYDDEEJDAL3CedgfjNz/"
]
}
},
"video": {
"data_size": 10889747,
"duration": 85,
"watermark_data_size": 11361054,
"cover": {
"uri": "https://p19-common-sign.tiktokcdn-us.com/tos-no1a-p-0037-no/oQZgIy7PtBANYI27GNi7CI0DXClwXAUfIRvxzi~tplv-tiktokx-cropcenter-q:300:400:q70.jpeg",
"url_list": [
"https://p19-common-sign.tiktokcdn-us.com/tos-no1a-p-0037-no/oQZgIy7PtBANYI27GNi7CI0DXClwXAUfIRvxzi~tplv-tiktokx-cropcenter-q:300:400:q70.jpeg"
]
},
"download_addr": {
"uri": "https://v45.tiktokcdn-us.com/d3ef9c994962959d6840c37f1e972314/6a77e3e8/video/tos/useast2a/tos-useast2a-ve-68c811-euttp/oMvRzQtACQAi1lwP7HBXy0EtfIKgNYI7Ni7CbI/",
"url_list": [
"https://v45.tiktokcdn-us.com/d3ef9c994962959d6840c37f1e972314/6a77e3e8/video/tos/useast2a/tos-useast2a-ve-68c811-euttp/oMvRzQtACQAi1lwP7HBXy0EtfIKgNYI7Ni7CbI/"
]
},
"dynamic_cover": {
"uri": "https://p16-common-sign.tiktokcdn-us.com/tos-no1a-p-0037-no/owAjCCQ0yitBOIxIg7zvAiYfLBXDPNI7XhlRIw~tplv-tiktokx-origin.image",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-no1a-p-0037-no/owAjCCQ0yitBOIxIg7zvAiYfLBXDPNI7XhlRIw~tplv-tiktokx-origin.image"
]
},
"origin_cover": {
"uri": "https://p19-common-sign.tiktokcdn-us.com/tos-no1a-p-0037-no/o8A8qQsMTL9fgftZAMDDvHO5XDFgIg8jfIC5Ns~tplv-tiktokx-shrink-aq:360:360:q75.webp",
"url_list": [
"https://p19-common-sign.tiktokcdn-us.com/tos-no1a-p-0037-no/o8A8qQsMTL9fgftZAMDDvHO5XDFgIg8jfIC5Ns~tplv-tiktokx-shrink-aq:360:360:q75.webp"
]
},
"play_addr": {
"uri": "https://v45.tiktokcdn-us.com/87405bf8812ca7f59907618beb368b39/6a77e3e8/video/tos/useast2a/tos-useast2a-ve-68c810-euttp/owBIYi7QgEYftiJCXyVvrR7SGlK7AIwPz0INAC/",
"url_list": [
"https://v45.tiktokcdn-us.com/87405bf8812ca7f59907618beb368b39/6a77e3e8/video/tos/useast2a/tos-useast2a-ve-68c810-euttp/owBIYi7QgEYftiJCXyVvrR7SGlK7AIwPz0INAC/"
]
}
},
"author": {
"nickname": "hercampus",
"unique_id": "hercampus",
"region": "US",
"uid": "167450281859964928",
"avatar_larger": {
"uri": "https://p19-common-sign.tiktokcdn-us.com/tos-useast2a-avt-0068-euttp/8a57f9686e1f52263841295ec656b60c~tplv-tiktokx-cropcenter:300:300.jpeg",
"url_list": [
"https://p19-common-sign.tiktokcdn-us.com/tos-useast2a-avt-0068-euttp/8a57f9686e1f52263841295ec656b60c~tplv-tiktokx-cropcenter:300:300.jpeg"
]
},
"avatar_medium": {
"uri": "https://p19-common-sign.tiktokcdn-us.com/tos-useast2a-avt-0068-euttp/8a57f9686e1f52263841295ec656b60c~tplv-tiktokx-cropcenter:300:300.jpeg",
"url_list": [
"https://p19-common-sign.tiktokcdn-us.com/tos-useast2a-avt-0068-euttp/8a57f9686e1f52263841295ec656b60c~tplv-tiktokx-cropcenter:300:300.jpeg"
]
},
"avatar_thumb": {
"uri": "https://p19-common-sign.tiktokcdn-us.com/tos-useast2a-avt-0068-euttp/8a57f9686e1f52263841295ec656b60c~tplv-tiktokx-cropcenter:300:300.jpeg",
"url_list": [
"https://p19-common-sign.tiktokcdn-us.com/tos-useast2a-avt-0068-euttp/8a57f9686e1f52263841295ec656b60c~tplv-tiktokx-cropcenter:300:300.jpeg"
]
}
},
"statistics": {
"aweme_id": "7634552248974052630",
"collect_count": 16,
"comment_count": 9,
"play_count": 17410,
"share_count": 11,
"digg_count": 180,
"download_count": 2
},
"author_user_id": "167450281859964928",
"create_time_utc": "2026-04-30T14:02:03.000Z",
"media_id": "v24044gl0000d7pm1dnog65r7i26antg",
"region": "US",
"aweme_type": 0,
"is_ad": true,
"is_nff_or_nr": false,
"is_top": 0,
"item_comment_settings": 0,
"anchors": [
{
"id": "263840",
"component_key": "anchor_effect",
"description": "Effects",
"extra": "{\"effect_post_publish_count\":1063811572,\"effect_source\":0,\"is_commerce\":0,\"resource_id\":6711137499550323208}",
"keyword": "Green Screen",
"log_extra": "{\"anchor_id\":\"263840\",\"anchor_name\":\"Green Screen\",\"anchor_type\":\"prop\",\"has_friends_info\":\"0\"}",
"type": 28,
"actions": [
{
"schema": "shoot",
"action_type": 1,
"icon": {
"uri": "tiktok-obj/28px_primary_create_onDark3x.png",
"height": 720,
"width": 720,
"url_list": [
"https://p16-common.tiktokcdn-us.com/tiktok-obj/28px_primary_create_onDark3x.png~tplv-tiktokx-origin.image",
"https://p19-common.tiktokcdn-us.com/tiktok-obj/28px_primary_create_onDark3x.png~tplv-tiktokx-origin.image",
"https://p16-common.tiktokcdn-us.com/tiktok-obj/28px_primary_create_onDark3x.png~tplv-tiktokx-origin.jpeg"
]
}
}
],
"icon": {
"uri": "tiktok-obj/20px_anchor_effect3x.png",
"height": 720,
"width": 720,
"url_list": [
"https://p16-common.tiktokcdn-us.com/tiktok-obj/20px_anchor_effect3x.png~tplv-tiktokx-origin.image",
"https://p19-common.tiktokcdn-us.com/tiktok-obj/20px_anchor_effect3x.png~tplv-tiktokx-origin.image",
"https://p16-common.tiktokcdn-us.com/tiktok-obj/20px_anchor_effect3x.png~tplv-tiktokx-origin.jpeg"
]
},
"thumbnail": {
"uri": "cfaa5ce4a49351ceb195197df28a788b",
"height": 64,
"width": 64,
"url_list": [
"https://lf16-effectcdn-us.tiktokcdn-us.com/obj/tiktok-loki-effect-oracle-tx/cfaa5ce4a49351ceb195197df28a788b",
"https://lf19-effectcdn-us.tiktokcdn-us.com/obj/tiktok-loki-effect-oracle-tx/cfaa5ce4a49351ceb195197df28a788b"
]
}
}
],
"commerce_info": {
"ad_source": 1,
"adv_promotable": true,
"auction_ad_invited": false,
"branded_content_type": 0,
"is_diversion_ad": 0,
"with_comment_filter_words": false
}
}
],
"user_id": null
}
POST /api/v1/scrape/tiktok/stories
A creator’s currently-live stories (they expire after 24h).
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
handle (or unique_id) | str | no | null | Creator’s username/handle - resolved to a user id for you. Pass user_id directly when you have it to skip the lookup. |
user_id | str | no | null | Numeric TikTok user id |
cursor | str | no | '0' | Pagination cursor - echo back the cursor from the previous response. Omit it for the first page.. Creators with many live stories span several pages. |
curl -X POST https://app.sideshift.app/api/v1/scrape/tiktok/stories \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"handle":"mrbeast","cursor":"0"}'
Stories expire after 24 hours and most creators do not post them, so an empty aweme_list is the normal answer and means “no live story right now” - not an error, and not an empty account.
Response - the data object:
| Key | Type | |
|---|---|---|
aweme_list | array of post | |
cursor | null | Pass back on the next call. null once the list is exhausted. |
has_more | boolean | Whether another page exists. |
unique_id | string or null | Echo of what you queried. |
user_id | string | Echo of what you queried. |
{
"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
}
POST /api/v1/scrape/tiktok/followers
Accounts following a creator.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
handle (or unique_id) | str | no | null | Creator’s username/handle - resolved to a user id for you. Pass user_id directly when you have it to skip the lookup. |
user_id | str | no | null | Numeric TikTok user id |
min_time (or cursor) | str | no | '0' | Pagination cursor - echo back the min_time from the previous response. |
trim | bool | no | False | Accepted and ignored - the full object is always returned. |
curl -X POST https://app.sideshift.app/api/v1/scrape/tiktok/followers \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"handle":"tiktok"}'
Pages onResponse - themin_time, notcursor.totalcarries the real follower count, so the gap between it and what pagination reaches is always visible.
data object:
| Key | Type | |
|---|---|---|
followers | array of creator | |
min_time | string | Pagination cursor for this surface. null once exhausted. |
has_more | boolean | Whether another page exists. |
total | number | Total across the whole list, not just this page. |
unique_id | string | Echo of what you queried. |
user_id | string | Echo of what you queried. |
{
"unique_id": "tiktok",
"min_time": "1786220238",
"user_id": "107955",
"has_more": true,
"total": 95167392,
"followers": [
{
"nickname": "Emmanuelly_Silva",
"unique_id": "emmanuelly_silva07",
"region": "BR",
"sec_uid": "MS4wLjABAAAAE-kVyRwZeF4wdlleAfeNMVMGBue3OQRm-gANlwfTYGRTexfM_GchqdQbPPplKrZd",
"signature": "Ig:Emmanuelly_silva",
"uid": "7641386377519203349",
"aweme_count": 15,
"favoriting_count": 1600,
"follower_count": 53,
"following_count": 5,
"secret": false,
"total_favorited": 2493,
"verified": false,
"avatar_larger": {
"uri": "https://p16-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/4c08234b8c7dfd4dc8362a56210ec1dd~tplv-tiktokx-cropcenter:300:300.jpeg",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/4c08234b8c7dfd4dc8362a56210ec1dd~tplv-tiktokx-cropcenter:300:300.jpeg"
]
},
"avatar_medium": {
"uri": "https://p16-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/4c08234b8c7dfd4dc8362a56210ec1dd~tplv-tiktokx-cropcenter:300:300.jpeg",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/4c08234b8c7dfd4dc8362a56210ec1dd~tplv-tiktokx-cropcenter:300:300.jpeg"
]
},
"avatar_thumb": {
"uri": "https://p16-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/4c08234b8c7dfd4dc8362a56210ec1dd~tplv-tiktokx-cropcenter:300:300.jpeg",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/4c08234b8c7dfd4dc8362a56210ec1dd~tplv-tiktokx-cropcenter:300:300.jpeg"
]
}
}
]
}
POST /api/v1/scrape/tiktok/following
Accounts a creator follows.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
handle (or unique_id) | str | no | null | Creator’s username/handle - resolved to a user id for you. Pass user_id directly when you have it to skip the lookup. |
user_id | str | no | null | Numeric TikTok user id |
min_time (or cursor) | str | no | '0' | Pagination cursor - echo back the min_time from the previous response. |
trim | bool | no | False | Accepted and ignored - the full object is always returned. |
curl -X POST https://app.sideshift.app/api/v1/scrape/tiktok/following \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"handle":"tiktok"}'
Pages on min_time. Empty for accounts that hide the list.
Response - the data object:
| Key | Type | |
|---|---|---|
followings | array of creator | |
min_time | null | Pagination cursor for this surface. null once exhausted. |
has_more | boolean | Whether another page exists. |
total | number | Total across the whole list, not just this page. |
unique_id | string | Echo of what you queried. |
user_id | string | Echo of what you queried. |
{
"unique_id": "tiktok",
"user_id": "107955",
"has_more": false,
"total": 2,
"followings": [
{
"nickname": "tiktok creators",
"unique_id": "tiktokcreators",
"region": "US",
"sec_uid": "MS4wLjABAAAAXqqA-cLDC0hfQPIrS5APYNsg04zkl-socWCkqkI3UIOaEe6_Qnokg0GcWpLnMNQP",
"signature": "The official account for TikTok Creators who inspire creativity and bring joy ✨\n\n⬇️ Creator Programs 💰⬇️",
"uid": "6551237489917432832",
"aweme_count": 1096,
"favoriting_count": 1865,
"follower_count": 8617183,
"following_count": 569,
"secret": false,
"total_favorited": 33352487,
"verified": true,
"avatar_larger": {
"uri": "https://p19-common-sign.tiktokcdn.com/tos-maliva-avt-0068/7310199914919673862~tplv-tiktokx-cropcenter-q:300:300:q70.webp",
"url_list": [
"https://p19-common-sign.tiktokcdn.com/tos-maliva-avt-0068/7310199914919673862~tplv-tiktokx-cropcenter-q:300:300:q70.webp"
]
},
"avatar_medium": {
"uri": "https://p19-common-sign.tiktokcdn.com/tos-maliva-avt-0068/7310199914919673862~tplv-tiktokx-cropcenter-q:300:300:q70.webp",
"url_list": [
"https://p19-common-sign.tiktokcdn.com/tos-maliva-avt-0068/7310199914919673862~tplv-tiktokx-cropcenter-q:300:300:q70.webp"
]
},
"avatar_thumb": {
"uri": "https://p19-common-sign.tiktokcdn.com/tos-maliva-avt-0068/7310199914919673862~tplv-tiktokx-cropcenter-q:300:300:q70.webp",
"url_list": [
"https://p19-common-sign.tiktokcdn.com/tos-maliva-avt-0068/7310199914919673862~tplv-tiktokx-cropcenter-q:300:300:q70.webp"
]
}
}
],
"min_time": null
}
TikTok · Sound
POST /api/v1/scrape/tiktok/sound
One sound’s metadata - title, artist, artwork, duration, usage count.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
clipId (or music) | str | yes | — | Sound id, or a full tiktok.com/music/… URL. |
curl -X POST https://app.sideshift.app/api/v1/scrape/tiktok/sound \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"clipId":"7465426882822883344"}'
data object:
| Key | Type | |
|---|---|---|
music_info | object | |
rec_list | array | |
similar_music | array | |
similar_music_ids | array | |
status_code | number | Platform status code. 0 is success. |
status_msg | string | Platform status message. |
{
"status_code": 0,
"music_info": {
"author": "ktmelodies",
"id": "7465426882822883344",
"title": "summer like this",
"album": "summer like this",
"id_str": "7465426882822883344",
"mid": "7465426882822883344",
"owner_nickname": "ktmelodies",
"duration": 60,
"is_original": false,
"is_original_sound": false,
"user_count": 568,
"cover_large": {
"uri": "https://p16-sg.tiktokcdn.com/aweme/200x200/tos-alisg-v-2774/oYwEhwYAWiZ1B5iFMzr6AECqjAKAUpPACAaR5.jpeg",
"url_list": [
"https://p16-sg.tiktokcdn.com/aweme/200x200/tos-alisg-v-2774/oYwEhwYAWiZ1B5iFMzr6AECqjAKAUpPACAaR5.jpeg"
]
},
"cover_medium": {
"uri": "https://p16-sg.tiktokcdn.com/aweme/200x200/tos-alisg-v-2774/oYwEhwYAWiZ1B5iFMzr6AECqjAKAUpPACAaR5.jpeg",
"url_list": [
"https://p16-sg.tiktokcdn.com/aweme/200x200/tos-alisg-v-2774/oYwEhwYAWiZ1B5iFMzr6AECqjAKAUpPACAaR5.jpeg"
]
},
"cover_thumb": {
"uri": "https://p16-sg.tiktokcdn.com/aweme/200x200/tos-alisg-v-2774/oYwEhwYAWiZ1B5iFMzr6AECqjAKAUpPACAaR5.jpeg",
"url_list": [
"https://p16-sg.tiktokcdn.com/aweme/200x200/tos-alisg-v-2774/oYwEhwYAWiZ1B5iFMzr6AECqjAKAUpPACAaR5.jpeg"
]
},
"play_url": {
"uri": "https://sf16-ies-music-sg.tiktokcdn.com/obj/tos-alisg-ve-2774/oULjFO1JzyAE2FuaAwiiwYBnWzBssIlMIjf0oU",
"url_list": [
"https://sf16-ies-music-sg.tiktokcdn.com/obj/tos-alisg-ve-2774/oULjFO1JzyAE2FuaAwiiwYBnWzBssIlMIjf0oU"
]
}
},
"status_msg": "",
"rec_list": [],
"similar_music": [],
"similar_music_ids": []
}
music_info fields:
| Field | Type | Example |
|---|---|---|
id | string | "7002634556977908485" |
id_str | string | "7002634556977908485" |
mid | string | "7002634556977908485" |
title | string | "original sound - duyoungin" |
author | string | "🇺🇸" |
owner_nickname | string | "🇺🇸" |
album | null | |
duration | number | 6 |
is_original | boolean | true |
is_original_sound | boolean | true |
play_url | object | nested: uri, url_list, width, height |
cover_thumb | object | nested: uri, url_list, width, height |
cover_medium | object | nested: uri, url_list, width, height |
cover_large | object | nested: uri, url_list, width, height |
user_count | number | 982 |
POST /api/v1/scrape/tiktok/sound-posts
The videos using a sound.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
clipId (or music) | str | yes | — | Sound id, or a full tiktok.com/music/… URL. |
cursor | str | no | '0' | Pagination cursor - echo back the cursor from the previous response. Omit it for the first page. |
curl -X POST https://app.sideshift.app/api/v1/scrape/tiktok/sound-posts \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"clipId":"7465426882822883344","cursor":"0"}'
data object:
| Key | Type | |
|---|---|---|
aweme_list | array of post | |
cursor | string | Pass back on the next call. null once the list is exhausted. |
has_more | boolean | Whether another page exists. |
status_code | number | Platform status code. 0 is success. |
status_msg | string | Platform status message. |
extra | null | Platform tracing block. Always null here. |
log_pb | null | Platform tracing block. Always null here. |
can_pin_video | boolean | |
need_lazy_loading | boolean | |
music_id | string | Echo of what you queried. |
{
"cursor": "12",
"music_id": "7465426882822883344",
"can_pin_video": false,
"has_more": true,
"need_lazy_loading": false,
"status_code": 0,
"aweme_list": [
{
"aweme_id": "7654878422476459266",
"desc": "Summer #trans #longhair #greece #minidress",
"url": "https://www.tiktok.com/@lucie.condick/video/7654878422476459266",
"create_time": 1782290280,
"video": {
"data_size": 5873748,
"duration": 28,
"watermark_data_size": 0,
"cover": {
"uri": "https://p16-common-sign.tiktokcdn.com/tos-no1a-p-0037-no/oMaIx97E2ZIjAYBBRNil03iXXuENnu2KYvpBj~tplv-tiktokx-cropcenter-q:300:400:q70.webp",
"url_list": [
"https://p16-common-sign.tiktokcdn.com/tos-no1a-p-0037-no/oMaIx97E2ZIjAYBBRNil03iXXuENnu2KYvpBj~tplv-tiktokx-cropcenter-q:300:400:q70.webp"
]
},
"download_addr": {
"uri": "https://v16m.tiktokcdn.com/ba225a13c68d01510fec57a8947e8932/6a78e0d3/video/no1a/mps/logo/v2/r/p/v24044gl0000d8tpeonog65nr2i66djg/84217aa78071455298bffc3039584870/7d3480e1dbf005362256e05686fa041b/mp4/main.mp4",
"url_list": [
"https://v16m.tiktokcdn.com/ba225a13c68d01510fec57a8947e8932/6a78e0d3/video/no1a/mps/logo/v2/r/p/v24044gl0000d8tpeonog65nr2i66djg/84217aa78071455298bffc3039584870/7d3480e1dbf005362256e05686fa041b/mp4/main.mp4"
]
},
"dynamic_cover": {
"uri": "https://p16-common-sign.tiktokcdn.com/tos-no1a-p-0037-no/osR7XiiPdjKZuBNBI4aiEuYYIB3m72nQlAvBj~tplv-tiktokx-origin.image",
"url_list": [
"https://p16-common-sign.tiktokcdn.com/tos-no1a-p-0037-no/osR7XiiPdjKZuBNBI4aiEuYYIB3m72nQlAvBj~tplv-tiktokx-origin.image"
]
},
"origin_cover": {
"uri": "https://p16-common-sign.tiktokcdn.com/tos-no1a-p-0037-no/oISlRBEjYjBWXKAuBA7ZIIrnSKvlNYi423Bia~tplv-tiktokx-shrink-aq:360:360:q75.webp",
"url_list": [
"https://p16-common-sign.tiktokcdn.com/tos-no1a-p-0037-no/oISlRBEjYjBWXKAuBA7ZIIrnSKvlNYi423Bia~tplv-tiktokx-shrink-aq:360:360:q75.webp"
]
},
"play_addr": {
"uri": "https://v16m.tiktokcdn.com/b38f7e64875b54ae38487d2b78038ff9/6a78e0d3/video/tos/no1a/tos-no1a-ve-0068-no/oEAmInlFBiE3g027YaBKYZvXgE3jQuj6BiNIR/",
"url_list": [
"https://v16m.tiktokcdn.com/b38f7e64875b54ae38487d2b78038ff9/6a78e0d3/video/tos/no1a/tos-no1a-ve-0068-no/oEAmInlFBiE3g027YaBKYZvXgE3jQuj6BiNIR/"
]
}
},
"author": {
"nickname": "Lucie Condick",
"unique_id": "lucie.condick",
"region": "GB",
"uid": "7540076331695014945",
"avatar_larger": {
"uri": "https://p16-common-sign.tiktokcdn.com/tos-maliva-avt-0068/d9bc158d7e939eab45016c19fe1c04bb~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg",
"url_list": [
"https://p16-common-sign.tiktokcdn.com/tos-maliva-avt-0068/d9bc158d7e939eab45016c19fe1c04bb~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg"
]
},
"avatar_medium": {
"uri": "https://p16-common-sign.tiktokcdn.com/tos-maliva-avt-0068/d9bc158d7e939eab45016c19fe1c04bb~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg",
"url_list": [
"https://p16-common-sign.tiktokcdn.com/tos-maliva-avt-0068/d9bc158d7e939eab45016c19fe1c04bb~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg"
]
},
"avatar_thumb": {
"uri": "https://p16-common-sign.tiktokcdn.com/tos-maliva-avt-0068/d9bc158d7e939eab45016c19fe1c04bb~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg",
"url_list": [
"https://p16-common-sign.tiktokcdn.com/tos-maliva-avt-0068/d9bc158d7e939eab45016c19fe1c04bb~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg"
]
}
},
"statistics": {
"aweme_id": "7654878422476459266",
"collect_count": 139,
"comment_count": 140,
"play_count": 54343,
"share_count": 8,
"digg_count": 2896,
"download_count": 17
},
"author_user_id": "7540076331695014945",
"create_time_utc": "2026-06-24T08:38:00.000Z",
"media_id": "v24044gl0000d8tpeonog65nr2i66djg",
"region": "GB",
"aweme_type": 0,
"is_ad": false,
"is_nff_or_nr": false,
"is_top": 0,
"item_comment_settings": 0,
"anchors": [
{
"id": "22535865202010940",
"component_key": "anchor_poi",
"description": "Location",
"extra": "{\"Name\":\"London\",\"poi_id\":\"22535865202010940\",\"city_code\":\"85000029\",\"region_code\":\"2635167\",\"poi_backend_type\":\"Place and Address,Places,District|19a3a2\",\"poi_info_source\":\"unknown\",\"video_count\":12811332,\"collect_info\":\"{\\\"tt_type_code\\\":\\\"19a3a2\\\",\\\"is_tt_key_category\\\":0,\\…",
"keyword": "London",
"log_extra": "{\"anchor_id\":\"22535865202010940\",\"anchor_name\":\"London\",\"anchor_type\":\"poi\",\"is_ad_signal\":\"0\"}",
"schema": "aweme://poi/detail",
"general_type": 1,
"type": 45,
"icon": {
"uri": "tiktok-obj/fyp_Icon_Anchor-LS_POI_Location.png",
"height": 720,
"width": 720,
"url_list": [
"https://p16-common.tiktokcdn.com/tiktok-obj/fyp_Icon_Anchor-LS_POI_Location.png~tplv-tiktokx-origin.image",
"https://p19-common.tiktokcdn.com/tiktok-obj/fyp_Icon_Anchor-LS_POI_Location.png~tplv-tiktokx-origin.image",
"https://p16-common.tiktokcdn.com/tiktok-obj/fyp_Icon_Anchor-LS_POI_Location.png~tplv-tiktokx-origin.jpeg"
]
},
"thumbnail": {
"uri": "tiktok-obj/panel_Icon_Anchor-LS_POI_Location.png",
"height": 64,
"width": 64,
"url_list": [
"https://p16-common.tiktokcdn.com/tiktok-obj/panel_Icon_Anchor-LS_POI_Location.png~tplv-tiktokx-origin.image",
"https://p19-common.tiktokcdn.com/tiktok-obj/panel_Icon_Anchor-LS_POI_Location.png~tplv-tiktokx-origin.image",
"https://p16-common.tiktokcdn.com/tiktok-obj/panel_Icon_Anchor-LS_POI_Location.png~tplv-tiktokx-origin.jpeg"
]
}
}
],
"commerce_info": {
"adv_promotable": false,
"auction_ad_invited": false,
"branded_content_type": 0,
"is_diversion_ad": 0,
"with_comment_filter_words": false
}
}
],
"status_msg": "",
"extra": null,
"log_pb": null
}
TikTok · Hashtag
POST /api/v1/scrape/tiktok/hashtag
Hashtag header - description, post count and lifetime views.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
challenge_id | str | no | null | Numeric hashtag (challenge) id |
hashtag (or challenge_name) | str | no | null | Hashtag name, also accepted as hashtag, with or without ’#’, or a /tag/ URL |
curl -X POST https://app.sideshift.app/api/v1/scrape/tiktok/hashtag \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"hashtag":"booktok"}'
AcceptsResponse - thehashtag(the name) orchallenge_id(e.g. “229207”).
data object:
| Key | Type | |
|---|---|---|
hashtag | object |
{
"hashtag": {
"cover_url": "https://p16-common-sign.tiktokcdn.com/tiktok-obj/ffd11355ceddd5cb7a3f7f4a1f059df0.png~tplv-tiktokx-origin.image",
"description": "Calling all book lovers, join the #BookTok Post Contest from April 13th to May 11th for a chance to win $3000! Click here to join: https://vt.tiktok.com/ZSHgdjSGp/",
"hashtag_id": "1622962893630470",
"hashtag_link": "https://www.tiktok.com/tag/BookTok",
"name": "BookTok",
"is_challenge": false,
"is_commerce": false,
"is_pgc_show": false,
"is_strong_music": false,
"post_count": 83398624,
"type": 2,
"view_count": 540913519879
}
}
hashtag fields:
| Field | Type | Example |
|---|---|---|
hashtag_id | string | "229207" |
name | string | "fyp" |
description | null | |
post_count | number | 534395710 |
view_count | number | 125407420251356 |
cover_url | null | |
is_commerce | boolean | false |
is_pgc_show | boolean | false |
is_challenge | boolean | false |
is_strong_music | boolean | false |
type | number | 2 |
hashtag_link | string | "https://www.tiktok.com/tag/fyp" |
POST /api/v1/scrape/tiktok/hashtag-posts
Posts carrying a hashtag.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
challenge_id | str | no | null | Numeric hashtag (challenge) id |
hashtag (or challenge_name) | str | no | null | Hashtag name, with or without ’#’, or a /tag/ URL |
cursor | str | no | '0' | Pagination cursor - echo back the cursor from the previous response. Omit it for the first page. |
region | str | no | null | ISO-2 region code to bias the feed (e.g. ‘US’); see /api/v1/scrape/tiktok/regions for the accepted list |
trim | bool | no | False | Accepted and ignored - the full object is always returned. |
curl -X POST https://app.sideshift.app/api/v1/scrape/tiktok/hashtag-posts \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"hashtag":"booktok","cursor":"0"}'
Passing challenge_id instead of the name is slightly faster; the name form returns the hashtag object alongside the posts for free.
Response - the data object:
| Key | Type | |
|---|---|---|
aweme_list | array of post | |
cursor | string | Pass back on the next call. null once the list is exhausted. |
has_more | boolean | Whether another page exists. |
hashtag_id | string | Echo of what you queried. |
hashtag | object |
{
"cursor": "20",
"hashtag_id": "1622962893630470",
"has_more": true,
"aweme_list": [
{
"aweme_id": "7598729935385070879",
"desc": "10 popular booktok books 💯 worth the hype! #BookTok #BookRecommendations #WorthTheHype #PopularBooks #ReaderTok",
"url": "https://www.tiktok.com/@ericalaniz/video/7598729935385070879",
"create_time": 1769217200,
"music": {
"author": "Ernesto P. Neto",
"id": "7401225789633841153",
"title": "Fantasy in an Immersive World",
"album": "Dreams of a Magical Night",
"id_str": "7401225789633841153",
"mid": "7401225789633841153",
"owner_nickname": "Ernesto P. Neto",
"duration": 242,
"is_original": false,
"is_original_sound": false,
"cover_large": {
"uri": "https://p16-common-sign.tiktokcdn-us.com/tos-alisg-v-2774/o0MzfCpOyQAsUEImG3FfBBgkRLiA8uIJZADwt7~tplv-tiktokx-cropcenter:720:720.jpeg",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-alisg-v-2774/o0MzfCpOyQAsUEImG3FfBBgkRLiA8uIJZADwt7~tplv-tiktokx-cropcenter:720:720.jpeg"
]
},
"cover_medium": {
"uri": "https://p16-common-sign.tiktokcdn-us.com/tos-alisg-v-2774/o0MzfCpOyQAsUEImG3FfBBgkRLiA8uIJZADwt7~tplv-tiktokx-cropcenter:720:720.jpeg",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-alisg-v-2774/o0MzfCpOyQAsUEImG3FfBBgkRLiA8uIJZADwt7~tplv-tiktokx-cropcenter:720:720.jpeg"
]
},
"cover_thumb": {
"uri": "https://p16-common-sign.tiktokcdn-us.com/tos-alisg-v-2774/o0MzfCpOyQAsUEImG3FfBBgkRLiA8uIJZADwt7~tplv-tiktokx-cropcenter:720:720.jpeg",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-alisg-v-2774/o0MzfCpOyQAsUEImG3FfBBgkRLiA8uIJZADwt7~tplv-tiktokx-cropcenter:720:720.jpeg"
]
},
"play_url": {
"uri": "https://sf16-sign.tiktokcdn-us.com/obj/tos-alisg-ve-2774/oAa2LHeIeImMAxqgqFLaKbeGAgA0OGL8eb21rF",
"url_list": [
"https://sf16-sign.tiktokcdn-us.com/obj/tos-alisg-ve-2774/oAa2LHeIeImMAxqgqFLaKbeGAgA0OGL8eb21rF"
]
}
},
"video": {
"data_size": 26672319,
"duration": 160,
"watermark_data_size": 25030047,
"cover": {
"uri": "https://p16-common-sign.tiktokcdn-us.com/tos-maliva-p-0068c799-us/owBG0KP3BkKg0iYC849AAfqHiuIiHECAI7lU7S~tplv-tiktokx-origin.image",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-maliva-p-0068c799-us/owBG0KP3BkKg0iYC849AAfqHiuIiHECAI7lU7S~tplv-tiktokx-origin.image"
]
},
"download_addr": {
"uri": "https://v16m.tiktokcdn-us.com/08342642e9d2c472b931844954f3b1f8/6a77e439/video/tos/useast8/tos-useast8-pve-0068-tx2/o0Xik30CQdIKifGCigAtcIEB0AOqu37AHwPWH9/",
"url_list": [
"https://v16m.tiktokcdn-us.com/08342642e9d2c472b931844954f3b1f8/6a77e439/video/tos/useast8/tos-useast8-pve-0068-tx2/o0Xik30CQdIKifGCigAtcIEB0AOqu37AHwPWH9/"
]
},
"dynamic_cover": {
"uri": "https://p19-common-sign.tiktokcdn-us.com/tos-useast8-p-0068-tx2/og0ux9KHIRgHA7GCIfg0FiAhBIiPkqPCsAkB3i~tplv-tiktokx-origin.image",
"url_list": [
"https://p19-common-sign.tiktokcdn-us.com/tos-useast8-p-0068-tx2/og0ux9KHIRgHA7GCIfg0FiAhBIiPkqPCsAkB3i~tplv-tiktokx-origin.image"
]
},
"origin_cover": {
"uri": "https://p19-common-sign.tiktokcdn-us.com/tos-useast8-p-0068-tx2/o49JHBiMDQNPO06vA2FCVNR8UBfipeEQEMAFEd~tplv-tiktokx-shrink-aq:360:360:q75.webp",
"url_list": [
"https://p19-common-sign.tiktokcdn-us.com/tos-useast8-p-0068-tx2/o49JHBiMDQNPO06vA2FCVNR8UBfipeEQEMAFEd~tplv-tiktokx-shrink-aq:360:360:q75.webp"
]
},
"play_addr": {
"uri": "https://v16m.tiktokcdn-us.com/5cef8e398b0edf755987784171e57521/6a77e439/video/tos/useast8/tos-useast8-pve-0068-tx2/oYqBHZvbi9HQETiA05KAkHgPG39IAfCu0IiFC7/",
"url_list": [
"https://v16m.tiktokcdn-us.com/5cef8e398b0edf755987784171e57521/6a77e439/video/tos/useast8/tos-useast8-pve-0068-tx2/oYqBHZvbi9HQETiA05KAkHgPG39IAfCu0IiFC7/"
]
}
},
"author": {
"nickname": "Air_Wik_Reads 📚📸",
"unique_id": "ericalaniz",
"region": "US",
"uid": "6545931668870403087",
"avatar_larger": {
"uri": "https://p19-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/bd66dd912e6273292ff7c45460164f3c~tplv-tiktokx-cropcenter:300:300.jpeg",
"url_list": [
"https://p19-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/bd66dd912e6273292ff7c45460164f3c~tplv-tiktokx-cropcenter:300:300.jpeg"
]
},
"avatar_medium": {
"uri": "https://p19-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/bd66dd912e6273292ff7c45460164f3c~tplv-tiktokx-cropcenter:300:300.jpeg",
"url_list": [
"https://p19-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/bd66dd912e6273292ff7c45460164f3c~tplv-tiktokx-cropcenter:300:300.jpeg"
]
},
"avatar_thumb": {
"uri": "https://p19-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/bd66dd912e6273292ff7c45460164f3c~tplv-tiktokx-cropcenter:300:300.jpeg",
"url_list": [
"https://p19-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/bd66dd912e6273292ff7c45460164f3c~tplv-tiktokx-cropcenter:300:300.jpeg"
]
}
},
"statistics": {
"aweme_id": "7598729935385070879",
"collect_count": 1033,
"comment_count": 179,
"play_count": 92786,
"share_count": 177,
"digg_count": 2886,
"download_count": 23
},
"author_user_id": "6545931668870403087",
"create_time_utc": "2026-01-24T01:13:20.000Z",
"media_id": "v15044gf0000d5q1nv7og65t30kjma3g",
"region": "US",
"aweme_type": 0,
"is_ad": false,
"is_nff_or_nr": false,
"is_top": 0,
"item_comment_settings": 0,
"anchors": [
{
"id": "1907991905",
"component_key": "anchor_filter",
"description": "Filter",
"extra": "{\"title\":\"Orange Blue\",\"resource_id\":7358622190259933713,\"third_id\":\"1907991905\"}",
"keyword": "Filter · Orange Blue",
"log_extra": "{\"anchor_id\":\"7525394380245452830\",\"anchor_name\":\"Orange Blue\",\"anchor_type\":\"ANCHOR_TT_FILTER\"}",
"general_type": 1,
"type": 106,
"actions": [
{
"schema": "aweme://openShoot",
"action_type": 2,
"icon": {
"uri": "https://p16-common.tiktokcdn-us.com/tiktok-obj/28px_primary_create_onDark3x.png~tplv-tiktokx-origin.image",
"height": 720,
"width": 720,
"url_list": [
"https://p16-common.tiktokcdn-us.com/tiktok-obj/28px_primary_create_onDark3x.png~tplv-tiktokx-origin.image"
]
}
}
],
"icon": {
"uri": "tiktok-obj/Filter.png",
"height": 720,
"width": 720,
"url_list": [
"https://p16-common.tiktokcdn-us.com/tiktok-obj/Filter.png~tplv-tiktokx-origin.image",
"https://p19-common.tiktokcdn-us.com/tiktok-obj/Filter.png~tplv-tiktokx-origin.image",
"https://p16-common.tiktokcdn-us.com/tiktok-obj/Filter.png~tplv-tiktokx-origin.jpeg"
]
},
"thumbnail": {
"uri": "https://lf16-effectcdn-us.tiktokcdn-us.com/obj/tiktok-loki-effect-oracle-tx/6a2b7682e114b36472e7b86d3143078c",
"height": 64,
"width": 64,
"url_list": [
"https://lf16-effectcdn-us.tiktokcdn-us.com/obj/tiktok-loki-effect-oracle-tx/6a2b7682e114b36472e7b86d3143078c"
]
}
}
],
"commerce_info": {
"adv_promotable": false,
"auction_ad_invited": false,
"branded_content_type": 0,
"is_diversion_ad": 0,
"with_comment_filter_words": false
}
}
],
"hashtag": {
"cover_url": "https://p16-common-sign.tiktokcdn.com/tiktok-obj/ffd11355ceddd5cb7a3f7f4a1f059df0.png~tplv-tiktokx-origin.image",
"description": "Calling all book lovers, join the #BookTok Post Contest from April 13th to May 11th for a chance to win $3000! Click here to join: https://vt.tiktok.com/ZSHgdjSGp/",
"hashtag_id": "1622962893630470",
"hashtag_link": "https://www.tiktok.com/tag/BookTok",
"name": "BookTok",
"is_challenge": false,
"is_commerce": false,
"is_pgc_show": false,
"is_strong_music": false,
"post_count": 83398629,
"type": 2,
"view_count": 540913526475
}
}
hashtag fields:
| Field | Type | Example |
|---|---|---|
hashtag_id | string | "229207" |
name | string | "fyp" |
description | null | |
post_count | number | 534395718 |
view_count | number | 125407420827330 |
cover_url | null | |
is_commerce | boolean | false |
is_pgc_show | boolean | false |
is_challenge | boolean | false |
is_strong_music | boolean | false |
type | number | 2 |
hashtag_link | string | "https://www.tiktok.com/tag/fyp" |
POST /api/v1/scrape/tiktok/hashtag-search
Keyword search over hashtags, with each one’s post and view totals.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
query (or keywords) | str | yes | — | Search keyword / phrase. |
cursor | str | no | '0' | Pagination cursor - echo back the cursor from the previous response. Omit it for the first page. |
curl -X POST https://app.sideshift.app/api/v1/scrape/tiktok/hashtag-search \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"query":"travel","cursor":"0"}'
data object:
| Key | Type | |
|---|---|---|
hashtags | array | |
cursor | string | Pass back on the next call. null once the list is exhausted. |
has_more | boolean | Whether another page exists. |
keywords | string | Echo of what you queried. |
{
"cursor": "30",
"keywords": "travel",
"has_more": true,
"hashtags": [
{
"cover_url": "https://p16-amd-va.tiktokcdn.com/obj/musically-maliva-obj/6cd3395377af1ebf701faaf40d449c8c",
"description": "🌟The world is a book and those who don't travel read only one page 🏄🌴Now recollect your best travel memories from your camera roll, 📷and share the stories behind!",
"hashtag_id": "7884",
"hashtag_link": "https://www.tiktok.com/tag/Travel",
"name": "Travel",
"is_challenge": false,
"is_commerce": false,
"is_pgc_show": false,
"is_strong_music": false,
"post_count": 91283862,
"type": 2,
"view_count": 747916467864
}
]
}
TikTok · Playlist
POST /api/v1/scrape/tiktok/playlist
Playlist header - name, owner and video count.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
playlist | str | yes | — | Playlist (mix) id, or a full /@user/playlist/… URL |
curl -X POST https://app.sideshift.app/api/v1/scrape/tiktok/playlist \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"playlist":"7659874208872221471"}'
data object:
| Key | Type | |
|---|---|---|
playlist | object |
{
"playlist": {
"creator_username": "tiktok",
"name": "Behind The Breakthrough",
"playlist_id": "7659874208872221471",
"playlist_link": "https://www.tiktok.com/@tiktok/playlist/behind-the-breakthrough-7659874208872221471",
"type": 1,
"video_count": 3,
"creator_id": null,
"creator_name": null
}
}
playlist fields:
| Field | Type | Example |
|---|---|---|
playlist_id | string | "7659874208872221471" |
name | string | "Behind The Breakthrough" |
type | number | 1 |
video_count | number | 3 |
creator_id | null | |
creator_username | string | "tiktok" |
creator_name | null | |
playlist_link | string | "https://www.tiktok.com/@tiktok/playli… |
TikTok · Collection
POST /api/v1/scrape/tiktok/collection
Collection header - name, owner and video count.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
url (or collection) | str | yes | — | Collection id, or a full tiktok.com/collection/… URL. |
curl -X POST https://app.sideshift.app/api/v1/scrape/tiktok/collection \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"url":"7394627756635573022"}'
data object:
| Key | Type | |
|---|---|---|
collection | object |
{
"collection": {
"collection_id": "7394627756635573022",
"creator_id": "107955",
"creator_name": "TikTok",
"name": "Summer of Sports",
"state": 3,
"video_count": 139,
"creator_username": null
}
}
collection fields:
| Field | Type | Example |
|---|---|---|
collection_id | string | "7394627756635573022" |
name | string | "Summer of Sports" |
video_count | number | 139 |
state | number | 3 |
creator_id | string | "107955" |
creator_username | null | |
creator_name | string | "TikTok" |
POST /api/v1/scrape/tiktok/collection-posts
Videos saved inside a public collection.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
url (or collection) | str | yes | — | Collection id, or a full tiktok.com/collection/… URL. |
cursor | str | no | '0' | Pagination cursor - echo back the cursor from the previous response. Omit it for the first page. |
curl -X POST https://app.sideshift.app/api/v1/scrape/tiktok/collection-posts \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"url":"7394627756635573022","cursor":"0"}'
This surface answers in TikTok’s WEB shape (Response - theid/desc/stats/createTime) and pages onmax_cursor.
data object:
| Key | Type | |
|---|---|---|
collection_id | string | Echo of what you queried. |
videos | array of collection post | |
has_more | boolean | Whether another page exists. |
max_cursor | string | Pagination cursor for this surface. null once exhausted. |
status_code | number | Platform status code. 0 is success. |
status_msg | string | Platform status message. |
{
"collection_id": "7394627756635573022",
"max_cursor": "30",
"has_more": true,
"status_code": 0,
"videos": [
{
"desc": "Until next time! 🫶🏻 #olympics #paris2024 #olympicgames #bmx #OlympicVillage",
"id": "7399613114368396574",
"author": {
"id": "6765667025392108550",
"nickname": "Nikita Ducarroz",
"uniqueId": "nikita.ducarroz"
},
"video": {
"cover": "https://p16-common-sign.tiktokcdn.com/tos-useast8-p-0068-tx2/54ce5365fc8e49c19d91dd07815cd894_1722856730~tplv-tiktokx-cropcenter-q:300:400:q70.webp",
"duration": 10
},
"createTime": 1722856728,
"anchors": [
{
"id": "7399612877658669099",
"component_key": "anchor_ucg_template",
"description": "Templates",
"extra": "{\"music_id\":\"6714159100260813573\",\"template_used_functions\":\"change_video_speed,split_video,add_text\",\"sub_type\":\"ugc\",\"dispatch_type\":\"ugc_create\",\"nle_summary\":\"{\\\"slots\\\":\\\"[{\\\\\\\"clip_end\\\\\\\":0.5378779768943787,\\\\\\\"clip_start\\\\\\\":0.0,\\\\\\\"description\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"endtime…",
"keyword": "Try TikTok template",
"log_extra": "{\"anchor_id\":\"7399612877658669099\",\"anchor_name\":\"Try TikTok template\",\"anchor_type\":\"ugc_template\",\"has_friends_info\":\"0\"}",
"type": 65,
"actions": [
{
"schema": "shoot",
"action_type": 1,
"icon": {
"uri": "tiktok-obj/28px_primary_create_onDark3x.png",
"height": 720,
"width": 720,
"url_list": [
"https://p16-common.tiktokcdn.com/tiktok-obj/28px_primary_create_onDark3x.png~tplv-tiktokx-origin.image",
"https://p19-common.tiktokcdn.com/tiktok-obj/28px_primary_create_onDark3x.png~tplv-tiktokx-origin.image",
"https://p16-common.tiktokcdn.com/tiktok-obj/28px_primary_create_onDark3x.png~tplv-tiktokx-origin.jpeg"
]
}
}
],
"icon": {
"uri": "tiktok-obj/Templates_Cards.png",
"height": 720,
"width": 720,
"url_list": [
"https://p16-common.tiktokcdn.com/tiktok-obj/Templates_Cards.png~tplv-tiktokx-origin.image",
"https://p19-common.tiktokcdn.com/tiktok-obj/Templates_Cards.png~tplv-tiktokx-origin.image",
"https://p16-common.tiktokcdn.com/tiktok-obj/Templates_Cards.png~tplv-tiktokx-origin.jpeg"
]
},
"thumbnail": {
"uri": "tiktok-obj/Templates_Cards.png",
"height": 720,
"width": 720,
"url_list": [
"https://p16-common.tiktokcdn.com/tiktok-obj/Templates_Cards.png~tplv-tiktokx-origin.image",
"https://p19-common.tiktokcdn.com/tiktok-obj/Templates_Cards.png~tplv-tiktokx-origin.image",
"https://p16-common.tiktokcdn.com/tiktok-obj/Templates_Cards.png~tplv-tiktokx-origin.jpeg"
]
}
}
],
"stats": {
"collectCount": 526,
"commentCount": 147,
"diggCount": 15639,
"playCount": 149115,
"shareCount": 89
}
}
],
"status_msg": ""
}
POST /api/v1/scrape/tiktok/collections
Every public collection a creator has published.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
handle (or unique_id) | str | no | null | Creator’s username/handle (with or without @). |
user_id | str | no | null | Numeric TikTok user id - an alternative to unique_id |
cursor | str | no | '0' | Pagination cursor - echo back the cursor from the previous response. Omit it for the first page. |
curl -X POST https://app.sideshift.app/api/v1/scrape/tiktok/collections \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"handle":"tiktok","cursor":"0"}'
data object:
| Key | Type | |
|---|---|---|
collections | array | |
cursor | null | Pass back on the next call. null once the list is exhausted. |
has_more | boolean | Whether another page exists. |
unique_id | string | Echo of what you queried. |
user_id | null | Echo of what you queried. |
{
"unique_id": "tiktok",
"has_more": false,
"collections": [
{
"collection_id": "7394627756635573022",
"name": "Summer of Sports",
"state": 3,
"video_count": 139
}
],
"cursor": null,
"user_id": null
}
POST /api/v1/scrape/tiktok/playlists
Every playlist a creator has published.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
handle (or unique_id) | str | no | null | Creator’s username/handle (with or without @). |
user_id | str | no | null | Numeric TikTok user id - an alternative to unique_id |
cursor | str | no | '0' | Pagination cursor - echo back the cursor from the previous response. Omit it for the first page. |
curl -X POST https://app.sideshift.app/api/v1/scrape/tiktok/playlists \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"handle":"tiktok","cursor":"0"}'
data object:
| Key | Type | |
|---|---|---|
playlists | array | |
cursor | null | Pass back on the next call. null once the list is exhausted. |
has_more | boolean | Whether another page exists. |
unique_id | string | Echo of what you queried. |
user_id | null | Echo of what you queried. |
{
"unique_id": "tiktok",
"has_more": false,
"playlists": [
{
"creator_username": "tiktok",
"name": "Behind The Breakthrough",
"playlist_id": "7659874208872221471",
"playlist_link": "https://www.tiktok.com/@tiktok/playlist/behind-the-breakthrough-7659874208872221471",
"type": 1
}
],
"cursor": null,
"user_id": null
}
TikTok · Discovery
POST /api/v1/scrape/tiktok/search
Keyword search over videos, with recency and sort filters.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
query (or keywords) | str | yes | — | Search keyword / phrase. |
cursor | str | no | '0' | Pagination cursor - echo back the cursor from the previous response. Omit it for the first page. |
region | str | no | null | ISO-2 region code to search from (e.g. ‘US’); see /api/v1/scrape/tiktok/regions |
publish_time | int | no | 0 | Recency filter in days: 0 all-time (default), 1 past 24 h, 7 this week, 30 this month, 90 last 3 months, 180 last 6 months |
sort_type | int | no | 0 | Sort order: 0 relevance (default), 1 most-liked, 3 most recent |
trim | bool | no | False | Accepted and ignored - the full object is always returned. |
date_posted | str | no | null | Named recency window: all-time, yesterday, this-week, this-month, last-3-months, last-6-months. Supersedes publish_time when both are sent. |
sort_by | str | no | null | Named ranking: relevance, most-liked, date-posted. Supersedes sort_type when both are sent. |
curl -X POST https://app.sideshift.app/api/v1/scrape/tiktok/search \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"query":"cooking","cursor":"0"}'
Response - thedate_posted: all-time · yesterday · this-week · this-month · last-3-months · last-6-months.sort_by: relevance · most-liked · date-posted.
data object:
| Key | Type | |
|---|---|---|
search_item_list | array of post | |
cursor | string | Pass back on the next call. null once the list is exhausted. |
has_more | boolean | Whether another page exists. |
keywords | string | Echo of what you queried. |
{
"cursor": "30",
"keywords": "cooking",
"has_more": true,
"search_item_list": [
{
"aweme_id": "7662485416846593293",
"desc": "Cajun butter steak bites over parmesan mashed potatoes🥩🧈 recipe below: Cajun butter🧈 -4 tbsp unsalted softened butter -1/2 tsp seasoned Cajun -1 tsp parsley -2 tsp minced garlic -1 tsp lemon juice -1/2 tsp Dijon mustard Mix until combined (optional: add red pepper flakes…",
"url": "https://www.tiktok.com/@nutritionwithnat_/video/7662485416846593293",
"create_time": 1784061434,
"music": {
"author": "Crowded House",
"id": "6926498184965392386",
"title": "Don't Dream It's Over",
"album": "The Very Very Best Of Crowded House - Deluxe Edition",
"id_str": "6926498184965392386",
"mid": "6926498184965392386",
"owner_nickname": "Crowded House",
"duration": 60,
"is_original": false,
"is_original_sound": false,
"cover_large": {
"uri": "https://p16-common.tiktokcdn-us.com/tos-alisg-v-2774/owAAXEeKUDAc2xTvFDCfC1slFA0IgIfziasVX6~tplv-tiktokx-cropcenter:720:720.jpeg",
"url_list": [
"https://p16-common.tiktokcdn-us.com/tos-alisg-v-2774/owAAXEeKUDAc2xTvFDCfC1slFA0IgIfziasVX6~tplv-tiktokx-cropcenter:720:720.jpeg"
]
},
"cover_medium": {
"uri": "https://p16-common.tiktokcdn-us.com/tos-alisg-v-2774/owAAXEeKUDAc2xTvFDCfC1slFA0IgIfziasVX6~tplv-tiktokx-cropcenter:720:720.jpeg",
"url_list": [
"https://p16-common.tiktokcdn-us.com/tos-alisg-v-2774/owAAXEeKUDAc2xTvFDCfC1slFA0IgIfziasVX6~tplv-tiktokx-cropcenter:720:720.jpeg"
]
},
"cover_thumb": {
"uri": "https://p16-common.tiktokcdn-us.com/tos-alisg-v-2774/owAAXEeKUDAc2xTvFDCfC1slFA0IgIfziasVX6~tplv-tiktokx-cropcenter:720:720.jpeg",
"url_list": [
"https://p16-common.tiktokcdn-us.com/tos-alisg-v-2774/owAAXEeKUDAc2xTvFDCfC1slFA0IgIfziasVX6~tplv-tiktokx-cropcenter:720:720.jpeg"
]
},
"play_url": {
"uri": "https://sf19.tiktokcdn-us.com/obj/tos-alisg-ve-2774/o8MYMO1eNGDAvm27CsLIAFG7adFzRGcMIlefgs",
"url_list": [
"https://sf19.tiktokcdn-us.com/obj/tos-alisg-ve-2774/o8MYMO1eNGDAvm27CsLIAFG7adFzRGcMIlefgs"
]
}
},
"video": {
"data_size": 15781993,
"duration": 63,
"watermark_data_size": 14376172,
"cover": {
"uri": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-p-0068-tx/oAkMMAxAQFLAgfWAUFlATdT8rvTjExIraQHfeJ~tplv-tiktokx-cropcenter:500:800.jpeg",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-useast5-p-0068-tx/oAkMMAxAQFLAgfWAUFlATdT8rvTjExIraQHfeJ~tplv-tiktokx-cropcenter:500:800.jpeg"
]
},
"download_addr": {
"uri": "https://v45.tiktokcdn-us.com/e6b0b345e645a7cdc953f4606856b77a/6a77e3da/video/tos/useast5/tos-useast5-ve-0068c002-tx/oQNWdtxTxUvEiltiamibcS4nBQEagiKdlBVAI/",
"url_list": [
"https://v45.tiktokcdn-us.com/e6b0b345e645a7cdc953f4606856b77a/6a77e3da/video/tos/useast5/tos-useast5-ve-0068c002-tx/oQNWdtxTxUvEiltiamibcS4nBQEagiKdlBVAI/"
]
},
"dynamic_cover": {
"uri": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-p-0068-tx/oAkMMAxAQFLAgfWAUFlATdT8rvTjExIraQHfeJ~tplv-tiktokx-origin.image",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-useast5-p-0068-tx/oAkMMAxAQFLAgfWAUFlATdT8rvTjExIraQHfeJ~tplv-tiktokx-origin.image"
]
},
"origin_cover": {
"uri": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-p-0068-tx/owfRQE252iKsCsMtkNBvQiUOgCFfDqApVmDSYE~tplv-tiktokx-shrink-aq:360:360:q75.webp",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-useast5-p-0068-tx/owfRQE252iKsCsMtkNBvQiUOgCFfDqApVmDSYE~tplv-tiktokx-shrink-aq:360:360:q75.webp"
]
},
"play_addr": {
"uri": "https://v45.tiktokcdn-us.com/b7182855280cdf50c4fed73c3c4327be/6a77e3da/video/tos/useast5/tos-useast5-ve-0068c001-tx/oMBignQmDKi3ISbPaEiUcTi4ExWvlaRLA7B4d/",
"url_list": [
"https://v45.tiktokcdn-us.com/b7182855280cdf50c4fed73c3c4327be/6a77e3da/video/tos/useast5/tos-useast5-ve-0068c001-tx/oMBignQmDKi3ISbPaEiUcTi4ExWvlaRLA7B4d/"
]
}
},
"author": {
"nickname": "Natalie | Nutritionist",
"unique_id": "nutritionwithnat_",
"region": "US",
"uid": "6846957697059030021",
"avatar_larger": {
"uri": "https://p16-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/71e31fb0ce7dcd04d047d44a16db0268~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/71e31fb0ce7dcd04d047d44a16db0268~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg"
]
},
"avatar_medium": {
"uri": "https://p16-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/71e31fb0ce7dcd04d047d44a16db0268~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/71e31fb0ce7dcd04d047d44a16db0268~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg"
]
},
"avatar_thumb": {
"uri": "https://p16-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/71e31fb0ce7dcd04d047d44a16db0268~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/71e31fb0ce7dcd04d047d44a16db0268~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg"
]
}
},
"statistics": {
"aweme_id": "7662485416846593293",
"collect_count": 347965,
"comment_count": 1702,
"play_count": 13230117,
"share_count": 161446,
"digg_count": 825941,
"download_count": 15757
},
"author_user_id": "6846957697059030021",
"create_time_utc": "2026-07-14T20:37:14.000Z",
"media_id": "v12044gd0000d9b9r2nog65he9h96idg",
"region": "US",
"aweme_type": 0,
"is_ad": false,
"is_nff_or_nr": false,
"is_top": 0,
"item_comment_settings": 0,
"commerce_info": {
"adv_promotable": false,
"auction_ad_invited": false,
"branded_content_type": 0,
"is_diversion_ad": 0,
"with_comment_filter_words": false
}
}
]
}
POST /api/v1/scrape/tiktok/photo-search
Keyword search restricted to photo (slideshow) posts.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
query (or keywords) | str | yes | — | Search keyword / phrase. |
cursor | str | no | '0' | Pagination cursor - echo back the cursor from the previous response. Omit it for the first page. |
region | str | no | null | ISO-2 region code to search from (e.g. ‘US’); see /api/v1/scrape/tiktok/regions |
curl -X POST https://app.sideshift.app/api/v1/scrape/tiktok/photo-search \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"query":"cooking","cursor":"0"}'
data object:
| Key | Type | |
|---|---|---|
search_item_list | array of post | |
cursor | string | Pass back on the next call. null once the list is exhausted. |
has_more | boolean | Whether another page exists. |
keywords | string | Echo of what you queried. |
{
"cursor": "30",
"keywords": "cooking",
"has_more": true,
"search_item_list": [
{
"aweme_id": "7622317409914899720",
"desc": "#creatorsearchinsights #cooking #viral #homemadefood #foryou",
"url": "https://www.tiktok.com/@ddee_kitchen/photo/7622317409914899720",
"create_time": 1774709075,
"music": {
"author": "MonyHorse",
"id": "7140462754535573506",
"title": "SUSUME (feat. NENE & JP THE WAVY)",
"album": "SUSUME (feat. NENE & JP THE WAVY)",
"id_str": "7140462754535573506",
"mid": "7140462754535573506",
"owner_nickname": "MonyHorse",
"duration": 60,
"is_original": false,
"is_original_sound": false,
"cover_large": {
"uri": "https://p16-common.tiktokcdn-us.com/tos-alisg-v-2774/oIPQyFBZQDnBTftQlgAvCuC1EfQrgsBEXVEA5A~tplv-tiktokx-cropcenter:720:720.jpeg",
"url_list": [
"https://p16-common.tiktokcdn-us.com/tos-alisg-v-2774/oIPQyFBZQDnBTftQlgAvCuC1EfQrgsBEXVEA5A~tplv-tiktokx-cropcenter:720:720.jpeg"
]
},
"cover_medium": {
"uri": "https://p16-common.tiktokcdn-us.com/tos-alisg-v-2774/oIPQyFBZQDnBTftQlgAvCuC1EfQrgsBEXVEA5A~tplv-tiktokx-cropcenter:720:720.jpeg",
"url_list": [
"https://p16-common.tiktokcdn-us.com/tos-alisg-v-2774/oIPQyFBZQDnBTftQlgAvCuC1EfQrgsBEXVEA5A~tplv-tiktokx-cropcenter:720:720.jpeg"
]
},
"cover_thumb": {
"uri": "https://p16-common.tiktokcdn-us.com/tos-alisg-v-2774/oIPQyFBZQDnBTftQlgAvCuC1EfQrgsBEXVEA5A~tplv-tiktokx-cropcenter:720:720.jpeg",
"url_list": [
"https://p16-common.tiktokcdn-us.com/tos-alisg-v-2774/oIPQyFBZQDnBTftQlgAvCuC1EfQrgsBEXVEA5A~tplv-tiktokx-cropcenter:720:720.jpeg"
]
},
"play_url": {
"uri": "https://sf16.tiktokcdn-us.com/obj/tos-alisg-ve-2774/83cedd33f47646e296f8783590669176",
"url_list": [
"https://sf16.tiktokcdn-us.com/obj/tos-alisg-ve-2774/83cedd33f47646e296f8783590669176"
]
}
},
"image_post_info": {
"images": [
{
"display_image": {
"uri": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-i-photomode-tx/e0b747c80ba848b387b189f772598923~tplv-photomode-image-v1:q70.jpeg",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-useast5-i-photomode-tx/e0b747c80ba848b387b189f772598923~tplv-photomode-image-v1:q70.jpeg"
]
},
"owner_watermark_image": {
"uri": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-i-photomode-tx/e0b747c80ba848b387b189f772598923~tplv-photomode-image-v1:q70.jpeg",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-useast5-i-photomode-tx/e0b747c80ba848b387b189f772598923~tplv-photomode-image-v1:q70.jpeg"
]
}
}
],
"image_post_cover": {
"display_image": {
"uri": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-i-photomode-tx/e0b747c80ba848b387b189f772598923~tplv-photomode-image-v1:q70.jpeg",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-useast5-i-photomode-tx/e0b747c80ba848b387b189f772598923~tplv-photomode-image-v1:q70.jpeg"
]
},
"owner_watermark_image": {
"uri": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-i-photomode-tx/e0b747c80ba848b387b189f772598923~tplv-photomode-image-v1:q70.jpeg",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-useast5-i-photomode-tx/e0b747c80ba848b387b189f772598923~tplv-photomode-image-v1:q70.jpeg"
]
}
}
},
"author": {
"nickname": "D’dee",
"unique_id": "ddee_kitchen",
"region": "MM",
"uid": "7547212336290464776",
"avatar_larger": {
"uri": "https://p19-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/f8b5fcafcef9416c4f9dc9ae4c836ba1~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg",
"url_list": [
"https://p19-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/f8b5fcafcef9416c4f9dc9ae4c836ba1~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg"
]
},
"avatar_medium": {
"uri": "https://p19-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/f8b5fcafcef9416c4f9dc9ae4c836ba1~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg",
"url_list": [
"https://p19-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/f8b5fcafcef9416c4f9dc9ae4c836ba1~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg"
]
},
"avatar_thumb": {
"uri": "https://p19-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/f8b5fcafcef9416c4f9dc9ae4c836ba1~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg",
"url_list": [
"https://p19-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/f8b5fcafcef9416c4f9dc9ae4c836ba1~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg"
]
}
},
"video": {
"duration": 0,
"cover": {
"uri": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-i-photomode-tx/e0b747c80ba848b387b189f772598923~tplv-photomode-image-cover:640:0:q70.webp",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-useast5-i-photomode-tx/e0b747c80ba848b387b189f772598923~tplv-photomode-image-cover:640:0:q70.webp"
]
},
"download_addr": {
"uri": "https://sf16.tiktokcdn-us.com/obj/tos-alisg-ve-2774/83cedd33f47646e296f8783590669176",
"url_list": [
"https://sf16.tiktokcdn-us.com/obj/tos-alisg-ve-2774/83cedd33f47646e296f8783590669176"
]
},
"dynamic_cover": {
"uri": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-i-photomode-tx/e0b747c80ba848b387b189f772598923~tplv-photomode-image-cover:640:0:q70.webp",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-useast5-i-photomode-tx/e0b747c80ba848b387b189f772598923~tplv-photomode-image-cover:640:0:q70.webp"
]
},
"origin_cover": {
"uri": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-i-photomode-tx/e0b747c80ba848b387b189f772598923~tplv-photomode-image-cover:640:0:q70.webp",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-useast5-i-photomode-tx/e0b747c80ba848b387b189f772598923~tplv-photomode-image-cover:640:0:q70.webp"
]
},
"play_addr": {
"uri": "https://sf16.tiktokcdn-us.com/obj/tos-alisg-ve-2774/83cedd33f47646e296f8783590669176",
"url_list": [
"https://sf16.tiktokcdn-us.com/obj/tos-alisg-ve-2774/83cedd33f47646e296f8783590669176"
]
}
},
"statistics": {
"aweme_id": "7622317409914899720",
"comment_count": 111,
"play_count": 607853,
"share_count": 6356,
"digg_count": 52791,
"download_count": 0
},
"author_user_id": "7547212336290464776",
"create_time_utc": "2026-03-28T14:44:35.000Z",
"region": "MM",
"aweme_type": 150,
"is_ad": false,
"is_nff_or_nr": false,
"is_top": 0,
"item_comment_settings": 0,
"commerce_info": {
"adv_promotable": false,
"auction_ad_invited": false,
"branded_content_type": 0,
"is_diversion_ad": 0,
"with_comment_filter_words": false
}
}
]
}
POST /api/v1/scrape/tiktok/profile-search
Keyword search over creators, with follower-band and verified filters.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
query (or keywords) | str | yes | — | Search keyword / phrase. |
cursor | str | no | '0' | Pagination cursor - echo back the cursor from the previous response. Omit it for the first page. |
follower_count | str | no | null | Follower band: ‘0’ no limit, ‘1’ 0–1K, ‘2’ 1K–10K, ‘3’ 10K–100K, ‘4’ 100K+ |
profile_type | str | no | null | ’0’ all profiles (default), ‘1’ verified only |
other_pref | str | no | null | Search emphasis: ‘0’ all (default), ‘1’ match on username |
trim | bool | no | False | Accepted and ignored - the full object is always returned. |
curl -X POST https://app.sideshift.app/api/v1/scrape/tiktok/profile-search \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"query":"cooking","cursor":"0"}'
data object:
| Key | Type | |
|---|---|---|
users | array of creator | |
cursor | string | Pass back on the next call. null once the list is exhausted. |
has_more | boolean | Whether another page exists. |
keywords | string | Echo of what you queried. |
{
"cursor": "30",
"keywords": "cooking",
"has_more": true,
"users": [
{
"nickname": "Lynja",
"unique_id": "cookingwithlynja",
"region": "US",
"sec_uid": "MS4wLjABAAAAEuh22qcjCA4J9HIIBYyqYqu2sMIs57Y-iQZhMeCAg_TWmWYAEAwTLI7zm8Q6z41d",
"signature": "[email redacted]\n\n👇Lynja’s Salts & Sugar👇",
"uid": "6834290048143049733",
"aweme_count": 507,
"favoriting_count": 2874,
"follower_count": 22234038,
"following_count": 61,
"total_favorited": 361126309,
"verified": true,
"avatar_larger": {
"uri": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/7310587793867014186~tplv-tiktokx-cropcenter-q:1080:1080:q70.webp",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/7310587793867014186~tplv-tiktokx-cropcenter-q:1080:1080:q70.webp"
]
},
"avatar_medium": {
"uri": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/7310587793867014186~tplv-tiktokx-cropcenter-q:720:720:q70.webp",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/7310587793867014186~tplv-tiktokx-cropcenter-q:720:720:q70.webp"
]
},
"avatar_thumb": {
"uri": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/7310587793867014186~tplv-tiktokx-cropcenter-q:100:100:q70.webp",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/7310587793867014186~tplv-tiktokx-cropcenter-q:100:100:q70.webp"
]
}
}
]
}
POST /api/v1/scrape/tiktok/top-search
TikTok’s Top tab - best-matching videos, plus the creators and hashtags ranked beside them.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
query | str | yes | — | Search term |
cursor | str | no | '0' | Pagination cursor |
region | str | no | null | ISO-2 region code to search from |
date_posted | str | no | null | Recency window: all-time, yesterday, this-week, this-month, last-3-months, last-6-months |
sort_by | str | no | null | Ranking: relevance, most-liked, date-posted |
publish_time | int | no | 0 | Numeric recency code - superseded by date_posted when both are sent |
sort_type | int | no | 0 | Numeric sort code - superseded by sort_by when both are sent |
curl -X POST https://app.sideshift.app/api/v1/scrape/tiktok/top-search \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"query":"cooking","cursor":"0"}'
data object:
| Key | Type | |
|---|---|---|
items | array of post | |
users | array of creator | |
hashtags | array | |
cursor | string | Pass back on the next call. null once the list is exhausted. |
has_more | boolean | Whether another page exists. |
query | string | Echo of what you queried. |
publish_time | number | |
sort_type | number |
{
"cursor": "20",
"query": "cooking",
"has_more": true,
"publish_time": 0,
"sort_type": 0,
"items": [
{
"create_time": "2026-07-21T18:43:23.000Z",
"desc": "Asmr cooking recipes #asmr #tiktokfood #foods #fyp",
"id": "7665053653920763166",
"url": "https://www.tiktok.com/@henry.asmr8/video/7665053653920763166",
"music": {
"author": "Temper City",
"id": "7600130441848687390",
"title": "Self Aware",
"album": "Self Aware",
"id_str": "7600130441848687390",
"mid": "7600130441848687390",
"owner_nickname": "Temper City",
"duration": 29,
"is_original": false,
"is_original_sound": false,
"cover_large": {
"uri": "https://p16-common.tiktokcdn-us.com/tos-alisg-v-2774/oYeeIoL7A2gd7Qc5DAGFIPugzQTAgCGaAYIAew~tplv-tiktokx-cropcenter:720:720.jpeg",
"url_list": [
"https://p16-common.tiktokcdn-us.com/tos-alisg-v-2774/oYeeIoL7A2gd7Qc5DAGFIPugzQTAgCGaAYIAew~tplv-tiktokx-cropcenter:720:720.jpeg"
]
},
"cover_medium": {
"uri": "https://p16-common.tiktokcdn-us.com/tos-alisg-v-2774/oYeeIoL7A2gd7Qc5DAGFIPugzQTAgCGaAYIAew~tplv-tiktokx-cropcenter:720:720.jpeg",
"url_list": [
"https://p16-common.tiktokcdn-us.com/tos-alisg-v-2774/oYeeIoL7A2gd7Qc5DAGFIPugzQTAgCGaAYIAew~tplv-tiktokx-cropcenter:720:720.jpeg"
]
},
"cover_thumb": {
"uri": "https://p16-common.tiktokcdn-us.com/tos-alisg-v-2774/oYeeIoL7A2gd7Qc5DAGFIPugzQTAgCGaAYIAew~tplv-tiktokx-cropcenter:720:720.jpeg",
"url_list": [
"https://p16-common.tiktokcdn-us.com/tos-alisg-v-2774/oYeeIoL7A2gd7Qc5DAGFIPugzQTAgCGaAYIAew~tplv-tiktokx-cropcenter:720:720.jpeg"
]
},
"play_url": {
"uri": "https://v45.tiktokcdn-us.com/efc320b83f530ef81327e76cd30fd76b/6a80ca8f/video/tos/alisg/tos-alisg-ve-2774/oYfO8w9NnWTFM7AwyuIfCLJazDRGEAEgogesoh/",
"url_list": [
"https://v45.tiktokcdn-us.com/efc320b83f530ef81327e76cd30fd76b/6a80ca8f/video/tos/alisg/tos-alisg-ve-2774/oYfO8w9NnWTFM7AwyuIfCLJazDRGEAEgogesoh/"
]
}
},
"video": {
"data_size": 10183800,
"duration": 60,
"watermark_data_size": 9183498,
"cover": {
"uri": "https://p19-common-sign.tiktokcdn-us.com/tos-useast8-p-0068-tx2/oQR3cfALJQj4eCBUAqHvQvQf8EICXCIqgMCjvW~tplv-tiktokx-cropcenter:500:800.jpeg",
"url_list": [
"https://p19-common-sign.tiktokcdn-us.com/tos-useast8-p-0068-tx2/oQR3cfALJQj4eCBUAqHvQvQf8EICXCIqgMCjvW~tplv-tiktokx-cropcenter:500:800.jpeg"
]
},
"download_addr": {
"uri": "https://v45.tiktokcdn-us.com/f004ad57babb1de7d6d6a270bea81e20/6a77e3d9/video/tos/useast8/tos-useast8-ve-0068c001-tx2/oojng4efAIFNAAn9SGiLEBsqiegeou4eKCBpYE/",
"url_list": [
"https://v45.tiktokcdn-us.com/f004ad57babb1de7d6d6a270bea81e20/6a77e3d9/video/tos/useast8/tos-useast8-ve-0068c001-tx2/oojng4efAIFNAAn9SGiLEBsqiegeou4eKCBpYE/"
]
},
"dynamic_cover": {
"uri": "https://p16-common-sign.tiktokcdn-us.com/tos-useast8-p-0068-tx2/osQMUvCCoJR3ICqeV6EI8ftAQSqcfgjQBA8Wjv~tplv-tiktokx-origin.image",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-useast8-p-0068-tx2/osQMUvCCoJR3ICqeV6EI8ftAQSqcfgjQBA8Wjv~tplv-tiktokx-origin.image"
]
},
"origin_cover": {
"uri": "https://p19-common-sign.tiktokcdn-us.com/tos-useast8-p-0068-tx2/okqCvxBAC3JMAeCnBd7jzR8EIgIWfvQUAQqQfV~tplv-tiktokx-shrink-aq:360:360:q75.webp",
"url_list": [
"https://p19-common-sign.tiktokcdn-us.com/tos-useast8-p-0068-tx2/okqCvxBAC3JMAeCnBd7jzR8EIgIWfvQUAQqQfV~tplv-tiktokx-shrink-aq:360:360:q75.webp"
]
},
"play_addr": {
"uri": "https://v45.tiktokcdn-us.com/c69fba060fd2904258e6b6e7d8377af4/6a77e3d9/video/tos/useast8/tos-useast8-ve-0068c002-tx2/oQrgneefA4FioufKCeYY4gpNIjAsBsuANAuSiE/",
"url_list": [
"https://v45.tiktokcdn-us.com/c69fba060fd2904258e6b6e7d8377af4/6a77e3d9/video/tos/useast8/tos-useast8-ve-0068c002-tx2/oQrgneefA4FioufKCeYY4gpNIjAsBsuANAuSiE/"
]
}
},
"author": {
"nickname": "Asmr Foods",
"unique_id": "henry.asmr8",
"region": "US",
"uid": "7624537338665092109",
"avatar_larger": {
"uri": "https://p16-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/96d8cfb4beb557a222c33d6e042af74a~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/96d8cfb4beb557a222c33d6e042af74a~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg"
]
},
"avatar_medium": {
"uri": "https://p16-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/96d8cfb4beb557a222c33d6e042af74a~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/96d8cfb4beb557a222c33d6e042af74a~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg"
]
},
"avatar_thumb": {
"uri": "https://p16-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/96d8cfb4beb557a222c33d6e042af74a~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/96d8cfb4beb557a222c33d6e042af74a~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg"
]
}
},
"statistics": {
"aweme_id": "7665053653920763166",
"collect_count": 6,
"comment_count": 4,
"play_count": 1890,
"share_count": 1,
"digg_count": 58,
"download_count": 8
},
"content_type": "video",
"region": "US",
"is_ad": false,
"is_top": 0
}
],
"users": [
{
"username": "cookingwithlynja",
"avatar_medium": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/7310587793867014186~tplv-tiktokx-cropcenter-q:720:720:q70.webp",
"avatar_thumb": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/7310587793867014186~tplv-tiktokx-cropcenter-q:100:100:q70.webp",
"biography": "[email redacted]\n\n👇Lynja’s Salts & Sugar👇",
"display_name": "Lynja",
"instagram_id": "cookingwithlynja",
"privacy_status": "public",
"profile_id": "6834290048143049733",
"profile_image": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/7310587793867014186~tplv-tiktokx-cropcenter-q:1080:1080:q70.webp",
"profile_link": "https://www.tiktok.com/@cookingwithlynja",
"sec_uid": "MS4wLjABAAAAEuh22qcjCA4J9HIIBYyqYqu2sMIs57Y-iQZhMeCAg_TWmWYAEAwTLI7zm8Q6z41d",
"youtube_channel_id": "UCjvGPQTRr2eIEhthL5y31VQ",
"youtube_channel_title": "Cooking With Lynja",
"content_count": 507,
"follower_count": 22234038,
"following_count": 61,
"is_ad_virtual": false,
"is_under_18": false,
"total_likes": 361126309,
"total_reactions": 361126309,
"verification_status": true
}
],
"hashtags": [
{
"cover_url": "https://p16-amd-va.tiktokcdn.com/obj/musically-maliva-obj/36154a31cfad9d1b9e317efd24c99b21",
"description": "Find a recipe, grab your ingredients, and show us your #CookingTips.",
"hashtag_id": "8620710",
"hashtag_link": "https://www.tiktok.com/tag/cookingtips",
"name": "cookingtips",
"is_challenge": false,
"is_commerce": false,
"is_pgc_show": false,
"is_strong_music": false,
"post_count": 590513,
"type": 2,
"view_count": 11777484228
}
]
}
POST /api/v1/scrape/tiktok/search-suggestions
The autocomplete terms TikTok offers for a partial query.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
query | str | yes | — | Partial or full search term |
region | str | no | null | ISO-2 region code - suggestions are region-ranked |
curl -X POST https://app.sideshift.app/api/v1/scrape/tiktok/search-suggestions \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"query":"coff"}'
data object:
| Key | Type | |
|---|---|---|
suggestions | array | |
query | string | Echo of what you queried. |
region | null | Echo of what you queried. |
{
"query": "coff",
"suggestions": [
{
"language": "en",
"text": "coffee",
"group_id": "4928213053111302118",
"position": 0,
"score": 0.025508612
}
],
"region": null
}
POST /api/v1/scrape/tiktok/trending
The trending / For You feed for a region.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
region | str | no | 'US' | ISO-2 region code (e.g. ‘US’); see /api/v1/scrape/tiktok/regions for the accepted list |
trim | bool | no | False | Accepted and ignored - the full object is always returned. |
curl -X POST https://app.sideshift.app/api/v1/scrape/tiktok/trending \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"region":"US"}'
Single-shot: this feed carries no cursor, so each call returns a fresh sample rather than a page in a series.Response - the
data object:
| Key | Type | |
|---|---|---|
aweme_list | array of post | |
region | string | Echo of what you queried. |
cursor | null | Pass back on the next call. null once the list is exhausted. |
has_more | boolean | Whether another page exists. |
{
"region": "US",
"has_more": false,
"aweme_list": [
{
"aweme_id": "7671089803311549710",
"desc": "Let the sunset heal you every day.#sunset #fyp",
"url": "https://www.tiktok.com/@fang_w3/video/7671089803311549710",
"create_time": 1786064787,
"music": {
"author": "cosmiccandy",
"id": "7255849075482823466",
"title": "original sound - cosmic_candy_",
"id_str": "7255849075482823466",
"mid": "7255849075482823466",
"owner_nickname": "cosmiccandy",
"duration": 19,
"is_original": false,
"is_original_sound": false,
"cover_large": {
"uri": "https://p19-common-sign.tiktokcdn.com/tos-maliva-avt-0068/aeb8364a49a2f1ba5e17f70bcf74218b~tplv-tiktokx-cropcenter-q:1080:1080:q70.webp",
"url_list": [
"https://p19-common-sign.tiktokcdn.com/tos-maliva-avt-0068/aeb8364a49a2f1ba5e17f70bcf74218b~tplv-tiktokx-cropcenter-q:1080:1080:q70.webp"
]
},
"cover_medium": {
"uri": "https://p19-common-sign.tiktokcdn.com/tos-maliva-avt-0068/aeb8364a49a2f1ba5e17f70bcf74218b~tplv-tiktokx-cropcenter-q:1080:1080:q70.webp",
"url_list": [
"https://p19-common-sign.tiktokcdn.com/tos-maliva-avt-0068/aeb8364a49a2f1ba5e17f70bcf74218b~tplv-tiktokx-cropcenter-q:1080:1080:q70.webp"
]
},
"cover_thumb": {
"uri": "https://p19-common-sign.tiktokcdn.com/tos-maliva-avt-0068/aeb8364a49a2f1ba5e17f70bcf74218b~tplv-tiktokx-cropcenter-q:1080:1080:q70.webp",
"url_list": [
"https://p19-common-sign.tiktokcdn.com/tos-maliva-avt-0068/aeb8364a49a2f1ba5e17f70bcf74218b~tplv-tiktokx-cropcenter-q:1080:1080:q70.webp"
]
},
"play_url": {
"uri": "https://v16-ies-music.tiktokcdn.com/6ea00d6cdfcad7603cc8eeccffe41cbb/6a80ca1a/video/tos/maliva/tos-maliva-ve-27dcd7c799-us/oUbTIoRXeKSmi1oN41CWMEbiAEeQHJEfYFnkBD/",
"url_list": [
"https://v16-ies-music.tiktokcdn.com/6ea00d6cdfcad7603cc8eeccffe41cbb/6a80ca1a/video/tos/maliva/tos-maliva-ve-27dcd7c799-us/oUbTIoRXeKSmi1oN41CWMEbiAEeQHJEfYFnkBD/"
]
}
},
"video": {
"data_size": 1526832,
"duration": 7,
"watermark_data_size": 1438018,
"cover": {
"uri": "https://p16-common-sign.tiktokcdn.com/tos-useast5-p-0068-tx/oEASLS8SBIB4Z1xfAGiASwRHrCfsqADEiQgZEd~tplv-tiktokx-shrink_ep:640:640:q78.webp",
"url_list": [
"https://p16-common-sign.tiktokcdn.com/tos-useast5-p-0068-tx/oEASLS8SBIB4Z1xfAGiASwRHrCfsqADEiQgZEd~tplv-tiktokx-shrink_ep:640:640:q78.webp"
]
},
"download_addr": {
"uri": "https://v77.tiktokcdn.com/a648307ea7121baa28a0dec6799e503c/6a78e0d2/video/tos/alisg/tos-alisg-ve-37c799-sg/owB7Qf3ODHxUFX4IJ1ELl6I56CkElVfApvjAeA/",
"url_list": [
"https://v77.tiktokcdn.com/a648307ea7121baa28a0dec6799e503c/6a78e0d2/video/tos/alisg/tos-alisg-ve-37c799-sg/owB7Qf3ODHxUFX4IJ1ELl6I56CkElVfApvjAeA/"
]
},
"dynamic_cover": {
"uri": "https://p16-common-sign.tiktokcdn.com/tos-useast5-p-0068-tx/oEASLS8SBIB4Z1xfAGiASwRHrCfsqADEiQgZEd~tplv-tiktokx-shrink_ep:640:640:q78.webp",
"url_list": [
"https://p16-common-sign.tiktokcdn.com/tos-useast5-p-0068-tx/oEASLS8SBIB4Z1xfAGiASwRHrCfsqADEiQgZEd~tplv-tiktokx-shrink_ep:640:640:q78.webp"
]
},
"origin_cover": {
"uri": "https://p16-common-sign.tiktokcdn.com/tos-useast5-p-0068-tx/o8uqjlqiUQkvIPHTXC6LSL8IQxGAKvAfTAefyd~tplv-tiktokx-shrink-aq:360:360:q75.webp",
"url_list": [
"https://p16-common-sign.tiktokcdn.com/tos-useast5-p-0068-tx/o8uqjlqiUQkvIPHTXC6LSL8IQxGAKvAfTAefyd~tplv-tiktokx-shrink-aq:360:360:q75.webp"
]
},
"play_addr": {
"uri": "https://v77.tiktokcdn.com/50a4004ab45f96bc940dc5bed97df541/6a78e0d2/video/tos/alisg/tos-alisg-ve-37c799-sg/ocd4LlulDEN5V1peAfFQk6jJ3CfWUBHIEBAOI6/",
"url_list": [
"https://v77.tiktokcdn.com/50a4004ab45f96bc940dc5bed97df541/6a78e0d2/video/tos/alisg/tos-alisg-ve-37c799-sg/ocd4LlulDEN5V1peAfFQk6jJ3CfWUBHIEBAOI6/"
]
}
},
"author": {
"nickname": "fang",
"unique_id": "fang_w3",
"region": "US",
"uid": "7511935224898028575",
"avatar_larger": {
"uri": "https://p19-common-sign.tiktokcdn.com/tos-maliva-avt-0068/c1d1e4d7c3a60888370b5b20a82efc09~tplv-tiktokx-cropcenter-q:300:300:q70.webp",
"url_list": [
"https://p19-common-sign.tiktokcdn.com/tos-maliva-avt-0068/c1d1e4d7c3a60888370b5b20a82efc09~tplv-tiktokx-cropcenter-q:300:300:q70.webp"
]
},
"avatar_medium": {
"uri": "https://p19-common-sign.tiktokcdn.com/tos-maliva-avt-0068/c1d1e4d7c3a60888370b5b20a82efc09~tplv-tiktokx-cropcenter-q:300:300:q70.webp",
"url_list": [
"https://p19-common-sign.tiktokcdn.com/tos-maliva-avt-0068/c1d1e4d7c3a60888370b5b20a82efc09~tplv-tiktokx-cropcenter-q:300:300:q70.webp"
]
},
"avatar_thumb": {
"uri": "https://p19-common-sign.tiktokcdn.com/tos-maliva-avt-0068/c1d1e4d7c3a60888370b5b20a82efc09~tplv-tiktokx-cropcenter-q:300:300:q70.webp",
"url_list": [
"https://p19-common-sign.tiktokcdn.com/tos-maliva-avt-0068/c1d1e4d7c3a60888370b5b20a82efc09~tplv-tiktokx-cropcenter-q:300:300:q70.webp"
]
}
},
"statistics": {
"aweme_id": "7671089803311549710",
"collect_count": 1216,
"comment_count": 108,
"play_count": 98775,
"share_count": 1591,
"digg_count": 11188,
"download_count": 206
},
"author_user_id": "7511935224898028575",
"create_time_utc": "2026-08-07T01:06:27.000Z",
"media_id": "v12044gd0000d9qiv2fog65kp9rhvnag",
"region": "US",
"aweme_type": 0,
"is_ad": false,
"item_comment_settings": 0
}
],
"cursor": null
}
POST /api/v1/scrape/tiktok/regions
The region codes accepted by the region-scoped endpoints.
Takes no parameters. Omit the request body or send an empty JSON object.
curl -X POST https://app.sideshift.app/api/v1/scrape/tiktok/regions \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY'
A static list - cache it rather than fetching it per request.Response - the
data object:
| Key | Type | |
|---|---|---|
regions | array | |
total | number | Total across the whole list, not just this page. |
{
"total": 242,
"regions": [
{
"code": "AD",
"name": "Andorra"
},
{
"code": "AE",
"name": "United Arab Emirates"
},
{
"code": "AF",
"name": "Afghanistan"
},
{
"code": "AG",
"name": "Antigua & Barbuda"
},
{
"code": "AI",
"name": "Anguilla"
},
{
"code": "AL",
"name": "Albania"
},
{
"code": "AM",
"name": "Armenia"
},
{
"code": "AO",
"name": "Angola"
},
{
"code": "AR",
"name": "Argentina"
},
{
"code": "AS",
"name": "American Samoa"
},
{
"code": "AT",
"name": "Austria"
},
{
"code": "AU",
"name": "Australia"
},
{
"code": "AW",
"name": "Aruba"
},
{
"code": "AX",
"name": "Åland Islands"
},
{
"code": "AZ",
"name": "Azerbaijan"
},
{
"code": "BA",
"name": "Bosnia & Herzegovina"
},
{
"code": "BB",
"name": "Barbados"
},
{
"code": "BD",
"name": "Bangladesh"
},
{
"code": "BE",
"name": "Belgium"
},
{
"code": "BF",
"name": "Burkina-faso"
},
{
"code": "BG",
"name": "Bulgaria"
},
{
"code": "BH",
"name": "Bahrain"
},
{
"code": "BI",
"name": "Burundi"
},
{
"code": "BJ",
"name": "Benin"
},
{
"code": "BL",
"name": "St. Barthélemy"
},
{
"code": "BM",
"name": "Bermuda"
},
{
"code": "BN",
"name": "Brunei"
},
{
"code": "BO",
"name": "Bolivia"
},
{
"code": "BQ",
"name": "Caribbean Netherlands"
},
{
"code": "BR",
"name": "Brazil"
},
{
"code": "BS",
"name": "Bahamas"
},
{
"code": "BT",
"name": "Bhutan"
},
{
"code": "BW",
"name": "Botswana"
},
{
"code": "BY",
"name": "Belarus"
},
{
"code": "BZ",
"name": "Belize"
},
{
"code": "CA",
"name": "Canada"
},
{
"code": "CC",
"name": "Cocos (Keeling) Islands"
},
{
"code": "CD",
"name": "Congo - Kinshasa"
},
{
"code": "CF",
"name": "Central African Republic"
},
{
"code": "CG",
"name": "Congo - Brazzaville"
},
{
"code": "CH",
"name": "Switzerland"
},
{
"code": "CI",
"name": "Ivory Coast"
},
{
"code": "CK",
"name": "Cook Is."
},
{
"code": "CL",
"name": "Chile"
},
{
"code": "CM",
"name": "Cameroon"
},
{
"code": "CN",
"name": "China mainland"
},
{
"code": "CO",
"name": "Colombia"
},
{
"code": "CR",
"name": "Costa Rica"
},
{
"code": "CV",
"name": "Cape Verde"
},
{
"code": "CW",
"name": "Curaçao"
},
{
"code": "CX",
"name": "Christmas Island"
},
{
"code": "CY",
"name": "Cyprus"
},
{
"code": "CZ",
"name": "Czechia"
},
{
"code": "DE",
"name": "Germany"
},
{
"code": "DG",
"name": "Diego Garcia"
},
{
"code": "DJ",
"name": "Djibouti"
},
{
"code": "DK",
"name": "Denmark"
},
{
"code": "DM",
"name": "Dominica"
},
{
"code": "DO",
"name": "Dominica Rep."
},
{
"code": "DZ",
"name": "Algeria"
},
{
"code": "EC",
"name": "Ecuador"
},
{
"code": "EE",
"name": "Estonia"
},
{
"code": "EG",
"name": "Egypt"
},
{
"code": "EH",
"name": "Western Sahara"
},
{
"code": "ER",
"name": "Eritrea"
},
{
"code": "ES",
"name": "Spain"
},
{
"code": "ET",
"name": "Ethiopia"
},
{
"code": "FI",
"name": "Finland"
},
{
"code": "FJ",
"name": "Fiji"
},
{
"code": "FK",
"name": "Falkland Islands"
},
{
"code": "FM",
"name": "Micronesia"
},
{
"code": "FO",
"name": "Faroe Islands"
},
{
"code": "FR",
"name": "France"
},
{
"code": "GA",
"name": "Gabon"
},
{
"code": "GB",
"name": "United Kingdom"
},
{
"code": "GD",
"name": "Grenada"
},
{
"code": "GE",
"name": "Georgia"
},
{
"code": "GF",
"name": "French Guiana"
},
{
"code": "GG",
"name": "Guernsey"
},
{
"code": "GH",
"name": "Ghana"
},
{
"code": "GI",
"name": "Gibraltar"
},
{
"code": "GL",
"name": "Greenland"
},
{
"code": "GM",
"name": "Gambia"
},
{
"code": "GN",
"name": "Guinea"
},
{
"code": "GP",
"name": "Guadeloupe"
},
{
"code": "GQ",
"name": "Equatorial Guinea"
},
{
"code": "GR",
"name": "Greece"
},
{
"code": "GS",
"name": "So. Georgia & So. Sandwich Isl."
},
{
"code": "GT",
"name": "Guatemala"
},
{
"code": "GU",
"name": "Guam"
},
{
"code": "GW",
"name": "Guinea-Bissau"
},
{
"code": "GY",
"name": "Guyana"
},
{
"code": "HK",
"name": "Hongkong"
},
{
"code": "HN",
"name": "Honduras"
},
{
"code": "HR",
"name": "Croatia"
},
{
"code": "HT",
"name": "Haiti"
},
{
"code": "HU",
"name": "Hungary"
},
{
"code": "ID",
"name": "Indonesia"
},
{
"code": "IE",
"name": "Ireland"
},
{
"code": "IL",
"name": "Israel"
},
{
"code": "IM",
"name": "Isle of Man"
},
{
"code": "IN",
"name": "India"
},
{
"code": "IO",
"name": "British Indian Ocean Territory"
},
{
"code": "IQ",
"name": "Iraq"
},
{
"code": "IS",
"name": "Iceland"
},
{
"code": "IT",
"name": "Italy"
},
{
"code": "JE",
"name": "Jersey"
},
{
"code": "JM",
"name": "Jamaica"
},
{
"code": "JO",
"name": "Jordan"
},
{
"code": "JP",
"name": "Japan"
},
{
"code": "KE",
"name": "Kenya"
},
{
"code": "KG",
"name": "Kyrgyzstan"
},
{
"code": "KH",
"name": "Kampuchea (Cambodia )"
},
{
"code": "KI",
"name": "Kiribati"
},
{
"code": "KM",
"name": "Comoros"
},
{
"code": "KN",
"name": "St. Kitts & Nevis"
},
{
"code": "KR",
"name": "Korea"
},
{
"code": "KW",
"name": "Kuwait"
},
{
"code": "KY",
"name": "Cayman Is."
},
{
"code": "KZ",
"name": "Kazakhstan"
},
{
"code": "LA",
"name": "Laos"
},
{
"code": "LB",
"name": "Lebanon"
},
{
"code": "LC",
"name": "St.Lucia"
},
{
"code": "LI",
"name": "Liechtenstein"
},
{
"code": "LK",
"name": "Sri Lanka"
},
{
"code": "LR",
"name": "Liberia"
},
{
"code": "LS",
"name": "Lesotho"
},
{
"code": "LT",
"name": "Lithuania"
},
{
"code": "LU",
"name": "Luxembourg"
},
{
"code": "LV",
"name": "Latvia"
},
{
"code": "LY",
"name": "Libya"
},
{
"code": "MA",
"name": "Morocco"
},
{
"code": "MC",
"name": "Monaco"
},
{
"code": "MD",
"name": "Moldova, Republic of"
},
{
"code": "ME",
"name": "Montenegro"
},
{
"code": "MF",
"name": "St. Martin"
},
{
"code": "MG",
"name": "Madagascar"
},
{
"code": "MH",
"name": "Marshall Islands"
},
{
"code": "MK",
"name": "North Macedonia"
},
{
"code": "ML",
"name": "Mali"
},
{
"code": "MM",
"name": "Myanmar (Burma)"
},
{
"code": "MN",
"name": "Mongolia"
},
{
"code": "MO",
"name": "Macao"
},
{
"code": "MP",
"name": "Northern Mariana Islands"
},
{
"code": "MQ",
"name": "Martinique"
},
{
"code": "MR",
"name": "Mauritania"
},
{
"code": "MS",
"name": "Montserrat"
},
{
"code": "MT",
"name": "Malta"
},
{
"code": "MU",
"name": "Mauritius"
},
{
"code": "MV",
"name": "Maldives"
},
{
"code": "MW",
"name": "Malawi"
},
{
"code": "MX",
"name": "Mexico"
},
{
"code": "MY",
"name": "Malaysia"
},
{
"code": "MZ",
"name": "Mozambique"
},
{
"code": "NA",
"name": "Namibia"
},
{
"code": "NC",
"name": "New Caledonia"
},
{
"code": "NE",
"name": "Niger"
},
{
"code": "NF",
"name": "Norfolk Island"
},
{
"code": "NG",
"name": "Nigeria"
},
{
"code": "NI",
"name": "Nicaragua"
},
{
"code": "NL",
"name": "Netherlands"
},
{
"code": "NO",
"name": "Norway"
},
{
"code": "NP",
"name": "Nepal"
},
{
"code": "NR",
"name": "Nauru"
},
{
"code": "NU",
"name": "Niue"
},
{
"code": "NZ",
"name": "New Zealand"
},
{
"code": "OM",
"name": "Oman"
},
{
"code": "PA",
"name": "Panama"
},
{
"code": "PE",
"name": "Peru"
},
{
"code": "PF",
"name": "French Polynesia"
},
{
"code": "PG",
"name": "Papua New Cuinea"
},
{
"code": "PH",
"name": "Philippines"
},
{
"code": "PK",
"name": "Pakistan"
},
{
"code": "PL",
"name": "Poland"
},
{
"code": "PM",
"name": "St. Pierre & Miquelon"
},
{
"code": "PN",
"name": "Pitcairn Islands"
},
{
"code": "PR",
"name": "Puerto Rico"
},
{
"code": "PS",
"name": "Palestinian Territories"
},
{
"code": "PT",
"name": "Portugal"
},
{
"code": "PW",
"name": "Palau"
},
{
"code": "PY",
"name": "Paraguay"
},
{
"code": "QA",
"name": "Qatar"
},
{
"code": "RE",
"name": "Réunion"
},
{
"code": "RO",
"name": "Romania"
},
{
"code": "RS",
"name": "Serbia"
},
{
"code": "RU",
"name": "Russia"
},
{
"code": "RW",
"name": "Rwanda"
},
{
"code": "SA",
"name": "Saudi Arabia"
},
{
"code": "SB",
"name": "Solomon Is"
},
{
"code": "SC",
"name": "Seychelles"
},
{
"code": "SD",
"name": "Sudan"
},
{
"code": "SE",
"name": "Sweden"
},
{
"code": "SG",
"name": "Singapore"
},
{
"code": "SH",
"name": "Ascension Island"
},
{
"code": "SI",
"name": "Slovenia"
},
{
"code": "SJ",
"name": "Svalbard & Jan Mayen"
},
{
"code": "SK",
"name": "Slovakia"
},
{
"code": "SL",
"name": "Sierra Leone"
},
{
"code": "SM",
"name": "San Marino"
},
{
"code": "SN",
"name": "Senegal"
},
{
"code": "SO",
"name": "Somali"
},
{
"code": "SR",
"name": "Suriname"
},
{
"code": "SS",
"name": "South Sudan"
},
{
"code": "ST",
"name": "Sao Tome and Principe"
},
{
"code": "SV",
"name": "EI Salvador"
},
{
"code": "SX",
"name": "Sint Maarten"
},
{
"code": "SZ",
"name": "Eswatini"
},
{
"code": "TC",
"name": "Turks & Caicos Islands"
},
{
"code": "TD",
"name": "Chad"
},
{
"code": "TG",
"name": "Togo"
},
{
"code": "TH",
"name": "Thailand"
},
{
"code": "TJ",
"name": "Tajikstan"
},
{
"code": "TK",
"name": "Tokelau"
},
{
"code": "TL",
"name": "Timor-Leste"
},
{
"code": "TM",
"name": "Turkmenistan"
},
{
"code": "TN",
"name": "Tunisia"
},
{
"code": "TO",
"name": "Tonga"
},
{
"code": "TR",
"name": "Turkey"
},
{
"code": "TT",
"name": "Trinidad & Tobago"
},
{
"code": "TV",
"name": "Tuvalu"
},
{
"code": "TW",
"name": "Taiwan"
},
{
"code": "TZ",
"name": "Tanzania"
},
{
"code": "UA",
"name": "Ukraine"
},
{
"code": "UG",
"name": "Uganda"
},
{
"code": "US",
"name": "United States"
},
{
"code": "UY",
"name": "Uruguay"
},
{
"code": "UZ",
"name": "Uzbekistan"
},
{
"code": "VA",
"name": "Vatican City"
},
{
"code": "VC",
"name": "St. Vincent & Grenadines"
},
{
"code": "VE",
"name": "Venezuela"
},
{
"code": "VG",
"name": "British Virgin Islands"
},
{
"code": "VI",
"name": "U.S. Virgin Islands"
},
{
"code": "VN",
"name": "Vietnam"
},
{
"code": "VU",
"name": "Vanuatu"
},
{
"code": "WF",
"name": "Wallis & Futuna"
},
{
"code": "WS",
"name": "Samoa"
},
{
"code": "XK",
"name": "Kosovo"
},
{
"code": "YE",
"name": "Yemen"
},
{
"code": "YT",
"name": "Mayotte"
},
{
"code": "ZA",
"name": "South Africa"
},
{
"code": "ZM",
"name": "Zambia"
},
{
"code": "ZW",
"name": "Zimbabwe"
}
]
}
TikTok · Comments
POST /api/v1/scrape/tiktok/comment-replies
The reply thread under one comment.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
url (or video_id) | str | yes | — | Numeric video id, or any full TikTok video/photo URL. |
comment_id | str | yes | — | Numeric id of the comment whose replies to fetch |
cursor | str | no | '0' | Pagination cursor - echo back the cursor from the previous response. Omit it for the first page. |
curl -X POST https://app.sideshift.app/api/v1/scrape/tiktok/comment-replies \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"url":"7612965843596479751","comment_id":"7612966844110914334"}'
TikTok nests exactly one level, so replies never have replies. TikTok’s own reply cursor is off by one - page 2 repeats page 1’s last reply - so de-duplicate onResponse - thecid, and usetotalfor the real thread size. Requesting a thread in a single page avoids it entirely.
data object:
| Key | Type | |
|---|---|---|
comments | array of comment | |
cursor | null | Pass back on the next call. null once the list is exhausted. |
has_more | boolean | Whether another page exists. |
status_code | number | Platform status code. 0 is success. |
status_msg | string | Platform status message. |
extra | null | Platform tracing block. Always null here. |
log_pb | null | Platform tracing block. Always null here. |
total | number | Total across the whole list, not just this page. |
aweme_id | string | Echo of what you queried. |
comment_id | string | Echo of what you queried. |
{
"aweme_id": "7612965843596479751",
"comment_id": "7612966844110914334",
"has_more": false,
"status_code": 0,
"total": 4,
"comments": [
{
"aweme_id": "7612965843596479751",
"text": "Thx𓀠𓀠",
"create_time": 1772532161,
"user": {
"nickname": "ちい/Chii",
"unique_id": "artchiist",
"region": "JP",
"sec_uid": "MS4wLjABAAAANiBD2T6ao7u2cE5Xj1zRRiVjShx-oKRUIDUFgHqmbyUkUOH-bk4iehKJ7eOsUkrJ",
"signature": "⸝⋆꙳⟡.· ⋆ 𖦹ܾ 𖥧🪵🌿\n\n🗺ɪɴꜱᴛᴀɢʀᴀᴍ : @ artchiist\n\nꜱᴜʙ:@たいやきくん(ちい) 🚹: @壱",
"uid": "7093407411964986370",
"aweme_count": 0,
"favoriting_count": 0,
"follower_count": 0,
"following_count": 0,
"secret": false,
"total_favorited": 0,
"verified": false,
"avatar_larger": {
"uri": "https://p16-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/05fb1570b7fe0e2957d819ea183b2aa7~tplv-tiktokx-cropcenter-q:100:100:q70.jpeg",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/05fb1570b7fe0e2957d819ea183b2aa7~tplv-tiktokx-cropcenter-q:100:100:q70.jpeg"
]
}
},
"cid": "7612967610280805138",
"digg_count": 38,
"status": 1
}
],
"status_msg": "",
"cursor": null,
"extra": null,
"log_pb": null
}
TikTok · Media
POST /api/v1/scrape/tiktok/transcript
A video’s caption track, as plain text and raw WEBVTT.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
url | str | yes | — | TikTok video URL, or a bare numeric video id |
language | str | no | null | Pick a specific track by language code (e.g. ‘en’). Omit to prefer a creator-authored track, then English. |
use_ai_as_fallback | bool | no | False | Applies only to videos with no caption track, which would require speech-to-text. Speech-to-text fallback is not enabled, so such videos report a clear 501 rather than silently returning nothing. |
curl -X POST https://app.sideshift.app/api/v1/scrape/tiktok/transcript \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"url":"https://www.tiktok.com/@henripalms/video/7631128625017851138"}'
A genuine caption track, not speech recognition. Short share links (vm.tiktok.com) are rejected with a 400 - expand them first, or pass the bare numeric id.
Response - the data object:
| Key | Type | |
|---|---|---|
id | string | |
url | string | |
transcript | string or null | |
transcript_vtt | string or null | |
language | string or null | |
is_auto_generated | boolean or null | |
available_tracks | array |
{
"id": "7631128625017851138",
"language": "eng-US",
"transcript": "Next time you're in Tesco wondering if you should buy that chocolate bar, buy it. Because you could always be in an airport where a bar of chocolate cost £20",
"transcript_vtt": "WEBVTT\n\n\n00:00:00.180 --> 00:00:03.020\nNext time you're in Tesco wondering if you should buy that chocolate bar,\n\n00:00:03.021 --> 00:00:03.660\nbuy it.\n\n00:00:03.661 --> 00:00:08.520\nBecause you could always be in an airport where a bar of chocolate cost £20\n",
"url": "https://www.tiktok.com/@henripalms/video/7631128625017851138",
"available_tracks": [
{
"url": "https://v16m-webapp.tiktokcdn-us.com/88ffad13a8398c73e149a82a1f44ad48/6a7a3247/video/tos/useast5/tos-useast5-v-0068c799-tx/102fcb7a5c304113be6f2f3a66041a78/",
"format": "webvtt",
"kind": "manual",
"language_code": "eng-US",
"language_name": "eng-US",
"is_auto_generated": false
}
],
"is_auto_generated": false
}
TikTok · Ads
POST /api/v1/scrape/tiktok/ads
TikTok’s Top Ads library - the best-performing public ads.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
page | int | no | 1 | 1-indexed result page |
cursor | str | no | null | Pagination cursor - echo back the cursor from the previous response. Omit it for the first page.. Equivalent to page (this library pages by number); when both are sent, cursor wins. |
limit | int | no | 20 | Ads per page (1-20). Values above 20 are rejected before any credits are charged. |
period | int | no | null | Look-back window in days: 7, 30 or 180 |
country_code | str | no | null | Comma-separated ISO-2 markets (e.g. ‘US,CA’) |
ad_language | str | no | null | Comma-separated language codes (e.g. ‘en,de’) |
order_by | str | no | null | Ranking metric: ‘impression’ (reach), ‘ctr’, ‘like’, ‘cvr’, ‘play_6s_rate’, ‘play_2s_rate’ |
industry | str | no | null | Comma-separated industry codes (e.g. ‘28000000000,24000000000’) |
ad_format | str | no | null | ’1’ Spark Ads, ‘2’ non-Spark Ads |
objective | str | no | null | Comma-separated campaign objectives: 1 traffic, 2 app installs, 3 conversions, 4 video views, 5 reach, 8 lead generation, 15 product sales |
like | str | no | null | Like percentile band: ‘1’ top 1–20%, ‘2’ 21–40%, ‘3’ 41–60%, ‘4’ 61–80%, ‘5’ 81–100% |
keyword | str | no | null | Free-text keyword to search the ads library |
curl -X POST https://app.sideshift.app/api/v1/scrape/tiktok/ads \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"country_code":"US","period":7}'
Spend is not published for any ad, soResponse - thecostis a band rather than a figure.ctrandlikeare the library’s real metrics.
data object:
| Key | Type | |
|---|---|---|
ads | array | |
cursor | string or null | Pass back on the next call. null once the list is exhausted. |
has_more | boolean | Whether another page exists. |
page | number | |
page_size | number | |
total | number | Total across the whole list, not just this page. |
{
"cursor": "2",
"has_more": true,
"page": 1,
"page_size": 20,
"total": 22,
"ads": [
{
"title": "Australia, Cozey is here with thoughtfully designed furniture and fast, free shipping from Sydney.",
"like_count": 288,
"video": {
"cover_url": "https://p16-common-sign.tiktokcdn.com/tos-alisg-p-0051c001-sg/ooZR8AfOUbQL4jNjDPgMIsFEN85IHqZJDfBMB1~tplv-noop.image",
"video_id": "v14033g50000d9mccjvog65u49opc4e0",
"video_link": "https://v16m-default.tiktokcdn.com/ea13104f90cbac2fc5775536289ba22b/6a77e3ba/video/tos/alisg/tos-alisg-ve-0051c001-sg/owbAcBEMnRDNNGgEZILWFXsBfeUQVqEDxGIPnv/",
"duration_seconds": 28.067,
"height": 1280,
"width": 720,
"video_links_by_quality": {
"1080p": "https://v16m-default.tiktokcdn.com/ea13104f90cbac2fc5775536289ba22b/6a77e3ba/video/tos/alisg/tos-alisg-ve-0051c001-sg/owbAcBEMnRDNNGgEZILWFXsBfeUQVqEDxGIPnv/",
"360p": "https://v16m-default.tiktokcdn.com/e1f7d9495537303de4c76802e8675c8d/6a77e3ba/video/tos/alisg/tos-alisg-ve-0051c001-sg/o4dgnExPAIZDMeUqNXcBBWGpmEEKIQFsPBCbfD/",
"480p": "https://v16m-default.tiktokcdn.com/2cdff4844d0c3411cae90329196c6e74/6a77e3ba/video/tos/alisg/tos-alisg-ve-0051c001-sg/oQUD4GD7EDrgIMFgqfIAMjMfRZ8NBPDbZQBmOs/",
"540p": "https://v16m-default.tiktokcdn.com/7b61fb925f321ddf796f208b50e72c46/6a77e3ba/video/tos/alisg/tos-alisg-ve-0051c001-sg/oQFZMJOqbA2sBIPgE8OMTNjBUfZfI4MbDR4gQD/",
"720p": "https://v16m-default.tiktokcdn.com/3ba5537a0909b760e98f610434bb35e4/6a77e3ba/video/tos/alisg/tos-alisg-ve-0051c001-sg/o8IcrNBqWbsxZFWDec9DmgQDUEBfAPI4GEGnEM/"
}
},
"ad_id": "7668717763499327508",
"brand_name": "cozey",
"industry_key": "label_21000000000",
"objective_key": "campaign_objective_traffic",
"cost_level": 2,
"ctr": 0.25,
"is_search_ad": true
}
]
}
POST /api/v1/scrape/tiktok/ad
The full record for one ad from the Top Ads library.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
ad_id (or material_id) | str | yes | — | Ad (material) id, as returned by /api/v1/scrape/tiktok/ads. |
curl -X POST https://app.sideshift.app/api/v1/scrape/tiktok/ad \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"ad_id":"7668695930906099732"}'
data object:
| Key | Type | |
|---|---|---|
ad_title | string | |
brand_name | string | |
comment | number | |
cost | number | |
country_code | array | |
ctr | number | |
favorite | boolean | |
has_summary | boolean | |
highlight_text | string | |
id | string | |
industry_key | string | |
is_search | boolean | |
keyword_list | null | |
landing_page | string | |
like | number | |
objective_key | string | |
objectives | array | |
pattern_label | array | |
share | number | |
source | string | |
source_key | number | |
video_info | object | |
voice_over | boolean | |
creative_center_url | string | |
detail_analysis | null | |
interactive_time_analysis | null | |
recommended_for_you | null |
{
"id": "7668695930906099732",
"ad_title": "Much needed curl refresh thanks to @Conair hair steamer 🩷✨ #curlyhair #haircare #routine #ad #Conair",
"brand_name": "Not Mention",
"creative_center_url": "https://ads.tiktok.com/business/creativecenter/ads/detail/7668695930906099732",
"industry_key": "label_16100000000",
"landing_page": "https://www.tiktok.com/t/ZT9hYLPTgToKJ-A3JyY/",
"objective_key": "campaign_objective_reach",
"source": "Others",
"comment": 143,
"cost": 2,
"ctr": 0.45,
"favorite": false,
"has_summary": false,
"is_search": false,
"like": 625,
"share": 4,
"source_key": 73,
"voice_over": false,
"video_info": {
"video_url": {
"540p": "https://v16m-default.tiktokcdn.com/ed750874729374bb956af46fe566989c/6a77e3be/video/tos/maliva/tos-maliva-ve-0068c799-us/oYVOGpwPEborAFpfGgSQVgDsatGzBADgEIvfRB/",
"720p": "https://v16m-default.tiktokcdn.com/55b2ac092c0567d731cb2cb44f43bd69/6a77e3be/video/tos/maliva/tos-maliva-ve-0068c799-us/oAwjIASRVEBrPfDGDXgFBzvSQfsVptEBwgGgOA/"
},
"cover": "https://p16-common-sign.tiktokcdn.com/tos-maliva-p-0068c799-us/o0fIICjHgwWiDB4OApAgIEKswQipB0A15jBpGi~tplv-noop.image",
"vid": "v12044gd0000d77b3bfog65g3u1a60g0",
"duration": 32.467,
"height": 1280,
"width": 720
},
"objectives": [
{
"label": "campaign_objective_reach",
"value": 5
}
],
"country_code": [
"US"
],
"highlight_text": "",
"detail_analysis": null,
"interactive_time_analysis": null,
"keyword_list": null,
"recommended_for_you": null,
"pattern_label": []
}
video_info fields:
| Field | Type | Example |
|---|---|---|
vid | string | "v1c044g50000d9kcmuvog65kr88cgdng" |
duration | number | 35.293 |
cover | string | "https://p16-common-sign.tiktokcdn.com… |
video_url | object | nested: 720p |
width | number | 576 |
height | number | 1024 |
Instagram — 17 platform operations
Instagram’s own payloads are passed through under the keys Instagram uses, so field names and nesting match what you would get from Instagram directly.Instagram · Profile
POST /api/v1/scrape/instagram/profile-details
Full public profile: identity, counts, bio links, recent posts, related accounts.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
cache_max_age | str | no | null | Accepted and ignored - every response is a live read. |
handle | str | yes | — | Instagram handle (with or without @) |
trim | bool | no | False | Return only the core identity/count fields |
curl -X POST https://app.sideshift.app/api/v1/scrape/instagram/profile-details \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"handle":"nasa"}'
data object:
| Key | Type | |
|---|---|---|
success | boolean | Always true on a 200. |
data | object |
{
"success": true,
"data": {
"user": {
"full_name": "NASA",
"id": "528817151",
"username": "nasa",
"biography": "Making the seemingly impossible, possible. ✨",
"business_address_json": "{\"city_name\": null, \"city_id\": null, \"latitude\": null, \"longitude\": null, \"street_address\": null, \"zip_code\": null}",
"business_category_name": "Government Agencies",
"business_contact_method": "CALL",
"category_enum": "GOVERNMENT_ORGANIZATION",
"eimu_id": "118750106179205",
"external_url": "https://www.nasa.gov/",
"external_url_linkshimmed": "https://l.instagram.com/",
"fbid": "17841401474538262",
"profile_pic_url": "https://scontent-dfw5-3.cdninstagram.com/v/t51.2885-19/29090066_159271188110124_1152068159029641216_n.jpg",
"profile_pic_url_hd": "https://scontent-dfw5-3.cdninstagram.com/v/t51.2885-19/29090066_159271188110124_1152068159029641216_n.jpg",
"blocked_by_viewer": false,
"country_block": false,
"followed_by_viewer": false,
"follows_viewer": false,
"has_ar_effects": false,
"has_blocked_viewer": false,
"has_channel": false,
"has_clips": true,
"has_guides": false,
"has_onboarded_to_text_post_app": true
}
}
}
data fields:
| Field | Type | Example |
|---|---|---|
user | object | nested: ai_agent_owner_username, ai_agent_type, biography, bio_links |
POST /api/v1/scrape/instagram/profile-summary
Profile summary keyed by numeric user id.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
userId | str | yes | — | Numeric Instagram user id |
cache_max_age | str | no | null | Accepted and ignored - every response is a live read. |
curl -X POST https://app.sideshift.app/api/v1/scrape/instagram/profile-summary \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"userId":"13460080"}'
data object:
| Key | Type | |
|---|---|---|
success | boolean | Always true on a 200. |
pk | string | |
id | string | |
username | string | |
full_name | string | |
biography | string | |
biography_with_entities | object | |
profile_pic_url | string | |
hd_profile_pic_url_info | object | |
is_verified | boolean | |
is_private | boolean | |
is_business | boolean | |
is_professional_account | boolean | |
account_type | string | |
follower_count | number | |
following_count | number | |
media_count | number | |
category | null | |
external_url | string | |
bio_links | array | |
pronouns | array | |
fbid_v2 | string | |
is_embeds_disabled | boolean | |
show_account_transparency_details | boolean | |
transparency_label | null | |
transparency_product | null | |
address_street | string | |
city_name | null | |
zip | null | |
is_regulated_c18 | boolean | |
has_chaining | boolean | |
total_clips_count | number |
{
"full_name": "Nike",
"id": "13460080",
"username": "nike",
"account_type": "business",
"address_street": "{\"city_name\": \"Beaverton, Oregon\", \"city_id\": 108410602520455, \"latitude\": 45.5076448, \"longitude\": -122.8269159, \"street_address\": \"One Bowerman Dr\", \"zip_code\": \"97005\"}",
"biography": "Just Do It.",
"external_url": "http://empli.fi/nike",
"fbid_v2": "17841400602400210",
"pk": "13460080",
"profile_pic_url": "https://scontent-sjc3-1.cdninstagram.com/v/t51.82787-19/551608484_18567162979020081_1135468084872726555_n.jpg",
"follower_count": 291574452,
"following_count": 264,
"has_chaining": false,
"is_business": true,
"is_embeds_disabled": false,
"is_private": false,
"is_professional_account": true,
"is_regulated_c18": false,
"is_verified": true,
"media_count": 1667,
"show_account_transparency_details": true,
"success": true,
"total_clips_count": 0,
"bio_links": [
{
"url": "http://empli.fi/nike",
"link_type": "external",
"lynx_url": "https://l.instagram.com/"
}
],
"hd_profile_pic_url_info": {
"url": "https://scontent-sjc3-1.cdninstagram.com/v/t51.82787-19/551608484_18567162979020081_1135468084872726555_n.jpg"
},
"biography_with_entities": {
"raw_text": "Just Do It.",
"entities": []
},
"category": null,
"city_name": null,
"transparency_label": null,
"transparency_product": null,
"zip": null,
"pronouns": []
}
biography_with_entities fields:
| Field | Type | Example |
|---|---|---|
raw_text | string | "Making the seemingly impossible, poss… |
entities | array | array |
hd_profile_pic_url_info fields:
| Field | Type | Example |
|---|---|---|
url | string | "https://scontent-mia5-2.cdninstagram.… |
POST /api/v1/scrape/instagram/profile-embed
The profile embed HTML, plus an account summary and recent posts.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
handle | str | yes | — | Instagram handle |
curl -X POST https://app.sideshift.app/api/v1/scrape/instagram/profile-embed \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"handle":"nasa"}'
data object:
| Key | Type | |
|---|---|---|
success | boolean | Always true on a 200. |
html | string | |
profile | object | |
recent_posts | array |
{
"html": "<!DOCTYPE html>\n<html lang=\"en\" id=\"facebook\" class=\"no_js\">\n<head><meta charset=\"utf-8\" /><meta name=\"referrer\" content=\"default\" id=\"meta_referrer\" /><script nonce=\"Y8Cu4hrv\">function envFlush(e){function t(t){for(var n in e)t[n]=e[n]}window.requireLazy?window.requireLazy([\"…",
"success": true,
"recent_posts": [
{
"caption": "Artemis III is taking shape 🚀\n\nThe past month has brought major progress across the board for the next Artemis mission, from the Orion spacecraft coming together to key SLS (Space Launch System) hardware reaching important milestones:\n\n✅ Orion’s crew and service modules are n…",
"id": "3957197381754246568",
"shortcode": "Dbqyg11kVWo",
"url": "https://www.instagram.com/p/Dbqyg11kVWo/",
"comment_count": 259,
"taken_at": 1785954710,
"owner": {
"id": "528817151",
"username": "nasa",
"profile_pic_url": "https://scontent-phx1-1.cdninstagram.com/v/t51.2885-19/29090066_159271188110124_1152068159029641216_n.jpg",
"followed_by_viewer": false,
"has_public_story": false,
"is_private": false,
"is_unpublished": false,
"is_verified": true,
"edge_followed_by": {
"count": 104250216
},
"edge_owner_to_timeline_media": {
"count": 4872
},
"edge_owner_to_timeline_video_media": {
"count": 529
}
},
"__typename": "GraphSidecar",
"display_url": "https://scontent-phx1-1.cdninstagram.com/v/t51.82787-15/765715798_18611964127042671_6218197871265090181_n.jpg",
"is_affiliate": false,
"is_paid_partnership": false,
"is_video": false,
"like_and_view_counts_disabled": false,
"coauthor_producers": [
{
"id": "549403870",
"username": "nasakennedy",
"profile_pic_url": "https://scontent-phx1-1.cdninstagram.com/v/t51.2885-19/54247761_435953633840360_5168126987566317568_n.jpg",
"is_verified": true
}
],
"dimensions": {
"height": 1440,
"width": 1080
}
}
],
"profile": {
"full_name": "NASA",
"url": "https://www.instagram.com/nasa/",
"username": "nasa",
"profile_pic_url": "https://scontent-phx1-1.cdninstagram.com/v/t51.2885-19/29090066_159271188110124_1152068159029641216_n.jpg",
"user_id": "528817151",
"follower_count": 104250216,
"has_public_story": false,
"is_verified": true,
"media_count": 4872,
"pronouns": []
}
}
profile fields:
| Field | Type | Example |
|---|---|---|
username | string | "nasa" |
full_name | string | "NASA" |
is_verified | boolean | true |
profile_pic_url | string | "https://scontent-atl3-2.cdninstagram.… |
follower_count | number | 104243371 |
media_count | number | 4872 |
has_public_story | boolean | true |
pronouns | array | array |
user_id | string | "528817151" |
url | string | "https://www.instagram.com/nasa/" |
Instagram · Posts
POST /api/v1/scrape/instagram/timeline
A page of a profile’s timeline - reels, photos, videos and carousels.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
handle | str | yes | — | Instagram handle |
next_max_id | str | no | null | Cursor from the previous response |
trim | bool | no | False | Return a reduced post object |
curl -X POST https://app.sideshift.app/api/v1/scrape/instagram/timeline \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"handle":"nasa"}'
Pages on next_max_id.
Response - the data object:
| Key | Type | |
|---|---|---|
success | boolean | Always true on a 200. |
items | array of post | |
num_results | number | |
more_available | boolean | |
has_more | boolean | Whether another page exists. |
next_max_id | string | Pass back on the next call. |
user | object |
{
"user": {
"full_name": "NASA",
"id": "528817151",
"username": "nasa",
"pk": "528817151",
"pk_id": "528817151",
"profile_grid_display_type": "default",
"profile_pic_id": "1735715738009579084_528817151",
"profile_pic_url": "https://scontent-sjc6-1.cdninstagram.com/v/t51.2885-19/29090066_159271188110124_1152068159029641216_n.jpg",
"strong_id__": "528817151",
"is_active_on_text_post_app": true,
"is_private": false,
"is_verified": true
},
"next_max_id": "3952023811948503235_528817151",
"has_more": true,
"more_available": true,
"num_results": 12,
"success": true,
"items": [
{
"code": "Dbn-XJhk0_-",
"id": "3956405067326902270_528817151",
"url": "https://www.instagram.com/reel/Dbn-XJhk0_-/",
"comment_count": 2238,
"like_count": 219399,
"play_count": 7474702,
"taken_at": 1785860295,
"caption": {
"text": "Lunar landers, assemble.\n\nIn clean rooms across the country, the next generation of commercial lunar landers is coming together.\n\nFrom @BlueOrigin and @FireflyAerospace to @IntuitiveMachines and @VoyagerTech_, we're taking you behind the scenes to see the spacecraft that will …",
"user": {
"full_name": "NASA",
"id": "528817151",
"username": "nasa",
"fbid_v2": "17841401474538262",
"pk": "528817151",
"pk_id": "528817151",
"profile_pic_id": "1735715738009579084_528817151",
"profile_pic_url": "https://scontent-sjc6-1.cdninstagram.com/v/t51.2885-19/29090066_159271188110124_1152068159029641216_n.jpg",
"strong_id__": "528817151",
"is_private": false,
"is_unpublished": false,
"is_verified": true
},
"content_type": "comment",
"media_id": "3956405067326902270",
"pk": "18138644452587909",
"status": "Active",
"strong_id__": "18138644452587909",
"text_translation": "Lunar landers, assemble.\n\n In clean rooms across the country, the next generation of commercial lunar landers is coming together.\n\n From @BlueOrigin and @FireflyAerospace to @IntuitiveMachines and @VoyagerTech_, we're taking you behind the scenes to see the spacecraft that wil…",
"user_id": "528817151",
"bit_flags": 0,
"created_at": 1785860298,
"created_at_utc": 1785860298,
"did_report_as_spam": false,
"is_covered": false
},
"owner": {
"full_name": "NASA",
"id": "528817151",
"username": "nasa",
"fbid_v2": "17841401474538262",
"pk": "528817151",
"pk_id": "528817151",
"profile_pic_id": "1735715738009579084_528817151",
"profile_pic_url": "https://scontent-sjc6-1.cdninstagram.com/v/t51.2885-19/29090066_159271188110124_1152068159029641216_n.jpg",
"strong_id__": "528817151",
"account_type": 2,
"can_see_quiet_post_attribution": true,
"eligible_for_text_app_activation_badge": false,
"feed_post_reshare_disabled": false,
"has_anonymous_profile_picture": false
},
"user": {
"full_name": "NASA",
"id": "528817151",
"username": "nasa",
"fbid_v2": "17841401474538262",
"pk": "528817151",
"pk_id": "528817151",
"profile_pic_id": "1735715738009579084_528817151",
"profile_pic_url": "https://scontent-sjc6-1.cdninstagram.com/v/t51.2885-19/29090066_159271188110124_1152068159029641216_n.jpg",
"strong_id__": "528817151",
"account_type": 2,
"can_see_quiet_post_attribution": true,
"eligible_for_text_app_activation_badge": false,
"feed_post_reshare_disabled": false,
"has_anonymous_profile_picture": false
},
"caption_text": "Lunar landers, assemble.\n\nIn clean rooms across the country, the next generation of commercial lunar landers is coming together.\n\nFrom @BlueOrigin and @FireflyAerospace to @IntuitiveMachines and @VoyagerTech_, we're taking you behind the scenes to see the spacecraft that will …",
"display_uri": "https://scontent-sjc6-1.cdninstagram.com/v/t51.82787-15/764637906_18633750226049152_4753965783588088014_n.jpg",
"eligible_insights_entrypoints": "NONE",
"fbid": "18138644353587909",
"integrity_review_decision": "pending",
"original_lang_for_translations": "en",
"pk": "3956405067326902270",
"product_type": "clips",
"profile_grid_thumbnail_fitting_style": "UNSET",
"related_ads_pivots_media_info": "USER_NOT_IN_TEST_GROUP",
"strong_id__": "3956405067326902270_528817151",
"subtype_name_for_REST__": "XDTClipsMedia",
"video_dash_manifest": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd\" profiles=\"urn:mpeg:dash:profile:isoff-on-demand:2011\" minBufferTime=\"PT2S\" ty…",
"are_remixes_crosspostable": true
}
]
}
user fields:
| Field | Type | Example |
|---|---|---|
pk | string | "528817151" |
pk_id | string | "528817151" |
profile_grid_display_type | string | "default" |
strong_id__ | string | "528817151" |
id | string | "528817151" |
full_name | string | "NASA" |
is_active_on_text_post_app | boolean | true |
is_private | boolean | false |
is_verified | boolean | true |
profile_pic_id | string | "1735715738009579084_528817151" |
profile_pic_url | string | "https://scontent-sea5-1.cdninstagram.… |
username | string | "nasa" |
POST /api/v1/scrape/instagram/reels
A page of a profile’s reels, including the play counts the timeline omits.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
user_id | str | no | null | Numeric user id - the fastest form |
handle | str | no | null | Instagram handle; costs one extra resolve |
max_id | str | no | null | Cursor from the previous response |
trim | bool | no | False | Return a reduced post object |
curl -X POST https://app.sideshift.app/api/v1/scrape/instagram/reels \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"handle":"nasa"}'
Pages onResponse - themax_id. Passinguser_idinstead ofhandleis slightly faster.
data object:
| Key | Type | |
|---|---|---|
success | boolean | Always true on a 200. |
items | array of post | |
num_results | number | |
more_available | boolean | |
has_more | boolean | Whether another page exists. |
max_id | string | Pass back on the next call. |
user_id | string | Echo of what you queried. |
username | string or null |
{
"username": "nasa",
"max_id": "QVFDcTFpczlfVUNYTmpGdG9sZGh1elNjSHhDSlByRDR2VmFtOEMyaTAwVUxIVGJFUDZnS3RLSVNGMC02clNESXplZ1VqRU1WSmNyc0FiN0RsMjNBcnNjUg==",
"user_id": "528817151",
"has_more": true,
"more_available": true,
"num_results": 12,
"success": true,
"items": [
{
"code": "DbA3XXzxNSZ",
"id": "3945396772247229593_582986390",
"url": "https://www.instagram.com/reel/DbA3XXzxNSZ/",
"comment_count": 91,
"like_count": 8018,
"play_count": 1602207,
"taken_at": 1784548809,
"caption": {
"text": "What was once only visible from a distance, we could now reach out and grasp…\n\nThroughout history, humanity dreamed of Mars – but it was never within reach. That changed 50 years ago when NASA’s Viking 1 lander touched down safely and began transmitting the first images from t…",
"user": {
"full_name": "NASA Jet Propulsion Laboratory",
"id": "582986390",
"username": "nasajpl",
"fbid_v2": "17841400311709109",
"pk": "582986390",
"pk_id": "582986390",
"profile_pic_id": "3722424445144580782_582986390",
"profile_pic_url": "https://scontent-lga3-1.cdninstagram.com/v/t51.82787-19/548677981_18526892311010391_66718757115050670_n.jpg",
"strong_id__": "582986390",
"is_private": false,
"is_unpublished": false,
"is_verified": true
},
"content_type": "comment",
"media_id": "3945396772247229593",
"pk": "18092213663452637",
"status": "Active",
"strong_id__": "18092213663452637",
"user_id": "582986390",
"bit_flags": 0,
"created_at": 1784548808,
"created_at_utc": 1784548808,
"did_report_as_spam": false,
"is_covered": false,
"is_ranked_comment": false
},
"owner": {
"full_name": "NASA Jet Propulsion Laboratory",
"id": "582986390",
"username": "nasajpl",
"fbid_v2": "17841400311709109",
"pk": "582986390",
"pk_id": "582986390",
"profile_pic_id": "3722424445144580782_582986390",
"profile_pic_url": "https://scontent-lga3-1.cdninstagram.com/v/t51.82787-19/548677981_18526892311010391_66718757115050670_n.jpg",
"strong_id__": "582986390",
"account_type": 2,
"eligible_for_text_app_activation_badge": false,
"feed_post_reshare_disabled": false,
"has_anonymous_profile_picture": false,
"is_embeds_disabled": false
},
"user": {
"full_name": "NASA Jet Propulsion Laboratory",
"id": "582986390",
"username": "nasajpl",
"fbid_v2": "17841400311709109",
"pk": "582986390",
"pk_id": "582986390",
"profile_pic_id": "3722424445144580782_582986390",
"profile_pic_url": "https://scontent-lga3-1.cdninstagram.com/v/t51.82787-19/548677981_18526892311010391_66718757115050670_n.jpg",
"strong_id__": "582986390",
"account_type": 2,
"eligible_for_text_app_activation_badge": false,
"feed_post_reshare_disabled": false,
"has_anonymous_profile_picture": false,
"is_embeds_disabled": false
},
"caption_text": "What was once only visible from a distance, we could now reach out and grasp…\n\nThroughout history, humanity dreamed of Mars – but it was never within reach. That changed 50 years ago when NASA’s Viking 1 lander touched down safely and began transmitting the first images from t…",
"display_uri": "https://scontent-lga3-1.cdninstagram.com/v/t51.82787-15/751883538_18606205564010391_9198363747884884579_n.jpg",
"eligible_insights_entrypoints": "NONE",
"fbid": "18092212022452637",
"integrity_review_decision": "pending",
"original_lang_for_translations": "en",
"pk": "3945396772247229593",
"product_type": "clips",
"related_ads_pivots_media_info": "USER_NOT_IN_TEST_GROUP",
"strong_id__": "3945396772247229593_582986390",
"subtype_name_for_REST__": "XDTClipsMedia",
"video_dash_manifest": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd\" profiles=\"urn:mpeg:dash:profile:isoff-on-demand:2011\" minBufferTime=\"PT2S\" ty…",
"are_remixes_crosspostable": true,
"can_reply": false
}
]
}
POST /api/v1/scrape/instagram/post-details
One post or reel in full detail, as Instagram’s own post object.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
cache_max_age | str | no | null | Accepted and ignored - every response is a live read. |
url | str | yes | — | Instagram post or reel URL (or bare shortcode) |
curl -X POST https://app.sideshift.app/api/v1/scrape/instagram/post-details \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"url":"https://www.instagram.com/reel/Dbn-XJhk0_-/"}'
data object:
| Key | Type | |
|---|---|---|
success | boolean | Always true on a 200. |
data | object |
{
"success": true,
"data": {
"xdt_shortcode_media": {
"id": "3956405067326902270",
"shortcode": "Dbn-XJhk0_-",
"video_url": "https://scontent-hou1-1.cdninstagram.com/o1/v/t2/f2/m86/AQP0XWA-IZtYgM60sxQGnTcDFXB9Qr-EQhcVIY3ka_HcKhek4fKaQD2iWGdl7pTcpiDXif3z1Qlej6QLPtOZ2QpOcr5NNocP8vK3n3Y.mp4",
"video_play_count": 7474702,
"video_view_count": 1644924,
"owner": {
"full_name": "NASA",
"id": "528817151",
"username": "nasa",
"profile_pic_url": "https://scontent-hou1-1.cdninstagram.com/v/t51.2885-19/29090066_159271188110124_1152068159029641216_n.jpg",
"blocked_by_viewer": false,
"followed_by_viewer": false,
"has_blocked_viewer": false,
"is_embeds_disabled": false,
"is_private": false,
"is_unpublished": false,
"is_verified": true,
"pass_tiering_recommendation": true,
"requested_by_viewer": false,
"edge_followed_by": {
"count": 104259715
}
},
"__isXDTGraphMediaInterface": "XDTGraphVideo",
"__typename": "XDTGraphVideo",
"display_url": "https://scontent-hou1-1.cdninstagram.com/v/t51.82787-15/764637906_18633750226049152_4753965783588088014_n.jpg",
"media_preview": "ABgq5ynbTjNANOA7UAMxRU6wk+3+fSigBuwD7xx/n/P+FIXVemT7dvz/APrVEApHJOefp7c5pdq+p6e3X8+nvQBI9y54X5B7f1PX+ntRUbBR0JJ//X7+mP1ooAjooooAKKKKAP/Z",
"product_type": "clips",
"thumbnail_src": "https://scontent-hou1-1.cdninstagram.com/v/t51.82787-15/764637906_18633750226049152_4753965783588088014_n.jpg",
"can_see_insights_as_brand": false,
"caption_is_edited": false,
"commenting_disabled_for_viewer": false,
"comments_disabled": false,
"has_audio": true,
"has_ranked_comments": false,
"is_ad": false,
"is_affiliate": false,
"is_paid_partnership": false,
"is_published": true,
"is_video": true,
"like_and_view_counts_disabled": false
}
}
}
data fields:
| Field | Type | Example |
|---|---|---|
xdt_shortcode_media | object | nested: __typename, __isXDTGraphMediaInterface, id, shortcode |
Instagram · Transcript
POST /api/v1/scrape/instagram/transcript
Extract the spoken-audio transcript from one Instagram reel. This is a separate, slower request from post details; call it only when you need the spoken content.
This is a separate, slower lookup and costs one credit in addition to any
post-details request. Call it only when the spoken content is needed.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
url | str | yes | — | Instagram reel URL |
curl -X POST https://app.sideshift.app/api/v1/scrape/instagram/transcript \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"url":"https://www.instagram.com/reel/Da8CsGKK5T3/"}'
data object:
| Key | Type | |
|---|---|---|
success | boolean | Always true on a 200. |
transcripts | array | Transcript entries for the reel. |
{
"success": true,
"transcripts": [
{
"shortcode": "Da8CsGKK5T3",
"text": "You're a man who once said death smiles at us all. All a man can do is smile back."
}
]
}
Instagram · Comments
POST /api/v1/scrape/instagram/post-comments
Top-level comments on a post or reel.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
url | str | yes | — | Instagram post or reel URL |
cursor | str | no | null | Cursor from the previous response |
curl -X POST https://app.sideshift.app/api/v1/scrape/instagram/post-comments \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"url":"https://www.instagram.com/reel/Dbn-XJhk0_-/"}'
data object:
| Key | Type | |
|---|---|---|
success | boolean | Always true on a 200. |
comments | array of comment | |
cursor | string | Pass back on the next call. null once the list is exhausted. |
has_more | boolean | Whether another page exists. |
total_count | null |
{
"cursor": "{\"is_server_cursor_inverse\":true,\"server_cursor\":\"AQHSKfl2rrXTU1uvaGY1olO181hTs_r1Pp6g95sDR2IOTfp9cO1cHiTz0qzwFsL-Q9tzYpVfZOkc1JRoEkq-sj4Thw\"}",
"has_more": true,
"success": true,
"comments": [
{
"id": "18091185458434909",
"text": "This is great and all, but can we fix what we've done here first?",
"user": {
"id": "2321277255",
"username": "the.realignment.project.music",
"pk": "2321277255",
"profile_pic_url": "https://scontent-lga3-3.cdninstagram.com/v/t51.82787-19/610735101_18503924413077256_8547577684202957991_n.jpg",
"is_verified": false
},
"comment_like_count": 0,
"created_at": 1786217820,
"has_more_replies": false
}
],
"total_count": null
}
Instagram · Discovery
POST /api/v1/scrape/instagram/search
Ranked accounts, hashtags and suggested terms for a keyword.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
query | str | yes | — | Keyword, hashtag or account to search for |
curl -X POST https://app.sideshift.app/api/v1/scrape/instagram/search \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"query":"cars"}'
Instagram ranks results only for topics it curates; a topic it does not curate returns a clean 404.Response - the
data object:
| Key | Type | |
|---|---|---|
success | boolean | Always true on a 200. |
data | object |
{
"success": true,
"data": {
"query": "cars",
"users": [
{
"url": "https://www.instagram.com/desharpen/",
"username": "desharpen",
"pk": "17841459401872912",
"profile_pic_url": "https://scontent-atl3-3.cdninstagram.com/v/t51.82787-19/626667495_17977952783980063_4603710452593790065_n.jpg",
"is_verified": true
}
],
"hashtags": [
{
"url": "https://www.instagram.com/explore/tags/cars/",
"name": "cars",
"post_matches": 16
}
],
"keywords": [
"cars memes pixar",
"car bow ribbon",
"bugatti car photos"
],
"rank_token": null,
"places": []
}
}
data fields:
| Field | Type | Example |
|---|---|---|
query | string | "cars" |
users | array | array |
hashtags | array | array |
places | array | array |
keywords | array | array |
rank_token | null |
POST /api/v1/scrape/instagram/popular-search
Instagram’s curated topic page and its posts.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
query | str | yes | — | Topic to look up |
cursor | str | no | null | Opaque cursor from the previous response |
curl -X POST https://app.sideshift.app/api/v1/scrape/instagram/popular-search \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"query":"cars"}'
data object:
| Key | Type | |
|---|---|---|
success | boolean | Always true on a 200. |
query | string | Echo of what you queried. |
posts | array | |
cursor | string | Pass back on the next call. null once the list is exhausted. |
has_more | boolean | Whether another page exists. |
title | string | |
total_media_count | number | |
total_media_count_is_approximate | boolean | |
description | string | |
description_sources | array | |
suggested_terms | array |
{
"title": "Cars",
"cursor": "AQHSalwPujAUe4ikvXqVXpT7uyOab360cwTb8N86pAVWCyF0OPy8V_iCHQJMGjbLC1CC",
"description": "Pixar's 2006 animated film Cars remains a cultural touchstone, featuring rookie race car Lightning McQueen learning friendship over winning the Piston Cup ¹ ². The franchise has earned over $1.4 billion worldwide and $10 billion in merchandise since its debut ².\n\nFor 2026, bud…",
"query": "cars",
"has_more": true,
"success": true,
"total_media_count": 572000000,
"total_media_count_is_approximate": true,
"posts": [
{
"caption": "The most iconic BMW spec in the world ♦️\n.\n#ruby #diamond #luxury #cars #bmwrepost\n@bmwqatarofficial @bmwmiddleeast @bmw\nCrafted by Imed Benkolli founder of DeSharpen.",
"code": "DVCDl8qjcrj",
"id": "POLARIS_3837645634371701475",
"shortcode": "DVCDl8qjcrj",
"url": "https://www.instagram.com/reel/DVCDl8qjcrj/",
"video_url": "https://instagram.fosu2-1.fna.fbcdn.net/o1/v/t16/f2/m69/AQNgQLtffln_zgqNE38N0BbFMoDCK9uL8vgygVPda9zsIDts7gNQzEXQwuV_dVPgE7spHZNPkrn0SlBvV18jp0nl.mp4",
"play_count": 234385370,
"user": {
"id": "17841459401872912",
"username": "desharpen",
"profile_pic_url": "https://scontent.cdninstagram.com/v/t51.82787-19/626667495_17977952783980063_4603710452593790065_n.jpg",
"is_verified": true
},
"display_uri": "https://scontent.cdninstagram.com/v/t51.82787-15/640785301_17980172048980063_7284395060205295302_n.jpg",
"is_video": true,
"video_versions": [
{
"url": "https://instagram.fosu2-1.fna.fbcdn.net/o1/v/t16/f2/m69/AQNgQLtffln_zgqNE38N0BbFMoDCK9uL8vgygVPda9zsIDts7gNQzEXQwuV_dVPgE7spHZNPkrn0SlBvV18jp0nl.mp4"
}
]
}
],
"description_sources": [
"https://www.imdb.com/title/tt0317219",
"https://en.wikipedia.org/wiki/Cars_(franchise)",
"https://www.usatoday.com/story/cars/shopping/best/2026/04/12/best-new-cars-under-30k-in-2026/89557200007/"
],
"suggested_terms": [
"cars memes pixar",
"car bow ribbon",
"bugatti car photos"
]
}
POST /api/v1/scrape/instagram/hashtag-search
Public posts carrying an exact hashtag.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
hashtag | str | yes | — | Hashtag to search for, with or without the # |
date_posted | str | no | null | Restrict to a recency window: last-hour, last-day, last-week, last-month, last-year |
media_type | str | no | 'all' | ’all’ for posts and reels, or ‘reels’ |
cursor | str | no | null | Page number from the previous response (max 10, or max 40 with deep-page access) |
curl -X POST https://app.sideshift.app/api/v1/scrape/instagram/hashtag-search \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"hashtag":"sunset"}'
Paginates by cursor up to page 10; beyond that the request is rejected rather than silently clamped.
Deep pagination. Accounts with deep-page access can page to 40 instead of 10. Pages past 10 cost more than a standard call: pages 11-20 bill 2 credits and pages 21-40 bill 3 credits, against 1 credit for pages 1-10. Ask support to enable it.
Response - the data object:
| Key | Type | |
|---|---|---|
success | boolean | Always true on a 200. |
hashtag | string | |
media_type | string | |
posts | array | |
cursor | string | Pass back on the next call. null once the list is exhausted. |
has_more | boolean | Whether another page exists. |
{
"cursor": "2",
"hashtag": "sunset",
"media_type": "all",
"has_more": true,
"success": true,
"posts": [
{
"caption": "Admiring a beautiful sunset is what we all do right?\n.\n.\n.\n.\n.\n#reels #fyp #relatable #thenightwemet #sunset",
"id": "3951747646594785336",
"shortcode": "DbXbYwdRKA4",
"url": "https://www.instagram.com/reel/DbXbYwdRKA4/",
"video_url": "https://instagram.fmqy1-1.fna.fbcdn.net/o1/v/t16/f2/m84/AQM1vuQbgtzVV4O7DZWsc5ehg8qF9m_F0lZdD5WeY6Lw2xlB3uT91ZRx9nEERCnn4qA2Y3GXcD3mQ897jKeMhTKq0JDFFPcmsq7pgrA.mp4",
"comment_count": 1,
"like_count": 27,
"taken_at": 1785305105,
"video_play_count": 247,
"video_view_count": 68,
"owner": {
"full_name": "Varun📸",
"id": "19080253599",
"username": "throughvarun",
"profile_pic_url": "https://instagram.fmqy1-1.fna.fbcdn.net/v/t51.82787-19/731614958_18127475488637600_8255037588937436294_n.jpg",
"blocked_by_viewer": false,
"followed_by_viewer": false,
"has_blocked_viewer": false,
"is_embeds_disabled": false,
"is_private": false,
"is_unpublished": false,
"is_verified": false,
"pass_tiering_recommendation": true,
"requested_by_viewer": false,
"edge_followed_by": {
"count": 265
}
},
"__typename": "XDTGraphVideo",
"display_url": "https://instagram.fmqy1-1.fna.fbcdn.net/v/t15.5256-10/757128185_1800446577795580_8709505534581724995_n.jpg",
"product_type": "clips",
"thumbnail_src": "https://instagram.fmqy1-1.fna.fbcdn.net/v/t15.5256-10/757128185_1800446577795580_8709505534581724995_n.jpg",
"comments_disabled": false,
"has_audio": true,
"is_ad": false,
"is_affiliate": false,
"is_paid_partnership": false,
"is_video": true,
"like_and_view_counts_disabled": false,
"video_duration": 11.655,
"clips_music_attribution_info": {
"artist_name": "Lord Huron",
"audio_id": "495072987594427",
"song_name": "The Night We Met",
"should_mute_audio": false,
"uses_original_audio": false
}
}
]
}
POST /api/v1/scrape/instagram/profile-search
Creator discovery from bio and caption keywords.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
query | str | yes | — | Bio or caption keyword/phrase |
cursor | str | no | null | Page number from the previous response (max 10, or max 40 with deep-page access) |
curl -X POST https://app.sideshift.app/api/v1/scrape/instagram/profile-search \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"query":"travel blogger"}'
Paginates by cursor up to page 10; beyond that the request is rejected rather than silently clamped.
Deep pagination. Accounts with deep-page access can page to 40 instead of 10. Pages past 10 cost more than a standard call: pages 11-20 bill 2 credits and pages 21-40 bill 3 credits, against 1 credit for pages 1-10. Ask support to enable it.
Response - the data object:
| Key | Type | |
|---|---|---|
success | boolean | Always true on a 200. |
query | string | Echo of what you queried. |
profiles | array | |
cursor | string | Pass back on the next call. null once the list is exhausted. |
has_more | boolean | Whether another page exists. |
{
"cursor": "2",
"query": "travel blogger",
"has_more": true,
"success": true,
"profiles": [
{
"full_name": "Charu Goyal | Travel Blogger",
"id": "3037325678",
"url": "https://www.instagram.com/travelwithcg/",
"username": "travelwithcg",
"biography": "📍Luxury travel blogger & photographer\n🌍 Sharing beautiful places & hotels\n📸 Photoshoots in Jaipur @jaipurphototour\n📧 [email redacted]\n⤵️ Blog",
"category_name": "Blogger",
"external_url": "https://travelwithcg.com/instagram-links/",
"google_description": "43K Followers, 611 Following, 868 Posts - Charu Goyal | Travel Blogger (@travelwithcg) on Instagram: \"📍Luxury travel blogger & photographer 🌍 Sharing beautiful places & hotels 📸 Photoshoots in Jaipur @jaipurphototour 📧 [email redacted] ⤵️ Blog\"",
"google_title": "Charu Goyal | Travel Blogger (@travelwithcg) - Instagram",
"matched_from": "profile",
"profile_pic_url": "https://scontent-ord5-1.cdninstagram.com/v/t51.2885-19/455699681_498640002858990_5559399076549613325_n.jpg",
"enriched": true,
"follower_count": 43075,
"following_count": 605,
"is_business_account": false,
"is_private": false,
"is_professional_account": true,
"is_verified": true,
"media_count": 868,
"bio_links": [
{
"title": "Shop my outfits👗",
"url": "https://www.nykaafashion.com/nap/charu-goyal-fashion-store/c/70630",
"link_type": "external",
"lynx_url": "https://l.instagram.com/"
}
]
}
]
}
POST /api/v1/scrape/instagram/reels-search
Keyword reel search.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
query | str | yes | — | Keyword or phrase to search for |
date_posted | str | no | null | Restrict to a recency window: last-hour, last-day, last-week, last-month, last-year |
page | int | no | 1 | Result page, 1-10 |
curl -X POST https://app.sideshift.app/api/v1/scrape/instagram/reels-search \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"query":"coffee"}'
data object:
| Key | Type | |
|---|---|---|
success | boolean | Always true on a 200. |
query | string | Echo of what you queried. |
reels | array | |
page | number | |
has_more | boolean | Whether another page exists. |
{
"query": "coffee",
"has_more": true,
"page": 1,
"success": true,
"reels": [
{
"caption": "The world’s finest coffee meets the lightest protein… and together, they make one blockbuster drink.\nMeet the Iced Shaken Espresso with Vanilla Protein Foam. That’s 13g protein IN A COFFEE, now that’s super! Now available at a Starbucks near you!\n\n[Ranveer Singh, SuperYou Prot…",
"id": "3897406018524661659",
"shortcode": "DYWXh_foceb",
"url": "https://www.instagram.com/reel/DYWXh_foceb/",
"video_url": "https://scontent-lga3-3.cdninstagram.com/o1/v/t2/f2/m86/AQO5TqMqxO9oPnynpYQeXS8o5Sr8pgj7rHYO_0bQuv-TwbyBnJFFAgSPyleIpVB9uaw5CDTrYUTzmuVL34HPzkDZ7KipJWZUNLkrlaQ.mp4",
"comment_count": 292,
"like_count": 9867,
"taken_at": 1778827096,
"video_play_count": 1459171,
"video_view_count": 402602,
"owner": {
"full_name": "SUPERYOU",
"id": "69128132125",
"username": "be.superyou",
"profile_pic_url": "https://scontent-lga3-1.cdninstagram.com/v/t51.2885-19/467535544_2277303119293268_6869307482493627422_n.jpg",
"blocked_by_viewer": false,
"followed_by_viewer": false,
"has_blocked_viewer": false,
"is_embeds_disabled": false,
"is_private": false,
"is_unpublished": false,
"is_verified": true,
"pass_tiering_recommendation": true,
"requested_by_viewer": false,
"edge_followed_by": {
"count": 137942
}
},
"__typename": "XDTGraphVideo",
"display_url": "https://scontent-lga3-3.cdninstagram.com/v/t51.82787-15/693153847_17925919086308126_6097281148950865964_n.jpg",
"product_type": "clips",
"thumbnail_src": "https://scontent-lga3-3.cdninstagram.com/v/t51.82787-15/693153847_17925919086308126_6097281148950865964_n.jpg",
"comments_disabled": false,
"has_audio": false,
"is_ad": false,
"is_affiliate": false,
"is_paid_partnership": false,
"is_video": true,
"like_and_view_counts_disabled": false,
"video_duration": 55.6,
"tagged_users": [
{
"full_name": "Starbucks India",
"id": "4058091995",
"username": "starbucksindia",
"profile_pic_url": "https://scontent-lga3-1.cdninstagram.com/v/t51.2885-19/375575594_974672110257465_8651321511453332289_n.jpg",
"followed_by_viewer": false,
"is_verified": true
}
]
}
]
}
POST /api/v1/scrape/instagram/trending-reels
The reels Instagram is currently featuring.
Takes no parameters. Omit the request body or send an empty JSON object.
curl -X POST https://app.sideshift.app/api/v1/scrape/instagram/trending-reels \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY'
data object:
| Key | Type | |
|---|---|---|
success | boolean | Always true on a 200. |
data | object |
{
"success": true,
"data": {
"available_in_batch": 72,
"returned": 12,
"reels": [
{
"caption": "🟢 AURA. 🟢\n@adidasfootball | @adidas_es",
"id": "3947638930116993179",
"shortcode": "DbI1LEDIGCb",
"url": "https://www.instagram.com/reel/DbI1LEDIGCb/",
"video_url": "https://scontent-ord5-1.cdninstagram.com/o1/v/t2/f2/m86/AQNi76IqdstBvTRq-Uhyj3-dj3u6PdtHTqchCeDJCc_672wnU9sxi-6H_pYhgTtcqbOPNTjuHDJG-2wSJENO-pR_V-aefgDGyzjoHSM.mp4",
"comment_count": 5251,
"like_count": 1049051,
"taken_at": 1784815212,
"video_play_count": 17713442,
"video_view_count": 247790,
"owner": {
"full_name": "Real Madrid C.F.",
"id": "290023231",
"username": "realmadrid",
"profile_pic_url": "https://scontent-ord5-1.cdninstagram.com/v/t51.82787-19/624543809_18587402656039232_6579771930342049778_n.jpg",
"blocked_by_viewer": false,
"followed_by_viewer": false,
"has_blocked_viewer": false,
"is_embeds_disabled": false,
"is_private": false,
"is_unpublished": false,
"is_verified": true,
"pass_tiering_recommendation": true,
"requested_by_viewer": false,
"edge_followed_by": {
"count": 180306080
}
},
"__typename": "XDTGraphVideo",
"display_url": "https://scontent-ord5-1.cdninstagram.com/v/t51.82787-15/754015408_18644903875039232_1945606948177491465_n.jpg",
"product_type": "clips"
}
]
}
}
data fields:
| Field | Type | Example |
|---|---|---|
reels | array | array |
returned | number | 12 |
available_in_batch | number | 72 |
Instagram · Audio
POST /api/v1/scrape/instagram/audio-reels
The reels using one audio track.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
audio_id | str | yes | — | Audio id, or an instagram.com/reels/audio// URL |
cursor | str | no | null | Cursor from the previous response |
curl -X POST https://app.sideshift.app/api/v1/scrape/instagram/audio-reels \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"audio_id":"2237221136433210"}'
data object:
| Key | Type | |
|---|---|---|
success | boolean | Always true on a 200. |
reels | array | |
cursor | string | Pass back on the next call. null once the list is exhausted. |
has_more | boolean | Whether another page exists. |
audio_id | string | |
audio | object |
{
"audio_id": "2237221136433210",
"cursor": "Gsbm5PnA4o7Tmmu-8KO5nNzRmmvosOWI1YL052qelsbI04uczWmyuOSAvtS6_Wii4M2wvfKK12e6mJzi1ffc92XQ7baj_IDUmWWmtNr7t46UrWS4gp7L2dbBwmLEpriDsqm2vGK-wcG7ieW88GEmur-_sPxnFBg0AikIGAAaCDoGGQwA",
"has_more": true,
"success": true,
"reels": [
{
"code": "DKZqAPiNtto",
"id": "3646130107966741352_73305128799",
"url": "https://www.instagram.com/reel/DKZqAPiNtto/",
"comment_count": 3,
"like_count": 2994,
"play_count": 51181,
"taken_at": 1748872801,
"caption": {
"text": "You can’t watch your child every minute.\nBut you can teach them to trust who they are.\n\nThe internet will tell them how to look, how to feel, who to be.\nBut confidence? Confidence quiets all that noise.\n\nThe real shield isn’t a screen lock...\nit’s self-esteem.\n\nRaise a child w…",
"user": {
"full_name": "Luís Bevictori",
"id": "73305128799",
"username": "fatherlymind",
"pk_id": "73305128799",
"profile_pic_id": "3677405363100541878_73305128799",
"profile_pic_url": "https://scontent-dfw5-2.cdninstagram.com/v/t51.82787-19/521189209_17861855391440800_7865596411657841771_n.jpg",
"strong_id__": "73305128799",
"fbid_v2": 17841473223983140,
"is_private": false,
"is_unpublished": false,
"is_verified": true,
"pk": 73305128799
},
"content_type": "comment",
"pk": "17967279293763353",
"status": "Active",
"strong_id__": "17967279293763353",
"bit_flags": 0,
"created_at": 1748872802,
"created_at_utc": 1748872802,
"did_report_as_spam": false,
"is_covered": false,
"is_ranked_comment": false,
"media_id": 3646130107966741500,
"private_reply_status": 0
},
"user": {
"full_name": "Luís Bevictori",
"id": "73305128799",
"username": "fatherlymind",
"pk_id": "73305128799",
"profile_pic_id": "3677405363100541878_73305128799",
"profile_pic_url": "https://scontent-dfw5-2.cdninstagram.com/v/t51.82787-19/521189209_17861855391440800_7865596411657841771_n.jpg",
"strong_id__": "73305128799",
"account_type": 3,
"eligible_for_text_app_activation_badge": false,
"fbid_v2": 17841473223983140,
"feed_post_reshare_disabled": false,
"has_anonymous_profile_picture": false,
"interop_messaging_user_fbid": 17844543438440800,
"is_embeds_disabled": false
},
"caption_text": "You can’t watch your child every minute.\nBut you can teach them to trust who they are.\n\nThe internet will tell them how to look, how to feel, who to be.\nBut confidence? Confidence quiets all that noise.\n\nThe real shield isn’t a screen lock...\nit’s self-esteem.\n\nRaise a child w…",
"eligible_insights_entrypoints": "NONE",
"integrity_review_decision": "pending",
"inventory_source": "recommended_clips_chaining_model",
"original_lang_for_translations": "en",
"product_type": "clips",
"related_ads_pivots_media_info": "USER_NOT_IN_TEST_GROUP",
"strong_id__": "3646130107966741352_73305128799",
"subtype_name_for_REST__": "XDTClipsMedia",
"video_dash_manifest": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd\" profiles=\"urn:mpeg:dash:profile:isoff-on-demand:2011\" minBufferTime=\"PT2S\" ty…",
"are_remixes_crosspostable": true,
"can_reply": false,
"can_see_insights_as_brand": false,
"can_view_more_preview_comments": false,
"can_viewer_reshare": true
}
],
"audio": {
"music_canonical_id": "18302835427054839",
"formatted_media_count": null,
"music_info": null,
"original_sound_info": null
}
}
audio fields:
| Field | Type | Example |
|---|---|---|
music_info | null | |
original_sound_info | null | |
formatted_media_count | null | |
music_canonical_id | string | "18302835427054839" |
Instagram · Stories
POST /api/v1/scrape/instagram/highlight
Every story inside one highlight album.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | str | yes | — | Highlight album id (numeric, or ‘highlight:’) |
curl -X POST https://app.sideshift.app/api/v1/scrape/instagram/highlight \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"id":"18067016518767507"}'
The album id is the last path segment of a highlight’s public URL - instagram.com/stories/highlights/{id}/.
Response - the data object:
| Key | Type | |
|---|---|---|
success | boolean | Always true on a 200. |
id | string | |
strong_id__ | string | |
latest_reel_media | number | |
seen | null | |
can_reply | boolean | |
can_gif_quick_reply | boolean | |
can_reshare | boolean | |
reel_type | string | |
ad_expiry_timestamp_in_millis | null | |
is_cta_sticker_available | null | |
should_treat_link_sticker_as_cta | null | |
pool_refresh_ttl_in_sec | null | |
can_react_with_avatar | boolean | |
prefetch_count | number | |
cover_media | object | |
user | object | |
items | array of post | |
is_nux | boolean | |
title | string | |
created_at | number | |
is_pinned_highlight | boolean | |
media_count | number | |
media_ids | array | |
is_cacheable | boolean | |
is_converted_to_clips | boolean | |
disabled_reply_types | array | |
highlight_reel_type | string | |
is_added_to_main_grid | boolean | |
is_archived | boolean | |
show_expiration_tray_signal | boolean | |
is_fit_green | boolean |
{
"id": "highlight:18067016518767507",
"title": "GRWM chats",
"user": {
"full_name": "Jane Williamson",
"id": "21393171",
"username": "jane",
"fifa_country_code": "US",
"pk": "21393171",
"pk_id": "21393171",
"profile_pic_id": "3828172883697465264_21393171",
"profile_pic_url": "https://instagram.fhnl3-1.fna.fbcdn.net/v/t51.82787-19/629783272_18551475079017172_5737125966880342474_n.jpg",
"strong_id__": "21393171",
"interop_messaging_user_fbid": 119713162748634,
"is_private": false,
"is_screenshot_blocking_enabled": false,
"is_verified": true,
"transparency_product_enabled": false,
"account_badges": []
},
"highlight_reel_type": "DEFAULT",
"reel_type": "highlight_reel",
"strong_id__": "highlight:18067016518767507",
"can_gif_quick_reply": true,
"can_react_with_avatar": false,
"can_reply": false,
"can_reshare": true,
"created_at": 1743889595,
"is_added_to_main_grid": false,
"is_archived": false,
"is_cacheable": true,
"is_converted_to_clips": false,
"is_fit_green": true,
"is_nux": false,
"is_pinned_highlight": false,
"latest_reel_media": 1752681624,
"media_count": 31,
"prefetch_count": 0,
"show_expiration_tray_signal": false,
"success": true,
"items": [
{
"code": "DIehu_tTtnz",
"id": "3611472316234390003_21393171",
"url": "https://www.instagram.com/p/DIehu_tTtnz/",
"taken_at": 1744741057,
"owner": {
"full_name": "Jane Williamson",
"id": "21393171",
"username": "jane",
"fbid_v2": "17841400515130334",
"pk": "21393171",
"pk_id": "21393171",
"profile_pic_id": "3828172883697465264_21393171",
"profile_pic_url": "https://instagram.fhnl3-1.fna.fbcdn.net/v/t51.82787-19/629783272_18551475079017172_5737125966880342474_n.jpg",
"strong_id__": "21393171",
"account_type": 3,
"eligible_for_text_app_activation_badge": false,
"is_private": false,
"is_verified": true,
"hd_profile_pic_versions": [
{
"url": "https://instagram.fhnl3-1.fna.fbcdn.net/v/t51.82787-19/629783272_18551475079017172_5737125966880342474_n.jpg",
"height": 320,
"width": 320
}
]
},
"user": {
"full_name": "Jane Williamson",
"id": "21393171",
"username": "jane",
"fbid_v2": "17841400515130334",
"pk": "21393171",
"pk_id": "21393171",
"profile_pic_id": "3828172883697465264_21393171",
"profile_pic_url": "https://instagram.fhnl3-1.fna.fbcdn.net/v/t51.82787-19/629783272_18551475079017172_5737125966880342474_n.jpg",
"strong_id__": "21393171",
"account_type": 3,
"eligible_for_text_app_activation_badge": false,
"is_private": false,
"is_verified": true,
"hd_profile_pic_versions": [
{
"url": "https://instagram.fhnl3-1.fna.fbcdn.net/v/t51.82787-19/629783272_18551475079017172_5737125966880342474_n.jpg",
"height": 320,
"width": 320
}
]
},
"fbid": "18030827891353619",
"integrity_review_decision": "pending",
"pk": "3611472316234390003",
"product_type": "story",
"strong_id__": "3611472316234390003_21393171",
"video_dash_manifest": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<MPD xmlns=\"urn:mpeg:dash:schema:mpd:2011\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd\" profiles=\"urn:mpeg:dash:profile:isoff-on-demand:2011\" minBufferTime=\"PT2S\" ty…",
"archive_story_deletion_ts": 0,
"can_mention_back": false,
"can_play_spotify_audio": false,
"can_reply": false,
"can_reshare": true,
"can_see_insights_as_brand": false,
"can_send_prompt": false,
"can_viewer_save": false,
"caption_is_edited": false,
"deleted_reason": 0,
"device_timestamp": 1744741057177733,
"filter_type": 0
}
],
"cover_media": {
"media_id": "3574665805209826888_21393171",
"cropped_image_version": {
"url": "https://instagram.fhnl3-2.fna.fbcdn.net/v/t51.71878-15/479737232_1405856350793820_7928432152706230890_n.jpg",
"height": 150,
"width": 150
},
"crop_rect": [
0,
0.17864984273910522,
1
],
"full_image_version": null,
"upload_id": null
},
"disabled_reply_types": [
"story_remix_reply",
"story_selfie_reply",
"story_voice_reply"
],
"media_ids": [
"3573813516152622297",
"3574665805209826888",
"3575425853896904238"
],
"ad_expiry_timestamp_in_millis": null,
"is_cta_sticker_available": null,
"pool_refresh_ttl_in_sec": null,
"seen": null,
"should_treat_link_sticker_as_cta": null
}
cover_media fields:
| Field | Type | Example |
|---|---|---|
cropped_image_version | object | nested: width, height, url, scans_profile |
crop_rect | array | array |
media_id | string | "3574665805209826888_21393171" |
full_image_version | null | |
upload_id | null |
user fields:
| Field | Type | Example |
|---|---|---|
fifa_country_code | string | "US" |
pk | string | "21393171" |
pk_id | string | "21393171" |
strong_id__ | string | "21393171" |
id | string | "21393171" |
account_badges | array | array |
full_name | string | "Jane Williamson" |
interop_messaging_user_fbid | number | 119713162748634 |
is_private | boolean | false |
is_screenshot_blocking_enabled | boolean | false |
is_verified | boolean | true |
profile_pic_id | string | "3828172883697465264_21393171" |
profile_pic_url | string | "https://scontent-lax3-1.cdninstagram.… |
transparency_product_enabled | boolean | false |
username | string | "jane" |
Instagram · Trial reels
POST /api/v1/scrape/instagram/trial-reels
Scan for trial reels with detection signals and coverage. This is an estimate from public signals. Check each item’s trial_signals.confidence and the scan’s coverage before drawing conclusions. A partial scan or an empty page does not prove that an account has no trial reels. Continue with cursor while has_more is true.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
username | str | yes | — | Instagram username |
cursor | str | no | — | Opaque continuation token from the previous response; pass it unchanged |
curl -X POST https://app.sideshift.app/api/v1/scrape/instagram/trial-reels \
-H 'x-api-key: $SIDESHIFT_SCRAPER_KEY' -H 'Content-Type: application/json' \
-d '{"username":"jakecohen"}'
full_name and is_private can be null on continuation pages.
Response - the data object:
| Key | Type | |
|---|---|---|
success | boolean | Whether the scan succeeded. |
mode | string | The scan mode returned by the data source. |
user | object | Account identity. |
items | array | Reels, metrics, trial flags, reasons, and confidence signals. |
num_results | int | Number of results in this page. |
trial_reel_count | int | Trial reels found in this scan. |
reels_examined | int | Reels checked in this scan. |
coverage | object | Scan completeness and grid comparison evidence. |
has_more | boolean | Whether more pages can be requested. |
cursor | string | Opaque continuation token. |
reels_tab_exhausted | boolean | Whether the reels tab was exhausted. |
{
"success": true,
"mode": "only",
"user": {
"pk": "35005786",
"username": "jakecohen",
"full_name": "Jake Cohen",
"is_private": false
},
"items": [
{
"id": "3986802981985706920_35005786",
"pk": 3986802981985707000,
"code": "DdT-DBqueOo",
"url": "https://www.instagram.com/reel/DdT-DBqueOo/",
"taken_at": 1789484190,
"media_type": 2,
"product_type": "clips",
"like_count": 541,
"comment_count": 14,
"play_count": 30096,
"ig_play_count": 30096,
"view_count": null,
"like_and_view_counts_disabled": false,
"caption": "BLACK AND WHITES WAITING FOR THEIR SPRINKLES!!! Something sweet to break the fast, shipping nationwide on @goldbelly!!! Makes a greatttttt host gift!",
"hashtags": [],
"mentions": [
"goldbelly"
],
"tagged_users": [
"goldbelly"
],
"coauthors": [],
"video_url": "https://scontent-phl2-1.cdninstagram.com/o1/v/t16/f2/m84/AQMXBONawUJpCySBO-WqDMK5UMJCisUDwkLYXAb3p8w8sFBpob2gZG-m7gISB7j9cG4-PU2kT-yC6y6RCccZM4cSV8MlCwJcerjsbwA.mp4",
"video_duration": 12.071999549865723,
"display_url": "https://scontent-phl2-1.cdninstagram.com/v/t51.82787-15/811616505_18630929578061787_2137977985873584899_n.jpg",
"width": 1080,
"height": 1920,
"has_audio": true,
"music": {
"title": "bubble fountain",
"artist": "frutiger pm",
"audio_cluster_id": "816677584255468",
"audio_url": "https://scontent-phl2-1.cdninstagram.com/o1/v/t2/f2/m69/AQOHMrravWfUYYiHB4gmB9gbvfDwvNoAHamQcJSuDMf1FhM_LvXsgQw-sz3LCGQQreZrWi53RhUcHdZmFavAn8oh.mp4"
},
"original_audio_title": null,
"location_name": null,
"location_id": null,
"is_paid_partnership": false,
"sponsor_usernames": [],
"comments_disabled": null,
"is_pinned": false,
"owner": {
"pk": 35005786,
"username": "jakecohen",
"full_name": "Jake Cohen",
"is_verified": true,
"is_private": false,
"profile_pic_url": "https://scontent-phl2-1.cdninstagram.com/v/t51.82787-19/532388261_18524592955061787_5989065863176088367_n.jpg"
},
"is_trial_reel": true,
"trial_reel_reason": "absent_from_profile_grid",
"trial_signals": {
"absent_from_profile_grid": true,
"instagram_awaiting_distribution": true,
"confidence": "high",
"grid_insertion_drift": null,
"added_to_grid_late": null
}
}
],
"num_results": 6,
"trial_reel_count": 6,
"reels_examined": 36,
"coverage": {
"status": "complete",
"reason": null,
"reels_examined": 36,
"reels_unverified": 0,
"reels_indeterminate": 0,
"graduated_from_trial_candidates": 0,
"reels_tab_pages": 3,
"profile_grid_pages": 5,
"profile_grid_exhausted": false,
"profile_grid_verified_through": 1779632703,
"oldest_reel_in_window": 1781629183,
"profile_grid_usage": {
"reels_on_grid": 20,
"reels_off_grid": 6,
"cross_post_rate": 0.769,
"grid_is_informative": true
}
},
"has_more": true,
"cursor": "eJxdkltvGkEMhf9KtM998G3GdqW8UEElJJByYaGtIkSBJqTctASSUPW_x9DdNurbzDfW8fEZ_yoOxccL-nBR7HfzaryYxa3gBJDUchF4ulxsd-PpvtptqtPbVdn5dAsPm367J1_AXwfr_uHrqtOdlMvR7ai7_f7zqRyRHXtlv9NbT6l37OyvHsvR9WNrP-Du8Wr18DJfth5v2vfHYbuby_bD6Gb4shqsnmk26pY97LZuhtun4ect9277_RLs9fr58vLk5b5azN5ZYXNKRJyVkydCBhy_t34un23W8yj-MVnu5n8lNod5NZ-N9-unxTIeUdUzkwKfBp5U1WvAbwU7ekJIRk7KOaP6STaw5ZwpiauSuGiqsTBldM85xcGlwZgVScVZSJI5NziFroHl6A1mTTWoxNUhoYgo0x8MaupEKNGBYkRuMLhGKYcbZmescWbJEYNJds4EVuOUwdkwaULT6FVjwSysWRVd3KDBfI4SxSiSBmpESFGTMWM4kYSNQYwxTDSCIiJhbzCDkkW0lCLAJGds7pbCCAgxEoHmGmvkypGcR9MIQBsclYhwDp6lNmgef4CZmUOZ8V91SmFDGAUVslujLRDtjNTCdAKCGv-_QsVd8O1ivat3wBjjO6NpbIOGRC7ufr8BF1HAew==",
"reels_tab_exhausted": false
}
Response objects
These shapes repeat across many endpoints. Each endpoint’s Response table names which one its items use.post
The video or photo object, used wherever a list of posts is returned (aweme_list, search_item_list, items).
| Field | Type | |
|---|---|---|
aweme_id | string | |
desc | string | |
desc_language | null | |
region | string | |
create_time | number | |
create_time_utc | string | |
is_ad | boolean | |
is_top | number | |
is_eligible_for_commission | null | |
is_paid_partnership | null | |
aweme_type | number | |
statistics | object | Nested - aweme_id, play_count, digg_count, comment_count, share_count, download_count, … |
video | object | Nested - play_addr, download_addr, cover, origin_cover, dynamic_cover, duration, … |
image_post_info | object or null | |
author | object | Nested - uid, short_id, unique_id, nickname, signature, avatar_thumb, … |
author_user_id | string | |
music | object | Nested - id, id_str, mid, title, author, owner_nickname, … |
item_comment_settings | number | |
is_nff_or_nr | boolean | |
commerce_info | object | Nested - adv_promotable, auction_ad_invited, branded_content_type, is_diversion_ad, with_comment_filter_words |
anchors | array or null | |
url | string | |
shop_product_url | null | |
media_id | string |
{
"aweme_id": "7309503813562453280",
"desc": "#fyp #foryou #fypシ #viral #foryoupage 😂😂😂😂",
"desc_language": null,
"region": "GB",
"create_time": 1701876482,
"create_time_utc": "2023-12-06T15:28:02.000Z",
"is_ad": false,
"is_top": 0,
"is_eligible_for_commission": null,
"is_paid_partnership": null,
"aweme_type": 0,
"statistics": {
"aweme_id": "7309503813562453280",
"play_count": 89580,
"digg_count": 1293,
"comment_count": 25,
"share_count": 71,
"download_count": 5,
"collect_count": 261,
"forward_count": null,
"lose_count": null,
"lose_comment_count": null,
"whatsapp_share_count": null,
"repost_count": null
},
"video": {
"play_addr": {
"uri": "https://v45.tiktokcdn-us.com/f299baa76de2dcfd24bb0b0543f0440d/6a767a…",
"url_list": [
"https://v45.tiktokcdn-us.com/f299baa76de2dcfd24bb0b0543f0440d/6a767a…"
],
"width": null,
"height": null,
"url_prefix": null
},
"download_addr": {
"uri": "https://v45.tiktokcdn-us.com/c23ca1667bbb82da546274965fc00c41/6a767a…",
"url_list": [
"https://v45.tiktokcdn-us.com/c23ca1667bbb82da546274965fc00c41/6a767a…"
],
"width": null,
"height": null,
"url_prefix": null
},
"cover": {
"uri": "https://p19-common-sign.tiktokcdn-us.com/tos-useast2a-p-0037-euttp/o…",
"url_list": [
"https://p19-common-sign.tiktokcdn-us.com/tos-useast2a-p-0037-euttp/o…"
],
"width": null,
"height": null,
"url_prefix": null
},
"origin_cover": {
"uri": "https://p16-common-sign.tiktokcdn-us.com/tos-useast2a-p-0037-euttp/0…",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-useast2a-p-0037-euttp/0…"
],
"width": null,
"height": null,
"url_prefix": null
},
"dynamic_cover": {
"uri": "https://p16-common-sign.tiktokcdn-us.com/tos-useast2a-p-0037-euttp/3…",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-useast2a-p-0037-euttp/3…"
],
"width": null,
"height": null,
"url_prefix": null
},
"duration": 93,
"width": null,
"height": null,
"data_size": 11856870,
"watermark_data_size": 12000119
},
"image_post_info": null,
"author": {
"uid": "7164667182319076358",
"short_id": null,
"unique_id": "vkvsrvq",
"nickname": "user63284236732678",
"signature": null,
"avatar_thumb": {
"uri": "https://p16-common-sign.tiktokcdn-us.com/tos-maliva-avt-0068/ffe55ee…",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-maliva-avt-0068/ffe55ee…"
],
"width": null,
"height": null,
"url_prefix": null
},
"avatar_medium": {
"uri": "https://p16-common-sign.tiktokcdn-us.com/tos-maliva-avt-0068/ffe55ee…",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-maliva-avt-0068/ffe55ee…"
],
"width": null,
"height": null,
"url_prefix": null
},
"avatar_larger": {
"uri": "https://p16-common-sign.tiktokcdn-us.com/tos-maliva-avt-0068/ffe55ee…",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-maliva-avt-0068/ffe55ee…"
],
"width": null,
"height": null,
"url_prefix": null
},
"region": "GB",
"language": null,
"sec_uid": null,
"social_info": null,
"events": null
},
"author_user_id": "7164667182319076358",
"music": {
"id": "7043672073613936641",
"id_str": "7043672073613936641",
"mid": "7043672073613936641",
"title": "snowfall",
"author": "Øneheart & reidenshi",
"owner_nickname": "Øneheart & reidenshi",
"album": "snowfall",
"duration": 60,
"is_original": false,
"is_original_sound": false,
"play_url": {
"uri": "https://sf19.tiktokcdn-us.com/obj/tos-alisg-ve-2774/osIlcoxtOBD1ZgZb…",
"url_list": [
"https://sf19.tiktokcdn-us.com/obj/tos-alisg-ve-2774/osIlcoxtOBD1ZgZb…"
],
"width": null,
"height": null,
"url_prefix": null
},
"cover_thumb": {
"uri": "https://p16-common.tiktokcdn-us.com/tos-alisg-v-2774/owIAoUbakCMAeAz…",
"url_list": [
"https://p16-common.tiktokcdn-us.com/tos-alisg-v-2774/owIAoUbakCMAeAz…"
],
"width": null,
"height": null,
"url_prefix": null
},
"cover_medium": {
"uri": "https://p16-common.tiktokcdn-us.com/tos-alisg-v-2774/owIAoUbakCMAeAz…",
"url_list": [
"https://p16-common.tiktokcdn-us.com/tos-alisg-v-2774/owIAoUbakCMAeAz…"
],
"width": null,
"height": null,
"url_prefix": null
},
"cover_large": {
"uri": "https://p16-common.tiktokcdn-us.com/tos-alisg-v-2774/owIAoUbakCMAeAz…",
"url_list": [
"https://p16-common.tiktokcdn-us.com/tos-alisg-v-2774/owIAoUbakCMAeAz…"
],
"width": null,
"height": null,
"url_prefix": null
},
"user_count": null
},
"item_comment_settings": 0,
"is_nff_or_nr": false,
"commerce_info": {
"adv_promotable": false,
"auction_ad_invited": false,
"branded_content_type": 0,
"is_diversion_ad": 0,
"with_comment_filter_words": false
},
"anchors": null,
"url": "https://www.tiktok.com/@vkvsrvq/video/7309503813562453280",
"shop_product_url": null,
"media_id": "v0f044gc0000clo94i7og65le2e6jgmg"
}
creator
The account object, used by the follower, following and creator-search lists.
| Field | Type | |
|---|---|---|
uid | string | |
unique_id | string | |
nickname | string | |
signature | string or null | |
sec_uid | string | |
avatar_thumb | object | Nested - uri, url_list, width, height, url_prefix |
avatar_medium | object | Nested - uri, url_list, width, height, url_prefix |
avatar_larger | object | Nested - uri, url_list, width, height, url_prefix |
region | string | |
language | null | |
create_time | null | |
follower_count | number | |
following_count | number | |
aweme_count | number | |
favoriting_count | number | |
total_favorited | number | |
verified | boolean | |
secret | boolean |
{
"uid": "7434173029016077328",
"unique_id": "la.lalalalisa_6",
"nickname": "Медина",
"signature": null,
"sec_uid": "MS4wLjABAAAA4FFw3fafPXKtTTNwUBx7VhEKkaTUunfPjGfNpHhUX1kRt0oWY94pjLqe…",
"avatar_thumb": {
"uri": "https://p16-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/b745257b…",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/b745257b…"
],
"width": null,
"height": null,
"url_prefix": null
},
"avatar_medium": {
"uri": "https://p16-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/b745257b…",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/b745257b…"
],
"width": null,
"height": null,
"url_prefix": null
},
"avatar_larger": {
"uri": "https://p16-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/b745257b…",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/b745257b…"
],
"width": null,
"height": null,
"url_prefix": null
},
"region": "TR",
"language": null,
"create_time": null,
"follower_count": 10379,
"following_count": 877,
"aweme_count": 0,
"favoriting_count": 6889,
"total_favorited": 3433,
"verified": false,
"secret": false
}
comment
One comment or reply.
| Field | Type | |
|---|---|---|
cid | string | |
aweme_id | string | |
text | string | |
create_time | number | |
digg_count | number | |
reply_id | null | |
reply_to_reply_id | null | |
status | number | |
image_list | null | |
user | object | Nested - uid, unique_id, nickname, signature, sec_uid, avatar_thumb, … |
comment_language | null | |
text_extra | null | |
user_digged | null | |
is_author_digged | null | |
reply_comment | null | |
reply_comment_total | null |
{
"cid": "7612967610280805138",
"aweme_id": "7612965843596479751",
"text": "Thx𓀠𓀠",
"create_time": 1772532161,
"digg_count": 38,
"reply_id": null,
"reply_to_reply_id": null,
"status": 1,
"image_list": null,
"user": {
"uid": "7093407411964986370",
"unique_id": "artchiist",
"nickname": "ちい/Chii",
"signature": "⸝⋆꙳⟡.· ⋆ 𖦹ܾ 𖥧🪵🌿 \n \n🗺ɪɴꜱᴛᴀɢʀᴀᴍ : @ artchiist\n \nꜱᴜʙ:@たいやきくん(ちい) 🚹: …",
"sec_uid": "MS4wLjABAAAANiBD2T6ao7u2cE5Xj1zRRiVjShx-oKRUIDUFgHqmbyUkUOH-bk4iehKJ…",
"avatar_thumb": {
"uri": "https://p19-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/05fb1570…",
"url_list": [
"https://p19-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/05fb1570…"
],
"width": null,
"height": null,
"url_prefix": null
},
"avatar_medium": {
"uri": "https://p19-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/05fb1570…",
"url_list": [
"https://p19-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/05fb1570…"
],
"width": null,
"height": null,
"url_prefix": null
},
"avatar_larger": {
"uri": "https://p19-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/05fb1570…",
"url_list": [
"https://p19-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/05fb1570…"
],
"width": null,
"height": null,
"url_prefix": null
},
"region": "JP",
"language": null,
"create_time": null,
"follower_count": 0,
"following_count": 0,
"aweme_count": 0,
"favoriting_count": 0,
"total_favorited": 0,
"verified": false,
"secret": false
},
"comment_language": null,
"text_extra": null,
"user_digged": null,
"is_author_digged": null,
"reply_comment": null,
"reply_comment_total": null
}
collection post
TikTok answers its collection surface in a different, web-style shape - this is the only place it appears.
| Field | Type | |
|---|---|---|
id | string | |
desc | null | |
createTime | number | |
AIGCDescription | null | |
CategoryType | null | |
IsHDBitrate | null | |
ShowAIGC | null | |
anchors | null | |
author | object | Nested - id, uniqueId, nickname |
stats | object | Nested - collectCount, commentCount, diggCount, playCount, shareCount |
video | object | Nested - duration, height, width, cover |
{
"id": "7399631056783035690",
"desc": null,
"createTime": 1722860874,
"AIGCDescription": null,
"CategoryType": null,
"IsHDBitrate": null,
"ShowAIGC": null,
"anchors": null,
"author": {
"id": "6791598551904076805",
"uniqueId": "nojo18",
"nickname": "Noah Lyles"
},
"stats": {
"collectCount": 38999,
"commentCount": 3102,
"diggCount": 500605,
"playCount": 3341424,
"shareCount": 22575
},
"video": {
"duration": 48,
"height": null,
"width": null,
"cover": "https://p16-common-sign.tiktokcdn.com/tos-useast5-p-0068-tx/oYQIDWNu…"
}
}