Comments
Get a TikTok video's comments, or one comment's replies.
GET | POST /v1/tiktok/commentsSend parameters as a query string with GET, or as a JSON body with POST. Both are equivalent.
What to Pass
| Pass | Reads | Notes |
|---|---|---|
post | The video's comments | A creator-pinned comment carries pinned: true |
post + comment | The replies under one comment |
Pass one source per call. Every identifier also takes the page URL.
Parameters
| Parameter | Type | Required | Notes |
|---|---|---|---|
comment | string | With post: the comment whose replies to load (its id). | |
cursor | string | Opaque cursor from the previous page's cursor. Pass it alone for the next page. | |
limit | integer 1–50 | Items per page, 1–50. | |
post | string | The video's comments: numeric video id or URL. |
Request
curl "https://gateway.apinoa.com/v1/tiktok/comments?post=7698770783367171359&limit=3" \
-H "x-api-key: $APINOA_API_KEY"Response
Returns Page of Comment in data. A real response, shortened: arrays keep their first entries and long text is cut.
{
"success": true,
"data": {
"platform": "tiktok",
"items": [
{
"platform": "tiktok",
"id": "7699995835177992974",
"postId": "7698770783367171359",
"author": {
"platform": "tiktok",
"id": "7489662053765334062",
"handle": "it_isno_secret",
"displayName": "🫰🏼Pierce.-.the.-.Bail bc!!",
"url": "https://www.tiktok.com/@it_isno_secret",
"avatarUrl": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/e72b606bb39e85714c3b07f1d252d885~tplv-tiktokx-cropcent…",
"ext": {
"secUid": "MS4wLjABAAAAqHRwSRBsJrJwwu7Cp-8mtS24cHPddjR7WkyEvVebLd06LUrIJCGkNTyadnRNNJVn"
}
},
"text": "Can I please get the update",
"replies": [],
"createdAt": "2026-10-23T22:37:14.000Z",
"lang": "en",
"metrics": {
"likes": 1
}
}
],
"cursor": "uHQDKupPSaV7esWOVsa9XqNJUReHIbjgDfCFmc0uwH88ed5FFM_ti8Cfd4yckTE0hWg4qx-gNhZAtKVKVbD7CFgIRxhSHn1gxjD_YYLraAJ2JR6J7QD6PyH…",
"ext": {
"commentCount": 1640
}
}
}Errors
| Status | Code | Meaning |
|---|---|---|
| 400 | INVALID_CURSOR | The cursor is not one this operation returned. Start again without it. |
| 400 | INVALID_PARAMS | A parameter is missing, unknown or out of range. The message names it. |
| 401 | UNAUTHORIZED | The x-api-key header is missing, or the key is revoked or unknown. |
| 402 | INSUFFICIENT_BALANCE | The balance does not cover this call. Top up in the dashboard. |
| 404 | NOT_FOUND | The account, post or group does not exist, or is private, deleted or age-restricted. |
| 429 | MARKETPLACE_SATURATED | Too many concurrent calls. Retry after the Retry-After seconds. |
| 502 | UPSTREAM_ERROR | The platform answered with something unusable. Retry with backoff. |
Every code is listed in Errors. Failed calls are not billed.
Pricing
Price $0.001 per call. List price; the rate steps down above 1,000 calls a day.