Video · YouTube
YouTube Comment Scraper API
The YouTube Comment Scraper API gets you live YouTube data the moment you ask, as clean, structured data – ready for your own app, a spreadsheet or an AI assistant. No scraping, nothing to maintain.
100 free requests every month · no credit card · one API key for all platforms
Key facts
Updated
Comments are where a video's audience actually talks back, and a video like Despacito has more than four million of them. The everydata.io YouTube Comments API is a comment scraper for any public video: it reads the comment section – by ID or URL – and returns it as structured JSON: the comment text, who wrote it and whether that author is verified or the creator, how many likes and replies it has, whether the creator hearted or pinned it, and a cursor to pull the replies underneath. Paging is cursor-based like YouTube's own infinite scroll, so you can download a video's comments page by page, and no Google credentials or quota units are required.
- Platform
- YouTube
- Main endpoint
- /youtube-video-comments
- Quota per call
- 1 request
- Free plan
- 100 req / monththen from €30 / month
YouTube data, ready to use
GET /ytb/youtube-video-comments returns videoId plus a comments[] array. Each entry carries commentId, text, publishedTimeText (YouTube's relative label such as "2 days ago" or "4 months ago"), authorName in @handle form, authorChannelId, authorThumbnail, the booleans authorIsVerified and authorIsCreator, likeCount as an integer with likeCountText for the rounded label, replyCount, isHearted, isPinned and replyLevel (0 for a top-level comment, 1 for a reply).
Threads are handled through cursors. The top-level response contains a cursor string for the next page of comments; each comment with replies also carries its own repliesCursor. Pass either value as the cursor parameter on a follow-up call to walk deeper – the same id, a different cursor. Because the section is fetched from the public page, ordering follows what YouTube shows by default (Top comments), with pinned comments first.
- commentId, text and publishedTimeText for every comment
- authorName, authorChannelId, authorThumbnail plus authorIsVerified and authorIsCreator flags
- likeCount and replyCount as integers; likeCountText for display
- isHearted and isPinned to detect creator engagement and pinned announcements
- replyLevel and per-comment repliesCursor to expand reply threads
- Top-level cursor for continuous paging through the full comment section
- Video ID or any YouTube URL accepted; languageCode and countryCode for localised rendering
What teams build with this
Sentiment and topic analysis
Pull the top comments for a product launch video or ad, run them through a classifier and report sentiment shifts over time – replies included via repliesCursor.
Creator community insights
Agencies collect isHearted, isPinned and authorIsCreator to measure how actively a creator engages with their audience compared with peers.
Brand-safety and moderation checks
Before placing sponsorships, scan recent comments for toxicity or spam patterns and check whether the creator moderates (pinned notices, hearted replies).
Audience research
Extract the authorChannelId set from comments across a niche to estimate overlap between channels' active audiences.
Example request and response
Call the endpoint with the video id and no cursor for the first page. Two identifiers you may already have – the videoId from the video-details endpoint or from a search result – work directly. The example below shows the first two comments on Despacito; note the verified @YouTube account replying to the 9-billion-views milestone.
GET /ytb/youtube-video-comments
curl "https://api.everydata.io/ytb/youtube-video-comments?id=kJQP7kiw5Fk&languageCode=en&countryCode=US" \
-H "x-api-key: YOUR_API_KEY"Response (shortened)
{
"responseStatus": "PAGE_FOUND",
"responseMessage": "Page successfully found!",
"videoId": "kJQP7kiw5Fk",
"comments": [
{
"commentId": "UgzKrZFVw83H4eLGQWR4AaABAg",
"text": "17 september despacito ? 😂😂😂",
"publishedTimeText": "2 days ago",
"authorName": "@IRAQ2025_iraqia",
"authorChannelId": "UCk9iiXHQBA6oC0WsAmaOsIg",
"authorIsVerified": false,
"authorIsCreator": false,
"likeCount": 979,
"likeCountText": "979",
"replyCount": 67,
"isHearted": false,
"isPinned": false,
"replyLevel": 0,
"repliesCursor": "Eg0SC2tKUVA3a2l3NUZrGAYygwEaUBIaVWd6S3JaRlZ3ODNINGVMR1FXUjRBYUFCQWciAggAKhhVQ0xw…"
},
{
"commentId": "UgzZfEnq23bUSeNQLX54AaABAg",
"text": "who's here after 9 billion??",
"publishedTimeText": "4 months ago",
"authorName": "@YouTube",
"authorChannelId": "UCBR8-60-B28hp2BmDPdntcQ",
"authorIsVerified": true,
"authorIsCreator": false,
"likeCount": 83000,
"likeCountText": "83K",
"replyCount": 973,
"isHearted": false,
"isPinned": false,
"replyLevel": 0,
"repliesCursor": "Eg0SC2tKUVA3a2l3NUZrGAYygwEaUBIaVWd6WmZFbnEyM2JVU2VOUUxYNTRBYUFCQWciAggAKhhVQ0xw…"
}
],
"cursor": "Eg0SC2tKUVA3a2l3NUZrGAYylAMK1wJnZXRfcmFua2VkX3N0cmVhbXMtLUNxWUJDSUFFRlJlMzBUZ2Ftd0VLbGdFSTJGOFFnQVFZQnlLTEFYdEVnQ3FZVmZxMUJJajhxRDlySm9XX1lxb19IaU5YbWJNZGxDZHJ5c1VIaHJBU2s2UUlnV2xVdTMxdzhTaVpxaG1ZblF…"
}Paging works on two axes. The top-level cursor advances through the comment section – send it back as ?id=kJQP7kiw5Fk&cursor=… to receive the next batch, and stop when the response has no cursor. A comment's repliesCursor opens its thread: pass it as the cursor parameter and the returned comments[] contain the replies with replyLevel 1. Cursors are opaque tokens tied to the video; store them only for the duration of a crawl.
publishedTimeText is a relative label, because that is all YouTube prints in the comment section. If you need absolute dates, record the time of your request and convert "2 days ago" on your side. likeCount is exact for small numbers; for large counts YouTube shows a rounded figure (83K) and likeCount reflects that rounding, as you can see in the second example comment.
Videos with comments disabled return an empty comments[] array with PAGE_FOUND, not an error. Private or removed videos return 404. Expect roughly 20 comments per page; a full crawl of a video with 4.3 million comments is therefore not something to do casually – most analyses sample the first few hundred top comments plus the replies of the most-liked ones.
Related endpoints
Video comments. Paged comments.
Video details. Metadata for a video id or URL.
Search videos. Keyword search with cursor paging.
Pay per request, every platform included
Each page of comments – top-level or replies – is one request. Sampling the first five pages of 200 videos costs 1,000 requests, well inside the Starter plan (5,000 requests, €30). Larger studies fit Production (50,000, €80) with 100 requests per minute, so a 50-page crawl of one video takes under a minute. Failed upstream fetches are not billed.
- Free
- 100 req / month
- Starter
- 5,000 req · €30
- Production
- 50,000 req · €80
- Business
- 300,000 req · €300
YouTube Comment Scraper API: frequently asked questions
How do I fetch replies to a specific comment?
Take that comment's repliesCursor and call the same endpoint with id and cursor set to it. The returned comments[] contain the replies with replyLevel 1 and, if the thread is long, a further cursor.
Can I sort comments by newest instead of top?
The endpoint returns the order YouTube renders publicly by default – Top comments, pinned first. A newest-first sort is not exposed as a parameter.
Are exact timestamps available for comments?
No. YouTube only shows relative labels in the comment section (publishedTimeText such as "2 days ago"). Record the fetch time and derive an approximate absolute date if you need one.
What happens when comments are turned off?
You receive responseStatus PAGE_FOUND with an empty comments[] array and no cursor. That is the reliable signal that the creator has disabled comments for the video.
Is scraping YouTube comments allowed?
everydata.io returns only publicly visible comments without signing in or bypassing any restriction. Comment text and author names are personal data in many jurisdictions, so aggregate and anonymise for analytics rather than republishing threads.
Related use cases
Read your first comment thread
Sign up for free, call GET /ytb/youtube-video-comments?id=kJQP7kiw5Fk and page through replies with the cursor – no Google credentials required.