TikTok hub

TikTok comments API

Pass a public TikTok video URL and get top-level comments with text, likes, reply counts, and authors — same Social Fetch envelope as profile and transcript routes.

GET /v1/tiktok/videos/comments

1 credit per successful request.

About this endpoint

Sentiment jobs, brand monitors, and research pipelines need the thread under a TikTok video, not a scraped HTML blob that reshuffles every week. Homegrown scrapers invent pagination tokens, lose author ids, and break when the mobile client payload changes.

`GET /v1/tiktok/videos/comments` takes a required `url` query param (standard `/@user/video/…` links or `vm.tiktok.com` short links). Optional `cursor` pages further; optional `trim=true` returns a smaller payload when you only need text and ids. On a found lookup, read `data.comments` and `data.page`. Each top-level row can include `id`, `text`, `createdAt`, `likes`, `replyCount`, `language`, and an `author` object (`handle`, `displayName`, `avatarUrl`, optional `platformUserId` / `secUid`). Branch on `data.lookupStatus` (`found` or `not_found`) before you write rows.

Pagination is cursor-based with a variable page size — there is no fixed comments-per-page count. When `data.page.hasMore` is true, pass `data.page.nextCursor` as `cursor` on the next request. Do not loop on `totalComments` alone; that total may not match how many rows you can paginate. Cost is 1 credit per successful page; confirm with `meta.creditsCharged`. Nested replies are a separate route: `GET /v1/tiktok/videos/comments/replies` with the parent `commentId` plus the same video `url`.

TikTok comments API FAQ

How do I list TikTok video comments via API?

Call GET /v1/tiktok/videos/comments with your Social Fetch API key (x-api-key) and a public video url query param. Read data.lookupStatus, then data.comments and data.page. Full parameters and examples are in the API docs.

How much does the TikTok comments endpoint cost?

Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged — that field is the billing source of truth. Each paginated page is a separate billed request.

How does pagination work on TikTok video comments?

Each response includes data.page.nextCursor and data.page.hasMore. When hasMore is true, pass nextCursor as the cursor query param on the next request. Page size is not fixed — do not assume a constant number of comments per page or stop based on totalComments alone.

What fields are in each TikTok comment?

Top-level rows can include id, text, createdAt, likes, replyCount, language, and author (handle, displayName, avatarUrl, optional platformUserId and secUid). Always branch on data.lookupStatus before treating comments as present.

How do I get replies to a TikTok comment?

Use GET /v1/tiktok/videos/comments/replies with commentId from a row in this list response plus the same video url. Top-level listing and reply threads are separate operations, each billed on its own.

What does data.lookupStatus mean on TikTok comments?

found means the video resolved and the comments page (which may be empty) is valid. not_found means the video could not be resolved; comments is empty and totalComments is null. HTTP 200 alone does not mean you have a thread to store.

What URL formats does the TikTok comments API accept?

Public TikTok video URLs, including /@user/video/… links and vm.tiktok.com short links. Pass one url per request.

Do I need TikTok OAuth to read video comments?

No. You authenticate to Social Fetch with an API key. The route reads public comment data; it does not act on behalf of a logged-in TikTok user.