Skip to main content
GET /v1/comments returns one page of the comments on one item inside the request. There is no job to poll. YouTube videos are the only object that answers today.
item is required when cursor is absent. A cursor excludes item and sort; pass it alone, optionally with maxAge. The selector names the platform the same way an account selector does: a natural key, or the item’s own URL. See Naming the account for the grammar; a bare OnoNITE-CLc is refused, because nothing in it says which platform to read.

What each platform offers

An item of any other platform answers 422 unsupported_object with a hint: no other platform publishes comments to a visitor who is not signed in.

The page

What you get and what you do not

Every page includes total when YouTube reports it, and totalApproximate is false because that figure is the exact count rather than an estimate. The first page can therefore show the exact total, such as 67808, even when the page contains only a few rows. Likes can be approximate, which is marked by likesApproximate. Each row is a top-level comment. Replies are not returned as comment rows yet. parentId is null in this endpoint’s normal projection. Comments provide relative publishedText; publishedAt is null in the normal projection.

Freshness

maxAge defaults to 15m and accepts up to 1d. A stored comments page confirmed within the window can be served without contacting YouTube. Observations are immutable.

Paging

Pass page.nextCursor back as cursor, alone, optionally with maxAge. Cursors expire after 24 hours. A cursor is not tied to your workspace, but each workspace pays for the pages it is served.

Credits

usage.creditsCharged is the number charged in this response. Errors are always free. At a zero balance a live page answers 402 insufficient_credits before the platform is contacted; a repeat within your maxAge and an empty page are free and keep answering.

Headers

Rate limits

If no platform request can start, the endpoint returns 429 rate_limited with details.retryAfterSeconds. Wait that many seconds before trying again. Errors are free.

Errors

A video with comments turned off is an empty page, not an error, and costs nothing.

From an agent

Use list_comments with item for the first page. Pass page.nextCursor as cursor alone for the next page. The tool returns one page synchronously.

Not in this endpoint

This endpoint does not return comment replies as rows, full item data, transcripts, or media bytes.

Next steps