---
title: "List Video Comments"
method: GET
path: "/live/{platform}/videos/{platformVideoId}/comments"
tags: ["Live Data"]
---

# List Video Comments

`GET /live/{platform}/videos/{platformVideoId}/comments`

## Request

- Base URL: `https://viral.app/api/v1`
- URL: `https://viral.app/api/v1/live/{platform}/videos/{platformVideoId}/comments`
- Auth: API key in header `x-api-key`

Fetches the comments on a video, in the platform's own order.

| Platform | Per page | Order | Notes |
| --- | --- | --- | --- |
| TikTok | up to 30 | TikTok's ranking | commenter country and comment language are filled here only |
| Instagram | about 15 | newest first | reply counts can be null |
| YouTube | 20 | top comments | only a comment's age is published ("8 days ago"), so `commented_at` is approximate |
| Facebook | 10 | most relevant | likes are the sum of all reactions |
| Snapchat | about 20, one page | top comments | no commenter usernames |

Replies are counted, not listed. Fields a platform does not publish are null. `region` has no effect on this route. A `pageToken` on a platform that has one page returns an empty page and is not charged.

Optional live endpoint. You do not need this endpoint for normal API integrations; prefer tracked accounts, tracked videos, analytics, projects, and Creator Hub endpoints when working with viral.app data.

⚠️ Consumes extra credits: 3 credits per request. Additional charges may apply.

Headers:
- X-Viral-Credits-Consumed
- X-Viral-Credits-Meter
- X-Viral-Credits-Benefited-Remaining
- X-Viral-Credits-Can-Purchase-Extra
- Retry-After (on 429 responses)

A page past the only one of a one-page lookup costs nothing: it carries X-Viral-Credits-Consumed: 0 and X-Viral-Credits-Meter, without the two balance headers.

## Path parameters

- `platform` 'facebook' | 'instagram' | 'tiktok' | 'youtube' | 'snapchat', required: Social media platform (facebook, instagram, tiktok, youtube, snapchat)
- `platformVideoId` string, required: Native platform video id found in the URL of the video

## Query parameters

- `pageToken` string, nullable: Opaque cursor token used to fetch the next page
- `region` string, nullable: Region code (2-letter ISO country code)

## Response `200`

OK

- object
  - `comments` object[], required
    - `platform` 'facebook' | 'instagram' | 'tiktok' | 'youtube' | 'snapchat', required: Social media platform (facebook, instagram, tiktok, youtube, snapchat)
    - `platform_comment_id` string, nullable, required
    - `platform_video_id` string, nullable, required: Native platform video id found in the URL of the video
    - `commenter_username` string, nullable, required
    - `commenter_display_name` string, nullable, required
    - `commenter_avatar_url` string, nullable: URL
    - `commenter_country_code` string, nullable: Region code (2-letter ISO country code)
    - `comment_text` string, nullable, required
    - `comment_language` string, nullable, required
    - `comment_length` integer, nullable, required
    - `like_count` integer, nullable, required
    - `reply_count` integer, nullable, required
    - `comment_type` 'top_level' | 'reply' | 'reply_to_reply', required
    - `commented_at` string, date-time, nullable, required
    - `share_url` string, nullable: URL
  - `nextPageToken` string, nullable, required

## Other responses

- `400`: 400
- `401`: 401
- `402`: 402
- `403`: 403
- `404`: 404
- `408`: 408
- `429`: 429
- `500`: 500
- `502`: 502

---

[API](https://skmtc.dev/viral/apis/viral-app-api.md) · [All operations](https://skmtc.dev/viral/apis/viral-app-api/llms.txt) · [OpenAPI document](https://skmtc.dev/viral/apis/viral-app-api/revisions/31e97fa79ef1?raw)
