> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dumplingai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get TikTok Video Comments

> Retrieves comments from a TikTok video with pagination support.

## Description

This endpoint allows you to fetch comments from a specific TikTok video. It supports pagination to retrieve all comments and includes nested replies for each comment.

## Endpoint

**POST** `/api/v1/get-tiktok-video-comments`

## Request Headers

| Header          | Type   | Description                                       |
| :-------------- | :----- | :------------------------------------------------ |
| `Content-Type`  | string | Must be `application/json`.                       |
| `Authorization` | string | Your API key (Bearer token). e.g. `Bearer sk_xxx` |

## Request Body

| Parameter       | Type   | Description                                                                                      | Required | Default     |
| :-------------- | :----- | :----------------------------------------------------------------------------------------------- | :------- | :---------- |
| `url`           | string | The full TikTok video URL.                                                                       | Yes      |             |
| `cursor`        | number | Optional cursor for pagination. Pass the `cursor` from a previous response to get the next page. | No       |             |
| `count`         | number | Number of comments to fetch per request.                                                         | No       | API default |
| `requestSource` | string | Optional. Source of the request (e.g., `MAKE_DOT_COM`, `ZAPIER`, `API`).                         | No       | `API`       |

<Info>
  The `url` must be a valid TikTok video URL, e.g., `https://www.tiktok.com/@username/video/1234567890` or `https://vm.tiktok.com/ZMhKxyz/`
</Info>

## Responses

### Success (200 OK)

Returns a JSON object containing an array of comments with user information, engagement metrics, and pagination details.

```json theme={null}
{
  "comments": [
    {
      "cid": "7123456789012345678",
      "text": "Great video! 🔥",
      "create_time": 1704067200,
      "digg_count": 42,
      "reply_comment_total": 3,
      "user": {
        "uid": "6987654321098765432",
        "unique_id": "commenter_username",
        "nickname": "Commenter Name",
        "avatar_thumb": {
          "url_list": ["https://...jpeg"]
        },
        "verified": false
      },
      "reply_comment": [
        {
          "cid": "7234567890123456789",
          "text": "Thanks!",
          "create_time": 1704070800,
          "digg_count": 5,
          "user": {
            "uid": "6659752019493208069",
            "unique_id": "video_author",
            "nickname": "Author Name",
            "verified": true
          }
        }
      ]
    }
    // ... more comments
  ],
  "cursor": 20,
  "hasMore": true,
  "total": 234
}
```

**Response Headers:**

* `Content-Type: application/json`

- **X-RateLimit-Limit:** The rate limit for the user.
- **X-RateLimit-Remaining:** The remaining number of requests for the user.

### Error Responses

#### 400 Bad Request

Indicates an issue with the request parameters.

```json theme={null}
{
  "error": "'url' parameter is required and must be a non-empty string."
}
```

Possible error messages:

* `Invalid JSON in request body`
* `'url' parameter is required and must be a non-empty string.`
* `Invalid TikTok video URL format.`
* `The comments service could not process the provided URL.`
* `The comments service reported an issue.`

#### 401 Unauthorized

API key is missing, invalid, or inactive.

```json theme={null}
{
  "error": "API key is invalid or missing."
}
```

#### 403 Forbidden

API key does not have enough credits.

```json theme={null}
{
  "error": "Insufficient credits. Please top up your account."
}
```

#### 404 Not Found

Comments could not be found for the video.

```json theme={null}
{
  "error": "Comments not found for video URL: [url]"
}
```

#### 500 Internal Server Error

An unexpected error occurred on the server.

```json theme={null}
{
  "error": "An unexpected server error occurred while fetching the TikTok video comments: [specific error message]"
}
```

Possible error messages:

* `Service not configured. Please contact support.`
* `Service authentication failed. Please contact support.`
* `An unexpected server error occurred...`

#### 502 Bad Gateway

Indicates an issue with an upstream service.

```json theme={null}
{
  "error": "Received invalid data structure from comments service."
}
```

Possible error messages:

* `The comments service is currently unavailable.`
* `Received invalid data structure from comments service.`
* `Error fetching comments data from the upstream service.`

#### 503 Service Unavailable

Rate limit exceeded with an upstream service.

```json theme={null}
{
  "error": "Rate limit exceeded. Please try again later."
}
```

## Example Request

### cURL

```bash theme={null}
curl -X POST \
  https://app.dumplingai.com/api/v1/get-tiktok-video-comments \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{ "url": "https://www.tiktok.com/@username/video/7321234567890123456" }'
```

### Node.js (fetch)

```javascript theme={null}
async function getTikTokVideoComments(apiKey, url, cursor = null, count = null) {
  const endpoint = 'https://app.dumplingai.com/api/v1/get-tiktok-video-comments';
  const body = { url };
  if (cursor !== null) body.cursor = cursor;
  if (count !== null) body.count = count;

  const options = {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'Authorization': `Bearer ${apiKey}`
    },
    body: JSON.stringify(body)
  };

  try {
    const response = await fetch(endpoint, options);
    const data = await response.json();
    if (!response.ok) {
      console.error(`Error: ${response.status}`, data);
      return null;
    }
    console.log(`Fetched ${data.comments.length} comments`);
    console.log(`Has more: ${data.hasMore}`);
    console.log(`Total comments: ${data.total}`);
    return data;
  } catch (error) {
    console.error('Failed to fetch TikTok video comments:', error);
    return null;
  }
}

// Example usage - fetch all comments with pagination:
async function getAllComments(apiKey, url) {
  let allComments = [];
  let cursor = null;
  let hasMore = true;

  while (hasMore) {
    const data = await getTikTokVideoComments(apiKey, url, cursor);
    if (!data) break;

    allComments = allComments.concat(data.comments);
    hasMore = data.hasMore;
    cursor = data.cursor;
  }

  console.log(`Total comments fetched: ${allComments.length}`);
  return allComments;
}

// getAllComments('YOUR_API_KEY', 'https://www.tiktok.com/@username/video/7321234567890123456');
```

## Notes

* Use the `cursor` field from the response to paginate through all comments.
* The `hasMore` field indicates whether there are additional pages available.
* Each comment includes engagement metrics (`digg_count` = likes on the comment).
* The `reply_comment` array contains nested replies to each comment.
* Comments are returned in reverse chronological order (newest first) by default.
* The `total` field provides the approximate total number of comments available.

## Credit Cost

This endpoint costs **10 credits** per successful request. For more details, see our [Credit Costs](/api-reference/credit-costs) page.

## Rate Limiting

This endpoint is subject to standard API rate limits. Check the `X-RateLimit-Limit` and `X-RateLimit-Remaining` headers in the response to monitor your usage.


## OpenAPI

````yaml POST /api/v1/get-tiktok-video-comments
openapi: 3.0.3
info:
  title: DumplingAI API
  version: 1.0.0
  description: >
    REST API for DumplingAI's content intelligence and automation platform.

    All endpoints are grouped under `/api/v1`; most are secured via Bearer API
    keys unless an operation explicitly sets `security: []`.
servers:
  - url: https://app.dumplingai.com
    description: Production
security:
  - bearerAuth: []
tags:
  - name: YouTube
    description: Access metadata, search results, and transcripts from YouTube.
  - name: TikTok
    description: Retrieve TikTok profile, video, follower, and transcript data.
  - name: LinkedIn
    description: Programmatically fetch LinkedIn company and profile data.
  - name: Search
    description: Search-orientated endpoints spanning web, news, maps, and autocomplete.
  - name: Google
    description: Integrations with Google business listings and location data.
  - name: Scraping
    description: Webpage capture, crawling, and structured content extraction utilities.
  - name: Documents
    description: Document processing, conversion, and metadata utilities.
  - name: AI
    description: DumplingAI agent and knowledge base endpoints.
  - name: Developer Tools
    description: Utilities for executing sandboxed code via API.
paths:
  /api/v1/get-tiktok-video-comments:
    post:
      tags:
        - TikTok
      summary: List TikTok video comments
      description: Fetch comments and replies for a TikTok video with pagination support.
      operationId: listTikTokVideoComments
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TikTokVideoCommentsRequest'
      responses:
        '200':
          description: TikTok comments retrieved.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TikTokVideoCommentsResponse'
        '400':
          description: Invalid request payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Missing or invalid API key.
        '403':
          description: Insufficient credits to fulfill the request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Comments not found for the provided URL.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Unexpected server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '502':
          description: Upstream comments service returned an error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    TikTokVideoCommentsRequest:
      type: object
      required:
        - url
      properties:
        url:
          type: string
          format: uri
        cursor:
          type: number
          description: Cursor for pagination.
        count:
          type: number
          description: Number of comments per page.
        requestSource:
          $ref: '#/components/schemas/RequestSource'
    TikTokVideoCommentsResponse:
      type: object
      properties:
        comments:
          type: array
          items:
            $ref: '#/components/schemas/TikTokComment'
        cursor:
          type: number
          nullable: true
        hasMore:
          type: boolean
          nullable: true
        total:
          type: integer
          nullable: true
      additionalProperties: true
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
          description: Human-readable description of what went wrong.
      required:
        - error
    RequestSource:
      type: string
      description: Optional identifier describing where the API request originated.
      enum:
        - API
        - WEB
        - MAKE_DOT_COM
        - ZAPIER
        - N8N
        - PLAYGROUND
        - DEFAULT_AUTOMATION
        - AGENT_PREVIEW
        - AGENT_LIVE
        - AUTOPILOT
        - STUDIO
    TikTokComment:
      type: object
      properties:
        cid:
          type: string
        text:
          type: string
        create_time:
          type: integer
          nullable: true
        digg_count:
          type: integer
          nullable: true
        reply_comment_total:
          type: integer
          nullable: true
        user:
          type: object
          additionalProperties: true
        reply_comment:
          type: array
          items:
            type: object
            additionalProperties: true
      additionalProperties: true
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key

````