TikToktiktok.videos.comments.list

TikTok video comments API

Comments on a video with likes and reply counts.

GEThttps://api.okdata.online/v1/tiktok/videos/comments/list

Price

One call costs $0.002 and returns one page of about 50 comments. Collecting 1,000 comments takes about 20 calls, $0.04 in total. Each page is a separate call; failed calls are not charged.

Parameters

NameTypeDescription
id *requiredstringThe video ID. Give id or url. e.g. 7305085486984858894
cursorstringOpaque cursor from page.next_cursor of the previous call. Each page is a separate call.
viewstringcompactstandardfullHow much of each object comes back. full adds platform-specific fields under ext. default standard
fieldsstringComma-separated fields to keep, to save tokens.

cursor, view and fields work the same on every endpoint: how requests work.

Returned fields

Each item is a Comment.

FieldTypeDescription
idstringComment ID.
post_idstringID of the post it is under.
parent_idstring | nullThe comment it replies to; null for top-level comments.
textstringComment text.
published_atstringWhen it was posted, ISO 8601 in UTC.
authorAccountRefWho wrote it.
likesinteger | nullLikes on the comment.
repliesinteger | nullReplies under it.
ip_locationstring | nullRegion label the platform shows next to the comment, if any.

Request

cURL
curl -G "https://api.okdata.online/v1/tiktok/videos/comments/list" \
  -H "Authorization: Bearer $OKDATA_API_KEY" \
  --data-urlencode 'id=7305085486984858894'
Python
import os
import requests

resp = requests.get(
    "https://api.okdata.online/v1/tiktok/videos/comments/list",
    headers={"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"},
    params={"id": "7305085486984858894"},
    timeout=60,
)
body = resp.json()
if body["code"] != "ok":
    raise RuntimeError(f"{body['code']}: {body['message']} (charged: {body['charged']})")

for row in body["data"]["items"]:
    print(row["likes"], row["text"])
print("cost: $" + body["meta"]["billing"]["amount"])
TypeScript
const url = new URL('https://api.okdata.online/v1/tiktok/videos/comments/list');
url.searchParams.set('id', "7305085486984858894");

const res = await fetch(url, {
  headers: {
    Authorization: `Bearer ${process.env.OKDATA_API_KEY}`,
  },
});
const body = await res.json();
if (body.code !== 'ok') throw new Error(`${body.code}: ${body.message}`);

for (const row of body.data.items) {
  console.log(row.likes, row.text);
}
console.log('cost: $' + body.meta.billing.amount);
MCPtools/call
{
  "name": "call",
  "arguments": {
    "endpoint": "tiktok.videos.comments.list",
    "params": {
      "id": "7305085486984858894"
    }
  }
}

Or ask an agent that has the MCP server connectedUse TikTok video comments, read the first two pages and sum up what people praise and complain about.

Response

200 · application/jsonmeta.billing.amount = 0.002
{
  "code": "ok",
  "request_id": "0f6c2a8e-4b1d-4e0a-9a51-3c7d2b9e1f20",
  "data": {
    "items": [
      {
        "id": "7302000000000000001",
        "post_id": "7301234567890123456",
        "parent_id": null,
        "text": "Which tent is that? Looks tiny packed.",
        "published_at": "2026-11-02T11:04:00Z",
        "author": {
          "id": "6812345678901234567",
          "username": "trailkit",
          "name": "Trail Kit",
          "avatar_url": "https://cdn.example.com/avatar/trailkit.jpg",
          "followers": 182300,
          "verified": true
        },
        "likes": 214,
        "replies": 9,
        "ip_location": null
      }
    ]
  },
  "page": {
    "next_cursor": "eyJvIjoyMH0",
    "has_more": true
  },
  "warnings": [],
  "meta": {
    "capability": "tiktok.videos.comments.list",
    "billing": {
      "amount": "0.002",
      "currency": "USD",
      "balance_after": "9.998"
    },
    "unavailable": {},
    "cached": false,
    "replayed": false,
    "fetched_at": "2026-11-11T08:00:00Z"
  }
}

Try it

This sends a real call to https://api.okdata.online and is billed as usual: at most $0.002. Failed calls are free. Your key goes only to that address and is never stored on this site.

Questions

How much does the TikTok video comments API cost?

One call costs $0.002 and returns one page of about 50 comments. Collecting 1,000 comments takes about 20 calls, $0.04 in total. Each page is a separate call; failed calls are not charged.

How do I get the next page?

Pass page.next_cursor from the response back as the cursor parameter. When page.has_more is false there is nothing left. Every page is its own call at $0.002.

Do I need a TikTok account, cookies or a QR login?

No. You send only your okdata API key. The data is public data from TikTok; nothing is fetched with your own TikTok account.

Am I charged when a call fails?

No. Every error response says charged: false, except a timeout, which says charged: null until the outcome is known. Resend with the same Idempotency-Key and you are never charged twice.

What if TikTok does not show a field?

The field is null, and meta.unavailable names it with the reason: platform (the platform never shows it) or capability (we cannot fetch it yet).

Answers that use this endpoint

All TikTok endpoints → · Answers