TikTok Comments API
The TikTok Comments API retrieves the comments on a public TikTok video or photo post, or the replies
to one of its comments. The first few hundred comments come in the order TikTok ranks them, and the rest
follow unranked. Each comment carries its text, like and reply counts, timestamp, language, pinned and
liked-by-creator flags, the picture for image and sticker comments and the author's public profile. The video block carries the post's id, link and the comment count
TikTok displays, and pagination.next_page_token is present while more comments remain.
Pages can repeat comments from earlier pages; use id to tell them apart.
API Parameters
Video Identifier
-
- Name
-
url - Required
- Optional
- Description
-
The full URL of the TikTok video or photo post to get comments for, e.g.
https://www.tiktok.com/@stoolpresidente/video/7499229683859426602. Shortvm.tiktok.com,vt.tiktok.comandtiktok.com/t/links carry no video id and are not accepted. Required unlessvideo_idornext_page_tokenis provided.
-
- Name
-
video_id - Required
- Optional
- Description
-
The numeric id of the video or photo post, the number at the end of its URL (e.g.
7499229683859426602). It is also theidof a video returned by the TikTok Search API or the TikTok Profile Videos API. Required unlessurlornext_page_tokenis provided. Cannot be combined withurl.
Replies
-
- Name
-
comment_id - Required
- Optional
- Description
-
The numeric id of a comment on the video, taken from
comments[].idin a previous response. When set, the response lists the replies to that comment instead of the video's comments, with the comment itself inparent_comment.
Pagination
-
- Name
-
next_page_token - Required
- Optional
- Description
-
Parameter defines the cursor for the next page. Take the value from
pagination.next_page_tokenin a previous response and pass it back to page forward. The token identifies the video and comment on its own, sourl,video_idandcomment_idmay be omitted with it.
Engine
-
- Name
-
engine - Required
- Required
- Description
-
Parameter defines an engine that will be used to retrieve real-time data. It must be set to
tiktok_comments.
API key
-
- Name
-
api_key - Required
- Required
- Description
-
The
api_keyauthenticates your requests. Use it as a query parameter (https://www.searchapi.io/api/v1/search?api_key=YOUR_API_KEY) or in the Authorization header (Bearer YOUR_API_KEY).
Zero Data Retention
-
- Name
-
zero_retention - Enterprise Only
- Enterprise Only
- Required
- Optional
- Description
-
Set this parameter to
trueto disable all logging and persistent storage. No request parameters, HTML, or JSON responses are stored or logged. Suitable for high-compliance use cases. Debugging and support may be limited while enabled.
API Examples
Video Comments
Pass the video's URL or its video_id. Each comment's replies tells you
how many replies it has, and its id is the comment_id that lists them.
https://www.searchapi.io/api/v1/search?engine=tiktok_comments&url=https%3A%2F%2Fwww.tiktok.com%2F%40stoolpresidente%2Fvideo%2F7499229683859426602
- Python
- Node
- Ruby
- Java
- Go
- PHP
- Bash
- R
- Kotlin
- Swift
- C#
- C
- C++
- requests
import requests
url = "https://www.searchapi.io/api/v1/search"
params = {
"engine": "tiktok_comments",
"url": "https://www.tiktok.com/@stoolpresidente/video/7499229683859426602"
}
response = requests.get(url, params=params)
print(response.text)
{
"search_metadata": {
"id": "search_aGS5c0QGuFlsz7ckXI6WHv8A",
"status": "Success",
"created_at": "2026-10-01T02:50:35Z",
"request_time_taken": 1.35,
"parsing_time_taken": 0.01,
"total_time_taken": 1.36,
"request_url": "https://www.tiktok.com/@stoolpresidente/video/7499229683859426602",
"html_url": "https://www.searchapi.io/api/v1/searches/search_aGS5c0QGuFlsz7ckXI6WHv8A.html",
"json_url": "https://www.searchapi.io/api/v1/searches/search_aGS5c0QGuFlsz7ckXI6WHv8A"
},
"search_parameters": {
"engine": "tiktok_comments",
"url": "https://www.tiktok.com/@stoolpresidente/video/7499229683859426602"
},
"video": {
"id": "7499229683859426602",
"link": "https://www.tiktok.com/@stoolpresidente/video/7499229683859426602",
"comments": 327
},
"comments": [
{
"position": 1,
"id": "7499260293689639723",
"text": "Omg youโre here in CHARLOTTE!?!?!?",
"likes": 808,
"replies": 1,
"iso_date": "2025-05-01T00:00:33Z",
"language": "en",
"author": {
"id": "6854964680395555845",
"username": "veryvera88",
"link": "https://www.tiktok.com/@veryvera88",
"name": "veryvera88",
"avatar": "https://p19-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/ea65fdebd89920efff9ff0b556315f01~tp..."
}
},
"..."
],
"pagination": {
"next_page_token": "eyJjdXJzb3IiOiI1MCIsInZpZGVvX2lkIjoiNzQ5OTIyOTY4Mzg1OTQyNjYwMiJ9"
}
}
Comment Replies
With comment_id set, comments holds the replies to that comment and
parent_comment the comment itself with the number of replies TikTok lists for it. A reply
to another reply names it in reply_to.
https://www.searchapi.io/api/v1/search?comment_id=7499297619270894379&engine=tiktok_comments&url=https%3A%2F%2Fwww.tiktok.com%2F%40stoolpresidente%2Fvideo%2F7499229683859426602
- Python
- Node
- Ruby
- Java
- Go
- PHP
- Bash
- R
- Kotlin
- Swift
- C#
- C
- C++
- requests
import requests
url = "https://www.searchapi.io/api/v1/search"
params = {
"engine": "tiktok_comments",
"url": "https://www.tiktok.com/@stoolpresidente/video/7499229683859426602",
"comment_id": "7499297619270894379"
}
response = requests.get(url, params=params)
print(response.text)
{
"search_metadata": {
"id": "search_pFvxmXvkYAJVBGp5hK9OYSTd",
"status": "Success",
"created_at": "2026-10-01T02:50:37Z",
"request_time_taken": 1.4,
"parsing_time_taken": 0.01,
"total_time_taken": 1.41,
"request_url": "https://www.tiktok.com/@stoolpresidente/video/7499229683859426602",
"html_url": "https://www.searchapi.io/api/v1/searches/search_pFvxmXvkYAJVBGp5hK9OYSTd.html",
"json_url": "https://www.searchapi.io/api/v1/searches/search_pFvxmXvkYAJVBGp5hK9OYSTd"
},
"search_parameters": {
"engine": "tiktok_comments",
"url": "https://www.tiktok.com/@stoolpresidente/video/7499229683859426602",
"comment_id": "7499297619270894379"
},
"video": {
"id": "7499229683859426602",
"link": "https://www.tiktok.com/@stoolpresidente/video/7499229683859426602"
},
"parent_comment": {
"id": "7499297619270894379",
"replies": 2
},
"comments": [
{
"position": 1,
"id": "7499381500338438943",
"text": "Bro has been consistent with the Costco pizza lol DO IT! ๐",
"likes": 20,
"iso_date": "2025-05-01T07:51:38Z",
"language": "en",
"author": {
"id": "6532091307882446849",
"username": "adriankeepitlit",
"link": "https://www.tiktok.com/@adriankeepitlit",
"name": "AdrianKeepItLit",
"avatar": "https://p19-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/53e83b3803db95389a6bdd46e98899d6~t..."
}
},
"..."
]
}
Paginating Comments
Pass the pagination.next_page_token from a previous response back as the
next_page_token parameter to fetch the next page. The token identifies the video and
comment on its own, so the other parameters may be omitted. The last page carries no token.
https://www.searchapi.io/api/v1/search?engine=tiktok_comments&next_page_token=eyJjdXJzb3IiOiI1MCIsInZpZGVvX2lkIjoiNzQ5OTIyOTY4Mzg1OTQyNjYwMiJ9
- Python
- Node
- Ruby
- Java
- Go
- PHP
- Bash
- R
- Kotlin
- Swift
- C#
- C
- C++
- requests
import requests
url = "https://www.searchapi.io/api/v1/search"
params = {
"engine": "tiktok_comments",
"next_page_token": "eyJjdXJzb3IiOiI1MCIsInZpZGVvX2lkIjoiNzQ5OTIyOTY4Mzg1OTQyNjYwMiJ9"
}
response = requests.get(url, params=params)
print(response.text)
{
"search_metadata": {
"id": "search_qdKeRrXoaEwuXJnvo0Pl1Ymz",
"status": "Success",
"created_at": "2026-10-19T15:27:09Z",
"request_time_taken": 2.89,
"parsing_time_taken": 0.03,
"total_time_taken": 2.92,
"request_url": "https://www.tiktok.com/@_/video/7499229683859426602",
"html_url": "https://www.searchapi.io/api/v1/searches/search_qdKeRrXoaEwuXJnvo0Pl1Ymz.html",
"json_url": "https://www.searchapi.io/api/v1/searches/search_qdKeRrXoaEwuXJnvo0Pl1Ymz"
},
"search_parameters": {
"engine": "tiktok_comments",
"next_page_token": "eyJjdXJzb3IiOiI1MCIsInZpZGVvX2lkIjoiNzQ5OTIyOTY4Mzg1OTQyNjYwMiJ9"
},
"video": {
"id": "7499229683859426602",
"link": "https://www.tiktok.com/@_/video/7499229683859426602",
"comments": 324
},
"comments": [
{
"position": 1,
"id": "7499473393169154862",
"text": "Sals is the ๐",
"likes": 1,
"replies": 0,
"iso_date": "2025-05-01T13:47:35Z",
"language": "en",
"author": {
"id": "6752674370026390533",
"username": "jordanjackson201",
"link": "https://www.tiktok.com/@jordanjackson201",
"name": "Jordan Jackson",
"avatar": "https://p19-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/da88881640f99a17db0bccdc97d97859~tp..."
}
},
"..."
],
"pagination": {
"next_page_token": "eyJjdXJzb3IiOiIxMDAiLCJ2aWRlb19pZCI6Ijc0OTkyMjk2ODM4NTk0MjY2MDIifQ=="
}
}