SocialToAIStart freeConsole
POST/v1/comments"platform": "tiktok"

TikTok Comments API

The comments under one video.

The TikTok Comments API returns the comments under a public TikTok video: text, likes, reply count and time, in the same response format as every other SocialToAI call. One call costs 2 credits ($0.004 to $0.0067 depending on the pack); failed calls are free. Call it over HTTP or from your AI client over MCP. Last tested 2026-10-17.

100 credits on sign-up, no card needed
2 creditsper call
Up to 50 per pageone page per call
2026-10-17last tested
843 Bsample response, 1 item

Last updated:

Request and response

curl https://api.socialtoai.com/v1/comments \  -H "Authorization: Bearer $SOCIALTOAI_KEY" \  -H "Content-Type: application/json" \  -d '{    "platform": "tiktok",    "id": "7665840565958872333"  }'
import osimport requestsresponse = requests.post(    "https://api.socialtoai.com/v1/comments",    headers={"Authorization": f"Bearer {os.environ['SOCIALTOAI_KEY']}"},    json={        "platform": "tiktok",        "id": "7665840565958872333",    },)print(response.json())
# Connected over MCP? Ask in plain words.Read the comments under this TikTok video: 7665840565958872333# Your AI calls the comments tool with:{  "platform": "tiktok",  "id": "7665840565958872333"}
Change the requestThe code above follows.
value
Sign in to run2 creditsOpens in the Playground with these parameters after you sign in. It never runs by itself.
200 OK843 B2 credits
{  "platform": "tiktok",  "status": "ok",  "items": [    {      "platform": "tiktok",      "id": "…",      "ref": "…",      "approx": [],      "type": "comment",      "url": null,      "text": "…",      "published_at": "2026-10-08T14:20:19.000Z",      "author": {        "label": "anonymous_1"      },      "metrics": {        "likes": 1430      },      "reply_count": 37,      "content_id": "…",      "parent_id": null,      "root_id": null    }  ],  "unavailable": ["url"],  "page": {    "has_more": true,    "cursor": "cur_…",    "cursor_expires_at": "2026-10-12T19:15:47.000Z"  },  "cost_credits": 2}
anonymous_1·
likes 1,430replies 37

Names and text were removed from the sample; the numbers are as recorded.

Sample data1 of the 50 items recorded

5 parameters.
1 required.

Send them as a JSON body with POST. Your key goes in the Authorization header, never in the URL.

NameTypeRequiredDefaultDescription
platformstringRequired—Always "tiktok" on this page.
idstringOne of these—Video ID, a string of digits
urlstringOne of these—Web link to the video
reply_ofstringOptional—When given, returns the replies under one comment (2 credits).
cursorstringOptional—Pass page.cursor from the last response to get the next page.

Where to get what you send.

id

Video ID, a string of digits (e.g. 7665840565958872333)

Every item these return carries its ref; send it as it is:

Or send the web link: the url field of the same items.

The fields of each item.
What TikTok cannot give is marked.

FieldTypeMeaning
items[].urlstringalways nullA link to the comment, where the platform has one.
items[].textstringThe comment itself.
items[].published_atstringWhen it was posted, ISO 8601 in UTC.
items[].author.labelstringAn anonymous label, stable within one response. Whoever wrote it is never named.
items[].metrics.likesintegerLikes.
items[].reply_countintegerHow many replies it has.
items[].content_idstringThe item the comment is under.
items[].parent_idstringThe comment it replies to directly; null for a top-level comment.
items[].root_idstringThe top-level comment its thread hangs under.
nullFields TikTok cannot give

Read null as “TikTok did not give this”, not as zero. These are always null on this call:

  • urlA link to the comment, where the platform has one.
Other values of this call

Send the parameter and the call returns something else:

reply_ofthe replies under one comment2 credits

Every item also has platform, id, ref, approx and type; the response around the items is the same on every call. Response format

What to expect.

One call returns a page of up to 50 items. When page.has_more is true, send page.cursor back as cursor for the next page; each page costs 2 credits and a cursor works for 30 minutes.
A call that runs and finds nothing is a successful call: status is "empty", items is empty, and it costs 2 credits.
On this call TikTok cannot tell a video that does not exist from one with no data: both come back as empty, and both are charged.

1 call per second per key, 5 after a purchase; going over is not charged. Rate limits

A failed call costs 0 credits and is never retried on its own. Error codes

Once connected over MCP, these questions use it.

  1. Read the comments under this TikTok video: 7665840565958872333
    comments {"platform":"tiktok","id":"7665840565958872333"}
    2 credits
  2. Search TikTok for videos about "space station", then for the first 3: read the comments under this TikTok video.
    search {"platform":"tiktok","query":"space station"}comments {"platform":"tiktok","id":"<ref>"} × 3
    8 credits

These ready-made tools call it when they run.

The same call on other platforms.

All platforms and prices
Change one word in the request: platform. The response keeps the same shape.

Questions.
Short answers.

Everything on TikTok
Do I need a TikTok account or TikTok's own API access?
No. You only need a SocialToAI key. The call returns content and account information publicly visible on TikTok; you never sign in to TikTok or apply for anything there.
Can I get the replies under one comment?
Yes: send reply_of in the request. That call costs 2 credits.

Your AI is one URL away
from all of social media.

100 credits on sign-up, no card needed