Source Data
In this section a collection of all the API calls the Tiktok Web App makes will be listed. This is the raw data from the Tiktok backend, not from the scraper itself.
- GET /
Query Parameters necessary for all types of request
- Query Parameters:
string – WebIdLastTime (required) –
string – aid (required) –
string – app_lanugage (required) –
string – app_name (required) –
string – aweme_id (required) –
string – browser_language (required) –
string – browser_name (required) –
string – browser_platform (required) –
string – browser_version (required) –
string – channel (required) –
string – cookie_enabled (required) –
string – count (required) –
string – current_region (required) –
string – cursor (required) –
string – device_id (required) –
string – device_platform (required) –
string – enter_from (required) –
string – focus_state (required) –
string – fromWeb (required) –
string – from_page (required) –
string – history_len (required) –
string – is_fullscreen (required) –
string – is_non_personalized (required) –
string – is_page_visible (required) –
string – os (required) –
string – priority_region (required) –
string – referer (required) –
string – region (required) –
string – screen_height (required) –
string – screen_width (required) –
string – tz_name (required) –
string – webcast_language (required) –
string – msToken (required) –
string – _signature (required) –
- Request Headers:
Authorization – msToken
Cookie – token from response of last request X-Ms-Token
Important
It seems like all (or at least most) of the query parameters are necessary
- GET /api/user/detail/
Get details of user
- Response JSON Object:
userInfo (json) – userInfo
Example response:
HTTP/1.1 200 OK Vary: Accept Content-Type: text/javascript { "userInfo": { "stats": { "diggCount": 0, "followerCount": 869400, "followingCount": 15, "friendCount": 5, "heart": 14900000, "heartCount": 14900000, "videoCount": 189 }, "user": { "avatarLarger": <link>, "avatarMedium": <link>, "avatarThumb": <link>, "canExpPlaylist": true, "commentSetting": 0, "commerceUserInfo": { "commerceUser": false }, "duetSetting": 0, "followingVisibility": 1, "ftc": false, "id": <string id>, "isADVirtual": false, "isEmbedBanned": false, "nickNameModifyTime": 1659513420, "nickname": <string>, "openFavorite": false, "privateAccount": false, "profileEmbedPermission": 1, "profileTab": { "showPlayListTab": false, "showQuestionTab": true }, "relation": 0, "secUid": <string>, "secret": false, "signature": <string>, "stitchSetting": 0, "ttSeller": false, "uniqueId": <string>, "verified": false } } }
- GET /api/user/list
Get followers
- Response JSON Object:
followers (json) – List of followers
Example response:
HTTP/1.1 200 OK Vary: Accept Content-Type: text/javascript { "extra": { "fatal_item_ids": [], "logid": "20231204180523B9C3034B5CF8695EBE51", "now": 1701713124000 }, "hasMore": true, "log_pb": { "impr_id": "20231204180523B9C3034B5CF8695EBE51" }, "maxCursor": 1701698692, "minCursor": 1701685519, "statusCode": 0, "status_code": 0, "total": 518808, "userList": [ { "stats": { "diggCount": 11600, "followerCount": 224, "followingCount": 3215, "friendCount": 0, "heart": 272, "heartCount": 272, "videoCount": 29 }, "user": { "avatarLarger": <string>, "avatarMedium": <string>, "avatarThumb": <string>, "commentSetting": 1, "downloadSetting": 3, "duetSetting": 3, "ftc": false, "id": "7277635517649699845", "isADVirtual": false, "nickname": <string>, "openFavorite": false, "privateAccount": false, "relation": 0, "secUid": <string>, "secret": false, "signature": <string>, "stitchSetting": 3, "ttSeller": false, "uniqueId": <string>, "verified": false } }, ] }
- GET /api/comment/list
Get comments of a video
- Response JSON Object:
comments (json) – List of comments
Example response:
HTTP/1.1 200 OK Vary: Accept Content-Type: text/javascript { "alias_comment_deleted": false, "comments": [ { "author_pin": false, "aweme_id": "7279848477109062945", "cid": "7280136767352308512", "collect_stat": 0, "comment_language": "de", "create_time": 1695038967, "digg_count": 1413, "image_list": null, "is_author_digged": true, "label_list": [ { "text": <string>, "type": 20 } ], "no_show": false, "reply_comment": [ { "aweme_id": "7279848477109062945", "cid": "7280143271883981600", "collect_stat": 0, "comment_language": "de", "create_time": 1695040498, "digg_count": 392, "image_list": null, "is_author_digged": false, "label_list": [ { "text": <string>, "type": 1 } ], "label_text": <string>, "label_type": 1, "no_show": false, "reply_comment": null, "reply_id": "7280136767352308512", "reply_to_reply_id": "0", "share_info": { "acl": { "code": 1, "extra": "{\"item_share_acl\":\"empty item value\"}" }, "desc": <string>, "title": <string>, "url": <string>, }, "status": 1, "text": <string>, "text_extra": [], "trans_btn_style": 1, "user": { "account_labels": null, "ad_cover_url": null, "advance_feature_item_order": null, "advanced_feature_info": null, "avatar_thumb": { "uri": "tos-useast2a-avt-0068-euttp/d106515243ceb865bacd4db68ea94283", "url_list": [ <string> ], "url_prefix": null }, "bold_fields": null, "can_message_follow_status_list": null, "can_set_geofencing": null, "cha_list": null, "cover_url": null, "custom_verify": "", "enterprise_verify_reason": "", "events": null, "followers_detail": null, "geofencing": null, "homepage_bottom_toast": null, "item_list": null, "mutual_relation_avatars": null, "need_points": null, "nickname": <string>, "platform_sync_info": null, "relative_users": null, "search_highlight": null, "sec_uid": <string>, "shield_edit_field_info": null, "type_label": null, "uid": "6958026025243706373", "unique_id": <string>, "user_profile_guide": null, "user_tags": null, "white_cover_url": null }, "user_buried": false, "user_digged": 0 } ], "reply_comment_total": 8, "reply_id": "0", "reply_to_reply_id": "0", "share_info": { "acl": { "code": 1, "extra": "{\"item_share_acl\":\"empty item value\"}" }, "desc": <string>, "title": <string>, "url": <string> }, "status": 1, "stick_position": 0, "text": <string>, "text_extra": [], "trans_btn_style": 1, "user": { "account_labels": null, "ad_cover_url": null, "advance_feature_item_order": null, "advanced_feature_info": null, "avatar_thumb": { "uri": "tos-useast2a-avt-0068-euttp/d8b118380e3ddbd227adf3c20042e5a9", "url_list": [ <string> ], "url_prefix": null }, "bold_fields": null, "can_message_follow_status_list": null, "can_set_geofencing": null, "cha_list": null, "cover_url": null, "custom_verify": "", "enterprise_verify_reason": "", "events": null, "followers_detail": null, "geofencing": null, "homepage_bottom_toast": null, "item_list": null, "mutual_relation_avatars": null, "need_points": null, "nickname": "vykdzgdrn47", "platform_sync_info": null, "relative_users": null, "search_highlight": null, "sec_uid": "MS4wLjABAAAA5SL64ddtcxtnLNxRWIeq427MNy1BSnxaEcbxQPaXtEzUwMVfKHY6m8Pzpsq8yG9A", "shield_edit_field_info": null, "type_label": null, "uid": "7275216108189271073", "unique_id": "vykdzwcwk", "user_profile_guide": null, "user_tags": null, "white_cover_url": null }, "user_buried": false, "user_digged": 0 }, }
- GET /api/explore/item_list
Get trending videos
- Response JSON Object:
videos (json) – List of videos
Example response:
HTTP/1.1 200 OK Vary: Accept Content-Type: text/javascript { "BAInfo": "", "adAuthorization": false, "adLabelVersion": 0, "author": { "avatarLarger": "https://p16-sign-useast2a.tiktokcdn.com/tos-useast2a-avt-0068-giso/ba1e7df48c5a3682582da7989016fc16~c5_1080x1080.jpeg?x-expires=1701882000\u0026x-signature=DnP7GG6IbQJPGJBieDMWOcdUUA0%3D", "avatarMedium": "https://p16-sign-useast2a.tiktokcdn.com/tos-useast2a-avt-0068-giso/ba1e7df48c5a3682582da7989016fc16~c5_720x720.jpeg?x-expires=1701882000\u0026x-signature=tarGE0dyTybP7InrBusGH7F6TfA%3D", "avatarThumb": "https://p16-sign-useast2a.tiktokcdn.com/tos-useast2a-avt-0068-giso/ba1e7df48c5a3682582da7989016fc16~c5_100x100.jpeg?x-expires=1701882000\u0026x-signature=%2BPWCEbAB9WW8YmsbbTb%2FKh5byUA%3D", "commentSetting": 0, "downloadSetting": 3, "duetSetting": 3, "ftc": false, "id": "6780231953461478401", "isADVirtual": false, "isEmbedBanned": false, "nickname": "Fitria Marala", "openFavorite": false, "privateAccount": false, "relation": 0, "secUid": "MS4wLjABAAAAFdBt489FnKNr0IrpsKhY_zFiLcvB7X9E9XHdwdkOr7JEfurVxcXu4bQ3AnYh2HJ9", "secret": false, "signature": <string>, "stitchSetting": 3, "ttSeller": true, "uniqueId": "_fitr13", "verified": false }, "authorStats": { "diggCount": 35400, "followerCount": 19000, "followingCount": 72, "friendCount": 0, "heart": 4000000, "heartCount": 4000000, "videoCount": 14 }, "collected": false, "contents": [ { "desc": <string> } ], "createTime": 1701169484, "desc": <string>, "digged": false, "diversificationId": 10066, "duetDisplay": 0, "duetEnabled": false, "duetInfo": { "duetFromId": "0" }, "forFriend": false, "id": <string>, "isAd": false, "itemCommentStatus": 0, "itemMute": false, "music": { "album": "", "authorName": "question mark", "coverLarge": "https://p16-sign-va.tiktokcdn.com/musically-maliva-obj/1594805258216454~c5_1080x1080.jpeg?x-expires=1701882000\u0026x-signature=dm%2FI9r5oLOEtpcLRjA4Zx42XbCk%3D", "coverMedium": "https://p16-sign-va.tiktokcdn.com/musically-maliva-obj/1594805258216454~c5_720x720.jpeg?x-expires=1701882000\u0026x-signature=w99ww%2BBRGG6Zg9KPvByT5MmKxAc%3D", "coverThumb": "https://p16-sign-va.tiktokcdn.com/musically-maliva-obj/1594805258216454~c5_100x100.jpeg?x-expires=1701882000\u0026x-signature=u%2FkeM1JKCKsSA9LpkeuHPO6R3Js%3D", "duration": 42, "id": "7279680270842874630", "original": true, "playUrl": "https://v77.tiktokcdn.com/3eb253b9646ebc0ff533f425b96746f6/656e2134/video/tos/useast2a/tos-useast2a-v-27dcd7/ocABJQlYnve6pBPBQDbVCPUyf87j2lBUkWOJnN/?a=1233\u0026ch=0\u0026cr=0\u0026dr=0\u0026er=2\u0026cd=0%7C0%7C0%7C0\u0026br=250\u0026bt=125\u0026bti=NDU3ZjAwOg%3D%3D\u0026ft=d2A~l-Inz7TS152Ziyq8Z\u0026mime_type=audio_mpeg\u0026qs=6\u0026rc=NmY2NmRoNzpkaDdnZTk4ZEBpajNpaDg6Zjw8bjMzNzU8M0BeXjMxMzIzXzUxYi8zMTAtYSNnczRrcjRfcTBgLS1kMTZzcw%3D%3D\u0026l=2023120417571317E0A4084BE6C75B3246\u0026btag=e00088000\u0026cc=13\u0026download=true", "title": "original sound - question mark" }, "officalItem": false, "originalItem": false, "playlistId": "", "privateItem": false, "secret": false, "shareEnabled": true, "showNotPass": false, "stats": { "collectCount": 362000, "commentCount": 9062, "diggCount": 4000000, "playCount": 20000000, "shareCount": 79700 }, "stitchDisplay": 0, "stitchEnabled": false, "video": { "bitrate": 1451746, "bitrateInfo": [ { "Bitrate": 1561318, "CodecType": "h265_hvc1", "GearName": "adapt_lowest_1080_1", "PlayAddr": { "DataSize": 2036350, "FileCs": "c:0-10305-7bc0", "FileHash": "d1d995c95debfa4c38f1bb69a9d96f27", "Uri": "v14044g50000clisifnog65grp6351j0", "UrlKey": "v14044g50000clisifnog65grp6351j0_bytevc1_1080p_1561318", "UrlList": [ <string> ] }, "QualityType": 2 }, { "Bitrate": 1451746, "CodecType": "h264", "GearName": "normal_540_0", "PlayAddr": { "DataSize": 1893440, "FileCs": "c:0-10159-d9dc", "FileHash": "33c9de442d59cc9c1d5d4e104b69d827", "Uri": "v14044g50000clisifnog65grp6351j0", "UrlKey": "v14044g50000clisifnog65grp6351j0_h264_540p_1451746", "UrlList": [ <string> ] }, "QualityType": 20 }, { "Bitrate": 906902, "CodecType": "h265_hvc1", "GearName": "adapt_lower_720_1", "PlayAddr": { "DataSize": 1182828, "FileCs": "c:0-10306-4a4a", "FileHash": "f089fc3f5761f8e9e683dc54b80bd7b9", "Uri": "v14044g50000clisifnog65grp6351j0", "UrlKey": "v14044g50000clisifnog65grp6351j0_bytevc1_720p_906902", "UrlList": [ <string> ] }, "QualityType": 14 }, { "Bitrate": 712302, "CodecType": "h264", "GearName": "lower_540_0", "PlayAddr": { "DataSize": 929021, "FileCs": "c:0-10159-c9d1", "FileHash": "4a7f1e76fd2a60c061c81878016d62ee", "Uri": "v14044g50000clisifnog65grp6351j0", "UrlKey": "v14044g50000clisifnog65grp6351j0_h264_540p_712302", "UrlList": [ <string> ] }, "QualityType": 24 }, { "Bitrate": 690608, "CodecType": "h265_hvc1", "GearName": "adapt_540_1", "PlayAddr": { "DataSize": 900726, "FileCs": "c:0-10306-ddd9", "FileHash": "c15cf5fe0f9c593136fded088dd4e1df", "Uri": "v14044g50000clisifnog65grp6351j0", "UrlKey": "v14044g50000clisifnog65grp6351j0_bytevc1_540p_690608", "UrlList": [ <string> ] }, "QualityType": 28 } ], "codecType": "h264", "cover": "https://p16-sign-sg.tiktokcdn.com/obj/tos-alisg-p-0037/oYPZDYXcplJVOVB3iiBvWIEMwwyk3yBBhAEmA?x-expires=1701882000\u0026x-signature=DiF3PvAeSJKONwiKFMthqOAP85I%3D", "definition": "540p", "downloadAddr": <string>, "duration": 10, "dynamicCover": "https://p16-sign-sg.tiktokcdn.com/obj/tos-alisg-p-0037/5e7ee1e9e9384552ae3775f49db46801_1701169488?x-expires=1701882000\u0026x-signature=70l%2BXQk1iARzH7dptObbcQWMfVQ%3D", "encodeUserTag": "", "encodedType": "normal", "format": "mp4", "height": 1024, "id": "7306467281624747282", "originCover": "https://p16-sign-sg.tiktokcdn.com/obj/tos-alisg-p-0037/65663301006047c4b8a174aff56a6f84_1701169486?x-expires=1701882000\u0026x-signature=EjnH8NuoBpLFu0jVuzFP5tVm12A%3D", "playAddr": <string>, "ratio": "540p", "reflowCover": <string>, "shareCover": [ "", <string> ], "size": 1893440, "videoQuality": "normal", "volumeInfo": { "Loudness": -19.9, "Peak": 0.41687 }, "width": 576, "zoomCover": { "240": <string>, "480": <string>, "720": <string>, "960": <string> } }, "vl1": false }