~ / endpoints / Comment API

TikTok Comment Scraper API

Our TikTok comment scraper takes a video URL or numeric id and is built to return each comment as JSON: the text, like count, reply count, timestamp, and the author, paged with a cursor. Read the note below on TikTok's signature wall before you rely on it.

Get a free API keyBrowse the endpoints
1,000
free requests / mo
2.6s
median response
cursor
paged comments
JSON
structured output
the wall

Why TikTok Comment data fights back

TikTok's comment feed is served by a web XHR (api/comment/list) that requires a browser-minted X-Bogus and msToken signature tied to session cookies. Logged-out residential egress without that signature returns an empty 200, which is why a plain request gets no comments back.

quickstart

Fire your first TikTok Comment Scraper API call

cURL
curl "https://api.tiktokscraperapi.com/api/v1/tiktok/comments?url=https://www.tiktok.com/@scout2015/video/6718335390845095173&count=20&api_key=$API_KEY"
Python
import requests

BASE = "https://api.tiktokscraperapi.com/api/v1"
API_KEY = "YOUR_API_KEY"

# Pass the video url (or aweme_id), how many comments, and a cursor to page.
resp = requests.get(
    f"{BASE}/tiktok/comments",
    params={
        "url": "https://www.tiktok.com/@scout2015/video/6718335390845095173",
        "count": 20,
        "cursor": 0,
        "api_key": API_KEY,
    },
    timeout=30,
)
data = resp.json()

# When the signed feed is available, iterate the comments array.
for c in data.get("comments", []):
    print(c["likes"], "|", c["author"]["uniqueId"], "|", c["text"])
inputs

Parameters

ParameterRequiredDefaultNotes
urloptional-The full TikTok video permalink whose comments you want. Required unless you pass aweme_id or id.
aweme_idoptional-The numeric video (aweme) id, an alternative to url. id is accepted as an alias.
countoptional20How many comments to request this call. TikTok caps a page at about 50.
cursoroptional0The offset cursor for the next page. Pass the next_cursor from a prior response to page deeper.
countryoptionalusTwo-letter country code for the exit region the request is routed through. Defaults to US.
api_keyrequired-Your API key, passed as a query parameter. Get one free at signup.
the payload

What the TikTok Comment Scraper API hands back

200 OK
{
  "aweme_id": "6718335390845095173",
  "url": "https://www.tiktok.com/@scout2015/video/6718335390845095173",
  "socialPlatform": "tiktok",
  "comments": [
    {
      "position": 1,
      "id": "7361000000000000000",
      "text": "this is the cutest thing i have seen all week",
      "likes": 1240,
      "reply_count": 12,
      "create_time": 1564240000,
      "author": {
        "id": "6700000000000000000",
        "uniqueId": "exampleuser",
        "nickname": "Example User",
        "avatar": "https://p16-common-sign.tiktokcdn-us.com/...",
        "url": "https://www.tiktok.com/@exampleuser"
      }
    }
  ],
  "comments_count": 20,
  "total": 5756,
  "has_more": true,
  "next_cursor": 20
}
FieldTypeDescription
aweme_idstringThe numeric video id the comments belong to.
urlstringThe canonical video URL.
commentsarrayThe comments on this page. Each has position, id, text, likes, reply_count, create_time, and an author object.
comments[].textstringThe comment body.
comments[].likesintegerNumber of likes on the comment.
comments[].reply_countintegerNumber of replies to the comment.
comments[].authorobjectThe commenter: id, uniqueId, nickname, avatar, and url.
comments_countintegerNumber of comments returned on this page.
totalintegerTotal comment count reported for the video.
has_morebooleanTrue when another page is available.
next_cursorintegerThe cursor to pass on the next call to page deeper.
put it to work

Where teams put TikTok Comment data to work

>

Sentiment analysis

Feed the comment text into an LLM or classifier to gauge how an audience reacted to a video or campaign.
>

Community management

Surface the most-liked comments per video so a social team can reply to what matters first.
>

Trend and feedback mining

Collect comments across a set of videos to spot recurring questions, requests, and product feedback.
>

Spam and brand-safety checks

Scan comment text and authors to flag spam or harmful replies under sponsored content.
>

Engagement research

Combine comment like counts and reply counts with the video stats to study what drives conversation.
>

Audience discovery

Read commenter handles to find engaged accounts in a niche for outreach or lookalike research.
why us

Why build on our TikTok Comment Scraper API

The endpoint builds the comment-list hop correctly: it resolves the numeric id, sends the full web-app parameter block, pages with a cursor, and maps each comment into a clean row. We are honest that TikTok gates this feed behind a browser-minted signature, so on a logged-out tier it returns a classifiable comments_gated_needs_signature rather than pretending to have data. It runs on residential proxies with retries and success-only billing.

*

URL or aweme_id input

Pass the video permalink or the bare numeric id; the endpoint resolves the id it needs either way.
*

Cursor pagination

count and cursor page through the comment list, and next_cursor tells you where the next page starts.
*

Structured comment rows

Each comment maps to text, likes, reply_count, create_time, and a normalised author object.
*

Honest signature reporting

When TikTok's X-Bogus and msToken signature is unavailable, the response says so plainly instead of returning a silently empty feed.
*

Residential routing

Requests route through US residential IPs, the tier where TikTok's web endpoints are most permissive.
*

Pay for success

You are billed only for successful, populated responses; gated or failed calls are not charged.
side by side

TikTok Comment Scraper API vs rolling your own

Our APIDIY (requests / headless)TikTok official API
Input by video URLYes, url or aweme_idManual XHR with signed paramsNot exposed to general devs
Comment text and likesMapped rows when authorisedYou mint the signature yourselfNo public comment endpoint
Signature wallReported honestly, not fakedYou solve X-Bogus / msTokenNot applicable
PaginationCursor built inHand-managed cursorsNot applicable
Anti-bot and proxiesBuilt in, US residentialYou build and maintain itNot applicable
OutputFlat JSON, stable schemaRaw XHR JSON you parseNot available
pricing

Start free, then pay per call

PlanPriceBest for
Free1,000 requestsTesting and small jobs
Pro$0.60 / 1kProduction workloads
Pay-as-you-go$0.90 / 1kSpiky or one-off volume

Median response 2.6s. You only pay for successful requests.

FAQ

What is a TikTok comment scraper?

A TikTok comment scraper is a tool that reads the comments on a public video and returns them in a structured format. Our TikTok comment scraper API is built to take a video URL or numeric id and return each comment as JSON, with the text, like count, reply count, timestamp, and author, paged with a cursor.

Can it always return TikTok comments logged out?

Not reliably, and we are upfront about it. TikTok serves comments through a web XHR that requires a browser-minted X-Bogus and msToken signature tied to session cookies. Logged-out residential egress without that signature receives an empty 200, so the endpoint returns a classifiable comments_gated_needs_signature response in that case rather than pretending to have comments.

What does the endpoint return when comments are gated?

It returns an honest error state, comments_gated_needs_signature, with detail noting that TikTok's comment/list XHR needs a browser-minted signature and that a render or browser tier is required to mint it. The hop itself (id resolution, the full web-app parameter block, pagination, and response mapping) is implemented correctly, so it returns populated rows wherever the signed response is available.

What fields come back for each comment?

When authorised, each comment returns position, id, text, likes, reply_count, create_time, and an author object with id, uniqueId, nickname, avatar, and url. The top-level response adds comments_count, total, has_more, and next_cursor for pagination.

How do I page through all the comments on a video?

Set count for the page size and pass cursor starting at 0. Each response returns next_cursor and has_more; pass next_cursor back as cursor on the following call and stop when has_more is false. This is the same cursor model TikTok's own feed uses.

Is scraping TikTok comments legal?

Comments on a public video are public content, but you remain responsible for using the data lawfully, including any personal data in usernames or comment text under GDPR and similar laws, and for following TikTok's terms. This is general information rather than legal advice, so check your specific use case with counsel.

Pull comment api data as clean JSON
1,000 requests free to start. No card needed.
Get a free API key Browse the endpoints