Skip to content
All YouTube APIs
CommentsYouTubeVideo Comment · List

YouTube video comments

Page through public top-level comments on a YouTube video, top or newest first.

POST/v1/youtube/videos/comments

Chinese name: YouTube 视频评论 · 视频评论 · 列表 按视频 ID 分页读取 YouTube 公开视频的一级评论,可按热门或最新排序。
youtube.videos.comments@v1

Price per call

¥0.02/ call

Nonempty complete results are charged; empty, partial, and failed results are not.

Current statusAvailableChecking live status
Checking live status

Try it

Sign in and run one real call. The result and charge appear right here.

Security check

Loading the security check…

Checking live execution status…

Execution result

// Result

Request parameters

video_idstringrequired

pattern: "^[A-Za-z0-9_-]{11}$" · minLength: 1 · maxLength: 256

Example: "dQw4w9WgXcQ"

sort_bystringoptional

enum: "top" | "newest" · default: "top"

Example: "top"

language_codestringoptional

enum: "en-US" | "zh-CN" | "ja-JP" | "ko-KR" · default: "en-US"

cursorstringoptional

minLength: 1

Request JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "video_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256,
      "pattern": "^[A-Za-z0-9_-]{11}$"
    },
    "sort_by": {
      "default": "top",
      "type": "string",
      "enum": [
        "top",
        "newest"
      ]
    },
    "language_code": {
      "default": "en-US",
      "type": "string",
      "enum": [
        "en-US",
        "zh-CN",
        "ja-JP",
        "ko-KR"
      ]
    },
    "cursor": {
      "type": "string",
      "minLength": 1
    }
  },
  "required": [
    "video_id"
  ],
  "additionalProperties": false
}

Code samples

Install the SDK with npm i @dataxapi/sdk or pip install dataxapi, and put your API key in the DATAXAPI_API_KEY environment variable.

curl -X POST https://api.dataxapi.com/v1/youtube/videos/comments \
  -H "Authorization: Bearer $DATAXAPI_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"video_id":"dQw4w9WgXcQ","sort_by":"top"}'

Response example

200 · application/json
{
  "code": 200,
  "request_id": "req_example_youtube_videos_comments",
  "message": "success",
  "data": {
    "items": [
      {
        "comment_id": "UgzRDoUJAvDNn5_8i8p4AaABAg",
        "content": "Public comment",
        "published_time": "1 day ago",
        "reply_level": 0,
        "like_count": "2",
        "reply_count": "0",
        "author": {
          "channel_id": "UCzRzHrLFuH0lHZYnrI84I8Q",
          "display_name": "@publicviewer",
          "is_verified": false
        }
      }
    ]
  },
  "page": {
    "next_cursor": "cursor_example"
  },
  "warnings": [],
  "meta": {
    "listing_id": "youtube.videos.comments",
    "version": "v1",
    "catalog_release_id": "catalog-production-2026-09-19.b069be57",
    "price_book_version": "pricebook-production-2026-09-19.4487e352",
    "result_status": "complete",
    "charged_amount": "0.02",
    "balance_after": "49.98",
    "currency": "CNY"
  }
}
Response fields
codenumber
const: 200
request_idstring
messagestring
const: "success"
dataobject
pageobject
warningsarray
metaobject
Response JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "const": 200
    },
    "request_id": {
      "type": "string"
    },
    "message": {
      "type": "string",
      "const": "success"
    },
    "data": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "comment_id": {},
              "content": {},
              "published_time": {},
              "reply_level": {},
              "like_count": {},
              "reply_count": {},
              "author": {}
            },
            "additionalProperties": false
          }
        }
      },
      "required": [
        "items"
      ],
      "additionalProperties": false
    },
    "page": {
      "type": "object",
      "properties": {
        "next_cursor": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "next_cursor"
      ],
      "additionalProperties": false
    },
    "warnings": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "meta": {
      "type": "object",
      "properties": {
        "listing_id": {
          "type": "string",
          "const": "youtube.videos.comments"
        },
        "version": {
          "type": "string",
          "const": "v1"
        },
        "catalog_release_id": {
          "type": "string",
          "minLength": 1
        },
        "price_book_version": {
          "type": "string",
          "minLength": 1
        },
        "result_status": {
          "type": "string",
          "enum": [
            "complete",
            "empty",
            "partial"
          ]
        },
        "charged_amount": {
          "type": "string"
        },
        "balance_after": {
          "type": "string"
        },
        "currency": {
          "type": "string",
          "const": "CNY"
        }
      },
      "required": [
        "listing_id",
        "version",
        "catalog_release_id",
        "price_book_version",
        "result_status",
        "charged_amount",
        "balance_after",
        "currency"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "code",
    "request_id",
    "message",
    "data",
    "page",
    "warnings",
    "meta"
  ],
  "additionalProperties": false
}

Usage notes

Good for

  • Use it to read public comments for audience feedback or sentiment work.

Not for

  • Do not use it for replies, members-only content, or exhaustive archives.

Known limitations

  • Publish time is relative text (such as "1 day ago"); like and reply counts are text.
  • language_code sets the language of text such as relative times.
  • Only the returned DataXAPI cursor can continue the same query.
  • Nested objects such as the author are returned as upstream sends them, minus tokens, account-binding flags, privacy settings, and tracking fields; avatar and media links inside them may expire.

Billing

¥0.02 per call. Nonempty complete results are charged; empty, partial, and failed results are not.

See all pricing →