Look up one TikTok comment by URL or id
Resolves a single TikTok comment to a live comment object (current like count, reply count, pinned flag, author, timestamp) without you paginating the comment section. Pass comment_url (a .../@{handle}/video/{id}?comment_id={cid} link, an m.tiktok.com share link, or a vm.tiktok.com/.../t/ shortlink: resolved automatically) OR post_url + comment_id. For a reply, also pass parent_comment_id (a reply URL does not carry its parent). Instead of a comment id you can search the comment section: author_username (find a specific author's comments) or text_contains (exact snippet) return up to max matches under data.matches (a search that matches nothing returns 404 and is fully refunded). The response includes a lookup.position_hint: pass it back on a later lookup of the same comment to make the re-check nearly free. Flat 2 credits (6 with deep_scan=true, which widens the scan budget); a not-found returns 404 and is fully refunded.
Request
- Base URL: https://www.socialcrawl.dev/v1
- URL: https://www.socialcrawl.dev/v1/tiktok/comment
- Auth: API key in header x-api-key
Query parameters
A TikTok comment URL: https://www.tiktok.com/@{handle}/video/{videoId}?comment_id={cid}, the m.tiktok.com/v/{id}.html?...&share_comment_id={cid} share form, or a vm.tiktok.com/{code} / tiktok.com/t/{code} shortlink. The cid/comment_id/share_comment_id query value may be numeric or the base64 form TikTok's share sheet emits (?cid=NzY1...): both are accepted; base64 is decoded automatically. Mutually exclusive with post_url+comment_id. (one of: comment_url, post_url; at least one required)
The post URL (https://www.tiktok.com/@{handle}/video/{videoId}). Combine with comment_id, or with author_username/text_contains for a search. (one of: comment_url, post_url; at least one required)
The target comment's numeric id (the cid from the comments endpoint). Requires post_url. Note that TikTok share links carry a base64-encoded cid: pass such a link as comment_url instead (decoded automatically), or base64-decode the value to its digits before passing it here.
The parent comment's numeric id: supply this when the target is a reply so it can be resolved directly via the native replies endpoint.
Return up to max comments authored by this username (no comment id needed). Mutually exclusive with text_contains and any comment id.
Return up to max comments whose text contains this snippet (case-insensitive). Mutually exclusive with author_username and any comment id.
Widen the scan budget for deeply-buried comments (raises the page ceiling and deadline). Bills 6 credits instead of 2.
Opaque token from a prior lookup's lookup.position_hint. Passing it back probes the comment's last-known location first, making a re-check of an already-found comment cheap.
For author_username/text_contains search: max matches to return (1-20, default 5).
Headers
Send no-cache to bypass the response cache and force a live fetch. Billed at the normal endpoint cost; the fresh result is written back to cache for the next caller. Only the no-cache directive triggers this. See the Response Schema guide for details.
Optional UUID that makes the request safely retriable. The key is reserved atomically per account before billing. A concurrent retry receives 409 IDEMPOTENCY_IN_PROGRESS with a Retry-After of 1 second while the original is young, growing to a quarter of the time it has been running (at most 30); a crashed reservation expires after 5 minutes. A replay keeps the cached payload immutable except for billing metadata: credits_used becomes 0, idempotent_replay becomes true, and credits_remaining is refreshed to the current balance. A known current balance appears in both the body and X-Credits-Remaining header; no balance row resolves to 0. On a transient lookup failure, body credits_remaining is null and X-Credits-Remaining is omitted. Completed outcomes expire after 24 hours. If the claim store is unavailable, the request fails closed before billing. GET endpoints do not combine idempotent replay with Server-Sent Events: use Accept: application/json when sending this header. The unsupported key-plus-SSE combination is rejected before billing.
Response
Successful response
Example response
{
"success": true,
"platform": "tiktok",
"endpoint": "/v1/tiktok/comment",
"credits_used": 1,
"credits_remaining": 4999,
"request_id": "req-abc123",
"idempotent_replay": true,
"meta": {
"hint": {
"code": "search_multi",
"message": "You searched \"matcha\" on 3 platforms one call at a time; /v1/search/multi returns each platform's own search rows in one call at the same price per platform, and a platform with no rows is not charged.",
"method": "GET",
"path": "/v1/search/multi?query=matcha&platforms=instagram,tiktok,youtube"
}
}
}Changes
No recorded changes to this operation across all 1 revision of this API.