YouTube comments data API

One comment, or reply, posted on a YouTube video. To get these records, set mode to comments, which reads videoUrls, channelUrls, includeReplies, and commentSort.

Record type
comment
Fields
23
From
$1.80 per 1,000 records
Billed as
comment

Example request and record

The request below is the one this record answers, taken from a real run. The names, usernames, photos and contact details of people in it are fictional.

Example YouTube comment recordExample
{  "source": "youtube",  "type": "comment",  "commentId": "Ugzroga5yT3Eivz5FIN4AaABAg",  "url": "https://www.youtube.com/watch?v=9bZkp7q19f0&lc=Ugzroga5yT3Eivz5FIN4AaAB…  "videoId": "9bZkp7q19f0",  "parentCommentId": null,  "isReply": false,  "text": "6 billion views btw.",  "publishedTimeText": "2 minutes ago",  "publishedAt": "2026-09-20T19:37:34.604Z",  "isEdited": false,  "likeCount": 1,  "replyCount": 0,  "isPinned": false,  "isHearted": false,  "heartedBy": null,  "authorName": "@example_user_1",  "authorChannelId": "UCexample100000000000000",  "authorUrl": "https://www.youtube.com/@example_user_1",  "authorAvatar": "https://example.com/avatars/1.jpg",  "authorIsVerified": false,  "authorIsCreator": false,  "authorIsArtist": false,  "translateable": true,  "videoTitle": "PSY - GANGNAM STYLE(강남스타일) M/V",  "totalCommentCount": 5464835,  "id": "Ugzroga5yT3Eivz5FIN4AaABAg",  "event": "comment",  "collectedAt": "2026-09-20T19:39:34.604Z"}

Each field name links to its row in the field table. Long values are shortened.

Fields

Every field of comment records, read from real YouTube records. Where a field does not apply to an item it is null or an empty list, not left out. Each record starts with the envelope: source, type, event, id, url, collectedAt.

23 fields on comment records, besides the envelope
FieldTypeWhat it holdsPresent on
videoIdstringID of the video this comment belongs to.All
likeCountintegerLike count as an integer, null when unavailable.All
commentIdstringComment's ID.All
parentCommentIdnullID of the comment this one replies to, or null for a top-level comment.All
isReplybooleanTrue when the comment is a reply to another comment rather than a top-level comment.All
textstringComment body text, or null.All
publishedTimeTextstringPublish time as YouTube's own relative display text, for example "3 weeks ago (edited)".All
publishedAtstringBest-effort ISO 8601 timestamp derived from the relative publish label; null when the label can't be parsed.All
isEditedbooleanTrue when the comment text carries a "(edited)" marker.All
replyCountintegerNumber of replies to this comment, as an integer; 0 when there are none.All
isPinnedbooleanTrue when the comment is pinned to the top of its thread.All
isHeartedbooleanTrue when the video owner hearted the comment.All
heartedBynull | stringChannel handle of whoever hearted the comment, usually the video owner; null when not hearted.All
authorNamestringCommenter's display name, or null.All
authorChannelIdstringCommenter's channel ID, or null.All
authorUrlstringhttps URL of the commenter's channel, or null.All
authorAvatarstringURL of the commenter's avatar image, or null.All
authorIsVerifiedbooleanTrue when the commenter's channel has YouTube's verified badge.All
authorIsCreatorbooleanTrue when the commenter is the video's own uploader.All
authorIsArtistbooleanTrue when the commenter is tagged as the video's artist.All
translateablebooleanTrue when YouTube offers a translate button for this comment.All
videoTitlestringTitle of the video this comment belongs to.All
totalCommentCountintegerTotal comment count for the video this comment belongs to, as an integer, or null.All

Options

These inputs and switches change what comes back. Every request also takes maxItems and maxItemsPerInput.

OptionTypeDefaultWhat it does
videoUrlsarraynonewatch?v=, youtu.be, /shorts/ URLs or bare 11-char ids. Batch as many as you like.
channelUrlsarraynonee.g. @example_channel, https://www.youtube.com/@example_channel, UCexample000000000000000. In video / comments / transcript mode every video of the channel is processed (up to Max results per input).
includeRepliesbooleanfalseIn comments mode, also fetch the reply threads under each top-level comment.
commentSortstring"top"In comments mode, how to order the comments: top or newest first.
maxItemsPerInputinteger500Maximum results per input: videos per channel/playlist, comments per video, or results per query.

YouTube comments pricing

You pay once for each record you receive, at the price of the event it carries. A request that returns nothing costs nothing.

EventPer 1,000 recordsPer record
comment$1.80$0.00180

Edge cases

  • A video with comments turned off returns no record and costs nothing.
  • With includeReplies: true, the replies under each comment come back too, each billed as its own comment record.
  • maxItemsPerInput caps the comments per video, 500 unless you set it.

Related