Skip to content
scrapeatlas.Dashboard

List TikTok video comments

Try in Playground

List a post's comments through TikTok's web comment feed (50 per page, cursor paged): comment records with cid, text, create_time, digg_count, reply_comment_total, user and share_info.

GET/v1/tiktok/video/commentsx-api-key
x-api-keystringrequiredheader

Your ScrapeAtlas customer key. Create one on /account/ and set SCRAPEATLAS_API_KEY.

Query parameters
2
urlstringrequiredquery

Video permalink or share link.

max 512 chars

Examplehttps://www.tiktok.com/@example/video/7400000000000000001
cursorstringquery

Cursor from the previous response (an offset).

Response fields
25
requestIdstring

Request correlation UUID.

Upstream calls made (the document, redirect hops, feed calls, the caption file, and every retried session), decoded bytes delivered to the parser and elapsed milliseconds.

accounting.upstreamRequestsinteger

Always included.

≥ 0

accounting.responseBytesinteger

Always included.

≥ 0

accounting.durationMsnumber

Always included.

≥ 0

successboolean

True when usable data is returned; inspect status and coverage for omissions.

statusenum

success, partial, failed, or challenged. HTTP 200 can be partial.

one of: success, partial

sourceUrlstring

The www.tiktok.com document the operation was issued from (profile, video, live, search, tag, music or explore page), after accepted redirects.

absolute HTTPS URL

fetchedAtstring

UTC retrieval timestamp.

source is document (server-rendered state) or public_api (a feed call); complete means nothing was capped; warnings name each cap or fallback.

coverage.sourceenum

Always included.

one of: document, public_api

coverage.completeboolean

Always included.

coverage.warningsenum[]

Always included.

Always included.

up to 100 items

comments.cidstring

Always included.

comments.aweme_idstring

Always included.

comments.textstring

Always included.

comments.create_timeinteger

Always included.

≥ 0

comments.digg_countinteger

Always included.

≥ 0

Always included.

comments.user.uidstring

Always included.

comments.user.unique_idstring

Always included.

cursorinteger

Cursor from the previous response (an offset).

≥ 0

has_moreinteger

Always included.

totalinteger

Always included.

≥ 0

HTTP 200 returns the success variant. Check status: partial means usable data with warnings, and failed or challenged requests carry a failure object described in Errors & responses.

Error codes
14
HTTPfailure.codeMeaning
400invalid_requestMissing, duplicate, ambiguous or unsupported parameters, unsupported URL forms, handles, cursors, regions, sorts or languages.
401unauthorizedInvalid API key.
403restricted_pageTikTok restricts the account or post (private video, private account, region block, or a redirect to its login page).
404not_foundUnknown or removed account, post, hashtag or sound, a post without captions, or a TikTok status code naming a missing resource.
429upstream_rate_limitedTikTok rate limited the request.
502upstream_challengedTikTok answered its verification page, an HTTP 401/403, a document without the app state, or refused a feed call with an empty body (status challenged).
502unsafe_redirectTikTok redirected outside the requested resource.
502unsupported_pageLayout, identity or feed-envelope checks failed, or a non-JSON feed answer was served.
502response_too_largeThe upstream response exceeded 4 MiB (512 KiB for caption files).
502payload_too_complexThe embedded JSON exceeded parsing limits.
502request_limitThe upstream call budget was exhausted.
502upstream_errorNetwork failure, a stalled exit, an unexpected upstream status after one retry, or an unexpected TikTok status code.
503busyAll retrieval slots are occupied.
504timeoutThe 90-second deadline elapsed.