A product-launch video gets most of its comments in the first 48 hours, then keeps collecting a slower trickle for weeks. Reading the comments once, the day after posting, catches the initial reaction and misses everything after — the comment that shows up a week later after someone actually tried the product, the complaint that starts spreading once enough people hit the same problem. Catching that means pulling the same video's comments repeatedly, not once.
If you're an agent (or building one) reading this rather than a human, the full machine-readable schema for every endpoint below lives at mindcase.co/skills.md.
What does automating comment collection actually mean?
Three things have to happen on a schedule, not just once: the pull, the storage, and the comparison.
- The pull. The same video (or the same creator's recent videos), checked the same way, on a fixed cadence — daily makes sense for the first couple of weeks after a launch, when comment volume is still changing fast.
- The storage. Each day's comments need to land somewhere that keeps yesterday's alongside today's, not overwrite them. A flat file, a spreadsheet, or a database table all work — the point is that day 14 can still be compared against day 1.
- The comparison. The value isn't "here are today's comments," it's "how many new ones came in, and did the tone of what people are saying shift" — and that only means something once there's a prior day to diff against.
How do you pull comments for a video?
TikTok Comments API takes a single video URL, so tracking a video means calling it on the same URL repeatedly rather than looping a list — this is a one-video-per-call endpoint, not a batch one.
curl -X POST "https://api.mindcase.co/v1/data/tiktok/comments/run?wait=true" \
-H "Authorization: Bearer $MINDCASE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"params": {
"postURLs": "https://www.tiktok.com/@yourbrand/video/7123456789012345678",
"commentsPerPost": 200
}
}'
# $0.0005 per comment returnedEach row back includes commentId, comment, likes, and postedDate —
the fields that matter for tracking, since a comment only becomes a
useful signal once it's tied to when it landed and how much it resonated.
How do you store and diff comments day over day?
This is the part a one-off read skips entirely: appending each day's pull
to a running history, then comparing today's set against yesterday's by
commentId.
Any commentId in today's pull that wasn't in yesterday's is a new
comment — that's the count that actually matters for "is this still
getting attention," more than the running total. For comments that
already existed, compare likes day over day: a comment gaining likes
three days after posting is still resonating; one that stalled at its
Day 1 count has stopped mattering to new viewers.
An illustrative two-day snapshot for one video makes the shape of this concrete:
| Date | commentId | Comment | Likes |
|---|---|---|---|
| Day 1 | c_9182 | "does this work on curly hair" | 12 |
| Day 2 | c_9182 | "does this work on curly hair" | 41 |
| Day 2 | c_9204 | "just ordered, hope it's not a scam" | 3 |
Two things are visible here that a single read on Day 2 alone would blur
together: c_9182 is still gaining traction (12 → 41 likes), and c_9204
is a genuinely new comment, not a continuation of an existing thread. A
tracker that only stores the latest snapshot loses both signals — it
would show 2 comments on Day 2 with no way to tell which one is new or
which one is picking up steam.
How do you schedule the pull?
Nothing about the API itself is schedule-aware — it answers one request at a time. The loop above runs wherever you already run scheduled code: a cron job, a serverless function on a timer, or whatever workflow tool your team already uses. Daily makes sense in the first couple of weeks after a launch; once comment volume on a video has settled to near zero, there's little left to track.
What can't you get from Mindcase?
Two cases.
A built-in scheduler or a place to store history. The API answers the request you send it — it doesn't remember yesterday's pull or run itself on a timer. Both are yours to build, on whatever schedule and storage you're already using.
Comments from before you started tracking. Every request reads the video's current comment thread at call time. There's no historical archive of a video's comments as they looked last month — tracking only covers the window from when you begin pulling forward.
Which endpoint should you use for which job?
| Endpoint | Input | Price | Best for |
|---|---|---|---|
| TikTok Comments | A video URL, or a profile to pull recent videos' comments | $0.0005 / comment | Tracking sentiment on a specific video over time |
FAQ
Not in a single call for a specific video URL. You can pass a profile instead of a video URL to pull comments across that profile's recent videos in one request, controlled by how many videos to check.
$0.0005 per comment returned. A video with 200 comments pulled once a day for 14 days costs $1.40 in total, assuming the same 200-comment cap each day.
Yes, replies are returned alongside top-level comments. You can cap top-level comments separately from the overall total if you want to prioritize breadth over reply depth.
No. Every request reads the video's live comment thread at call time. There's no archive of comments as they looked in the past — tracking only covers the period from when you begin pulling forward.
