How-to guide
How to analyze TikTok comments for questions, complaints and buyers
Call tiktok/post/comments with the video URL and label=question,complaint,purchase_intent, and each comment comes back with its text, author, likes and replies plus a judgement under computed.labels. You then filter the page on those labels instead of reading it. A run costs 1 credit.
1 credit per run, in one API call
The calls, in order
Each step is one request to the SocialCrawl API. Copy the curl, add your key and run it.
List TikTok post comments
1 credit per callTry this call on its endpoint page: List TikTok post commentscurlcurl -H "x-api-key: YOUR_API_KEY" \ "https://www.socialcrawl.dev/v1/tiktok/post/comments?url=https%3A%2F%2Fwww.tiktok.com%2F%40stoolpresidente%2Fvideo%2F7623818255903329566&label=question%2Ccomplaint%2Cpurchase_intent"
What comes back
A real response from tiktok/post/comments, captured from the SocialCrawl API, with long lists cut to two rows.
JSON
{
"success": true,
"platform": "tiktok",
"endpoint": "/v1/tiktok/post/comments",
"data": {
"items": [
{
"comment": {
"id": "7623828115408274207",
"url": null,
"parent_id": null,
"post_id": "7623818255903329566",
"text": "Sample comment text (redacted).",
"author": {
"username": "user_da42e5",
"display_name": "user_a15de0",
"avatar_url": "https://example.com/avatars/user_5d925d.png",
"verified": false
},
"engagement": {
"likes": 17771,
"replies": 55
},
"flags": {
"pinned": false,
"deleted": false
},
"published_at": "2026-04-01T16:27:52.000Z",
"ext": {
"published_at_epoch": 1775060872
}
},
"computed": {
"language": "en",
"labels": {
"sentiment": {
"level": 3,
"score_0_1": 0.76,
"confidence": 0.78
},
"question": {
"p": 0.03
},
"purchase_intent": {
"p": 0.03
},
"complaint": {
"p": 0.01
}
}
}
},
{
"comment": {
"id": "7623869779602457374",
"url": null,
"parent_id": null,
"post_id": "7623818255903329566",
"text": "Sample comment text (redacted).",
"author": {
"username": "user_d39d34",
"display_name": "user_bea79b",
"avatar_url": "https://example.com/avatars/user_56ecda.png",
"verified": false
},
"engagement": {
"likes": 13666,
"replies": 25
},
"flags": {
"pinned": false,
"deleted": false
},
"published_at": "2026-04-01T19:08:53.000Z",
"ext": {
"published_at_epoch": 1775070533
}
},
"computed": {
"language": "en",
"labels": {
"sentiment": {
"level": 2,
"score_0_1": 0.43,
"confidence": 0.39
},
"question": {
"p": 0.05
},
"purchase_intent": {
"p": 0.03
},
"complaint": {
"p": 0.02
}
}
}
}
],
"next_cursor": "sc2.eyJzIjoiaCIsImMiOiJzYzEuZXlKaklqb2lOVEFpTENKeklqcGJJamMyTWpNNE1qZ3hNVFUwTURneU56UXlNRGNpTENJM05qSXpPRFk1TnpjNU5qQXlORFUzTXpjMElpd2lOell5TXprek5UQXlNRE14T1RRNU1EZzBOeUlzSWpjMk1qTTROelkxTnpreE5qa3lOekkyTURjaUxDSTNOakl6T0RnMU9ERTRORFE1TXpFME5UYzBJaXdpTnpZeU16ZzJOVGt6T1RNek1qQTNNakl3TlNJc0lqYzJNak00TWpJeE5EWXpOalV3TkRjMU9ETWlMQ0kzTmpJek9ESTNPREE0TVRJMU56WTBNelkxSWl3aU56WXlNemszTURJeE9ERXlOalU1TURjMU1DSXNJamMyTWpReU5UTXhNRFF4TnpVM05ETTNOelVpTENJM05qSXpPREk1TkRZMk56azFPVGd6TmpJNUlpd2lOell5TXpnek5EazRNelk1TlRBMU56WTNPQ0lzSWpjMk1qTTRORGszT0RNeU1URTNOekEyTXpnaUxDSTNOakk1TlRFNE1qa3hNelV4TURFeU1URXdJaXdpTnpZeU16Z3hPVFV5TlRrMU1UazVOalk0TlNJc0lqYzJNalF3TVRFd01URTVNelExTmpreU5EWWlMQ0kzTmpJNE56RTNNelUzT1RrMk56VXpOamM0SWl3aU56WXlNemd5T0RBeE1ERTBNREF5TlRZek1TSXNJamMyTWpNNE1qTXhOVFEwT1RBME1qWXhNallpTENJM05qSXpPREU1TkRjeE9EWTFOVEk1TVRFNElpd2lOell5TXprME9UTXlOalV4TVRJMk1EUXpNQ0lzSWpjMk1qTTVNalUyTVRJeU1ERTBNamMzTWpVaUxDSTNOakl6T0RJeU9EazJPREUzTmpZNE9EazBJaXdpTnpZeU5ERTVNVGt6TmpVMU5qRTFOVFkzT1NJc0lqYzJNak00TWpnNU56VTJOekk0T0RZd05EY2lMQ0kzTmpJek9ETTVNVFV4TnpBME1EUTRNems0SWl3aU56WXlNemc0TXpjek9ERTNPRGN3TURBMk15SXNJamMyTWpRek5EYzJPVGd6TURreE1qQTNPVGdpTENJM05qSTBOekk0TVRZM05UZzRNalkyTnpneklpd2lOell5TkRVeE56SXpNelF5TkRBM016VXdNeUlzSWpjMk1qTTRNakEyTWpFd05qYzRORFkwTXpFaUxDSTNOakl6T0RRNU5UQTJNVGd5T1RBMk5qTTRJaXdpTnpZeU16azBNek13T1RJNE56VTRPRFl6T1NJc0lqYzJNak00TXpNMk16QXdOVEF4TkRBNU5ERWlMQ0kzTmpJek9UQXlOamcwTnpZNE5UWTRNRGM0SWl3aU56WXlNemd5Tmpnek9UQTVNRE00TVRVNE1pSXNJamMyTWpRek5qQTBNalUxTlRFMk5UazRNRGNpTENJM05qSTBNREF3TXpJMk56WXhNems1TURjeElpd2lOell5TkRNeU1EUXdOemszTXpNMk5EUTVOQ0lzSWpjMk1qUXpPRGs1TXpnNE1UUXhOVGMxT1RraUxDSTNOakl6T0RNd01EQTFNalkxTXpZM09ESXhJaXdpTnpZeU16ZzNPREkzTkRBd056QTRPVGsxTUNJc0lqYzJNalV6TmpneU5UUXlNelU1TlRFNU1ESWlMQ0kzTmpJek9UZ3lOVE0wTmpjNE56STFOREEzSWl3aU56WXlOREEwTXpJMU5UVXlPVEU1TkRJMU15SXNJamMyTWpNNE56UXlNVEl3T0RneU9ETTVNVGNpTENJM05qSXpPREkyTlRNMU5EQXhNVEV5TXpVeElpd2lOell5TXpnME1EQTVORFk0TlRBNE5qUTNPQ0lzSWpjMk1qTTROREl5T1RZNU1EQXhNRGt3T0RjaVhYMCJ9",
"total": 2196,
"labels": {
"presets": [
"sentiment",
"question"
],
"rows": 49,
"labelled": 49,
"cached": 49,
"skipped": 0,
"unjudged": 0,
"dropped": 0,
"dropped_ids": [],
"extra_credits": 0,
"methodology_version": "labels/1",
"mode": "default",
"status": "complete",
"pending": 0,
"pending_ids": []
},
"label_share": {
"policy_version": "share/1",
"presets": {
"question": {
"n": 49,
"counted": 4,
"abstained": 6,
"share": 0.093,
"low": 0.0425,
"high": 0.1918,
"receipts": [
{
"id": "7624253104175743775",
"text": "Sample comment text (redacted)."
},
{
"id": "7623828010140025631",
"text": "Sample comment text (redacted)."
}
],
"policy_version": "share/1",
"too_few": false,
"at_cut": 8,
"nulls": 0,
"low_confidence": 6
},
"purchase_intent": {
"n": 49,
"counted": 0,
"abstained": 1,
"share": 0,
"low": 0,
"high": 0.0534,
"receipts": [],
"policy_version": "share/1",
"too_few": false,
"at_cut": 0,
"nulls": 0,
"low_confidence": 1
},
"complaint": {
"n": 49,
"counted": 0,
"abstained": 0,
"share": 0,
"low": 0,
"high": 0.0523,
"receipts": [],
"policy_version": "share/1",
"too_few": false,
"at_cut": 0,
"nulls": 0,
"low_confidence": 0
},
"sentiment": {
"positive": {
"n": 49,
"counted": 36,
"abstained": 6,
"share": 0.8372,
"low": 0.7252,
"high": 0.9093,
"receipts": [
{
"id": "7623828115408274207",
"text": "Sample comment text (redacted)."
},
{
"id": "7623876579169272607",
"text": "Sample comment text (redacted)."
}
],
"policy_version": "share/1",
"too_few": false,
"at_cut": 36,
"nulls": 0,
"low_confidence": 6
},
"neutral": {
"n": 49,
"counted": 7,
"abstained": 6,
"share": 0.1628,
"low": 0.0907,
"high": 0.2748,
"receipts": [
{
"id": "7623935020319490847",
"text": "Sample comment text (redacted)."
},
{
"id": "7623865939332072205",
"text": "Sample comment text (redacted)."
}
],
"policy_version": "share/1",
"too_few": false,
"at_cut": 7,
"nulls": 0,
"low_confidence": 6
},
"negative": {
"n": 49,
"counted": 0,
"abstained": 6,
"share": 0,
"low": 0,
"high": 0.0592,
"receipts": [],
"policy_version": "share/1",
"too_few": false,
"at_cut": 0,
"nulls": 0,
"low_confidence": 6
}
}
}
},
"comment_language": {
"policy_version": "share/1",
"n": 49,
"abstained": 0,
"judged_by": {
"script": 0,
"choice": 49
},
"shares": {
"en": {
"n": 49,
"counted": 49,
"abstained": 0,
"share": 1,
"low": 0.9477,
"high": 1,
"receipts": [
{
"id": "7623828115408274207",
"text": "Sample comment text (redacted)."
},
{
"id": "7623869779602457374",
"text": "Sample comment text (redacted)."
}
],
"policy_version": "share/1",
"too_few": false
}
}
},
"comment_recency": {
"policy_version": "d09-1",
"n": 49,
"counted": 49,
"abstained": 0,
"share_last_24h": 0,
"share_later_half": null,
"too_few": false,
"stage": "unknown",
"order": "default",
"recent_share_is_floor": true,
"receipts": []
},
"dropped": 0
},
"credits_used": 1,
"request_id": "req_example000000",
"cached": false,
"pagination": {
"next_cursor": "sc.eyJ2IjoyLCJjIjoic2MyLmV5SnpJam9pYUNJc0ltTWlPaUp6WXpFdVpYbEtha2xxYjJsT1ZFRnBURU5LZWtscWNHSkphbU15VFdwTk5FMXFaM2hOVkZVd1RVUm5lVTU2VVhsTlJHTnBURU5KTTA1cVNYcFBSRmsxVG5wak5VNXFRWGxPUkZVelRYcGpNRWxwZDJsT2VsbDVUWHByZWs1VVFYbE5SRTE0VDFSUk5VMUVaekJPZVVselNXcGpNazFxVFRST2Vsa3hUbnByZUU1cWEzbE9la2t5VFVSamFVeERTVE5PYWtsNlQwUm5NVTlFUlRST1JGRTFUWHBGTUU1VVl6QkphWGRwVG5wWmVVMTZaekpPVkd0NlQxUk5lazFxUVROTmFrbDNUbE5KYzBscVl6Sk5hazAwVFdwSmVFNUVXWHBPYWxWM1RrUmpNVTlFVFdsTVEwa3pUbXBKZWs5RVNUTlBSRUUwVFZSSk1VNTZXVEJOZWxreFNXbDNhVTU2V1hsTmVtc3pUVVJKZUU5RVJYbE9hbFUxVFVSak1VMURTWE5KYW1NeVRXcFJlVTVVVFhoTlJGRjRUbnBWTTA1RVRUTk9lbFZwVEVOSk0wNXFTWHBQUkVrMVRrUlpNazU2YXpGUFZHZDZUbXBKTlVscGQybE9lbGw1VFhwbmVrNUVhelJOZWxrMVRsUkJNVTU2V1ROUFEwbHpTV3BqTWsxcVRUUk9SR3N6VDBSTmVVMVVSVE5PZWtFeVRYcG5hVXhEU1ROT2FrazFUbFJGTkUxcWEzaE5lbFY0VFVSRmVVMVVSWGRKYVhkcFRucFplVTE2WjNoUFZGVjVUbFJyTVUxVWF6Vk9hbGswVGxOSmMwbHFZekpOYWxGM1RWUkZkMDFVUlRWTmVsRXhUbXByZVU1RVdXbE1RMGt6VG1wSk5FNTZSVE5OZWxVelQxUnJNazU2VlhwT2FtTTBTV2wzYVU1NldYbE5lbWQ1VDBSQmVFMUVSVEJOUkVGNVRsUlplazFUU1hOSmFtTXlUV3BOTkUxcVRYaE9WRkV3VDFSQk1FMXFXWGhOYWxscFRFTkpNMDVxU1hwUFJFVTFUa1JqZUU5RVdURk9WRWsxVFZSRk5FbHBkMmxPZWxsNVRYcHJNRTlVVFhsT2FsVjRUVlJKTWsxRVVYcE5RMGx6U1dwak1rMXFUVFZOYWxVeVRWUkplVTFFUlRCTmFtTXpUV3BWYVV4RFNUTk9ha2w2VDBSSmVVOUVhekpQUkVVelRtcFpORTlFYXpCSmFYZHBUbnBaZVU1RVJUVk5WR3Q2VG1wVk1VNXFSVEZPVkZrelQxTkpjMGxxWXpKTmFrMDBUV3BuTlU1NlZUSk9la2swVDBSWmQwNUVZMmxNUTBrelRtcEplazlFVFRWTlZGVjRUbnBCTUUxRVVUUk5lbXMwU1dsM2FVNTZXWGxOZW1jMFRYcGplazlFUlROUFJHTjNUVVJCTWsxNVNYTkphbU15VFdwUmVrNUVZekpQVkdkNlRVUnJlRTFxUVROUFZHZHBURU5KTTA1cVNUQk9la2swVFZSWk0wNVVaelJOYWxreVRucG5la2xwZDJsT2VsbDVUa1JWZUU1NlNYcE5lbEY1VGtSQk0wMTZWWGROZVVselNXcGpNazFxVFRSTmFrRXlUV3BGZDA1cVl6Uk9SRmt3VFhwRmFVeERTVE5PYWtsNlQwUlJOVTVVUVRKTlZHZDVUMVJCTWs1cVRUUkphWGRwVG5wWmVVMTZhekJOZWsxM1QxUkpORTU2VlRSUFJGbDZUMU5KYzBscVl6Sk5hazAwVFhwTk1rMTZRWGRPVkVGNFRrUkJOVTVFUldsTVEwa3pUbXBKZWs5VVFYbE9hbWN3VG5wWk5FNVVXVFJOUkdNMFNXbDNhVTU2V1hsTmVtZDVUbXBuZWs5VVFUVk5SRTAwVFZSVk5FMXBTWE5KYW1NeVRXcFJlazVxUVRCTmFsVXhUbFJGTWs1VWF6Uk5SR05wVEVOSk0wNXFTVEJOUkVGM1RYcEpNazU2V1hoTmVtczFUVVJqZUVscGQybE9lbGw1VGtSTmVVMUVVWGRPZW1zelRYcE5NazVFVVRWT1EwbHpTV3BqTWsxcVVYcFBSR3MxVFhwbk5FMVVVWGhPVkdNeFQxUnJhVXhEU1ROT2FrbDZUMFJOZDAxRVFURk5hbGt4VFhwWk0wOUVTWGhKYVhkcFRucFplVTE2WnpOUFJFa3pUa1JCZDA1NlFUUlBWR3N4VFVOSmMwbHFZekpOYWxWNlRtcG5lVTVVVVhsTmVsVTFUbFJGTlUxRVNXbE1RMGt6VG1wSmVrOVVaM2xPVkUwd1RtcGpORTU2U1RGT1JFRXpTV2wzYVU1NldYbE9SRUV3VFhwSk1VNVVWWGxQVkVVMVRrUkpNVTE1U1hOSmFtTXlUV3BOTkU1NlVYbE5WRWwzVDBSbmVVOUVUVFZOVkdOcFRFTkpNMDVxU1hwUFJFa3lUbFJOTVU1RVFYaE5WRVY1VFhwVmVFbHBkMmxPZWxsNVRYcG5NRTFFUVRWT1JGazBUbFJCTkU1cVVUTlBRMGx6U1dwak1rMXFUVFJPUkVsNVQxUlpOVTFFUVhoTlJHdDNUMFJqYVZoWU1DSjkiLCJlIjoidGlrdG9rL3Bvc3QvY29tbWVudHMiLCJwIjoiY3Vyc29yIn0",
"has_more": true,
"page_size": 49
},
"credits_remaining": 9999,
"source": "captured",
"captured_at": "2026-10-02T15:40:17.829Z",
"redacted": true
}Hand this job to your coding agent
Paste this prompt into Claude Code, Cursor or any agent that can make HTTP requests. It names every endpoint and parameter the job needs.
Prompt
Use the SocialCrawl API for this job: Read the comments on a post and see which are questions, complaints or buyers, without judging them yourself.
Base URL: https://www.socialcrawl.dev. Send the API key in the x-api-key header (an Authorization: Bearer header also works). Values in braces are placeholders to fill.
1. GET /v1/tiktok/post/comments?url=https%3A%2F%2Fwww.tiktok.com%2F%40stoolpresidente%2Fvideo%2F7623818255903329566&label=question%2Ccomplaint%2Cpurchase_intent
Every response is JSON with data, credits_used and request_id. The full endpoint reference is at https://www.socialcrawl.dev/llms.txt.FAQ
Have a question? We got answers
Find answers to frequently asked questions about SocialCrawl's API, pricing, and capabilities.
Contact usHow do I choose which labels are applied?
Set label to a comma separated list. The example uses question, complaint and purchase_intent, and the response lists the presets it applied under labels.presets, so you can confirm what was judged before you filter on it.
What fields does each comment have?
Each row holds the comment id, its text, the author, engagement counts such as likes and replies, a published_at timestamp and a computed block with the detected language and the labels. The response also carries a label_share summary across the page.
How do I read more than one page of comments?
Pass the next_cursor from the response into the next request. The captured example reports a total of 2196 comments for one video, so the cursor is how you walk the whole thread a page at a time.
How do I open the replies under one comment?
Take the comment's id and call the replies endpoint named in the registry description, video/comment/replies. The comments call returns a reply count on every row so you know which threads are worth expanding.
Can I collect the whole thread in one request instead?
Yes, prism/comments pages to the end for you across TikTok, YouTube, Facebook, Reddit, Hacker News and Instagram. The registry notes it is not the route for judged or filtered comments, which tiktok/post/comments offers.
How much does one run cost?
One run of the example above costs 1 credit across one API call. Every new account gets 100 free credits, credits for failed or empty calls are refunded automatically, and there is no subscription.
Ask AI about SocialCrawl
