YouTube comments scraper
$0.00035 / comment
$0.35 / 1K · pay per delivered comment
A YouTube comments scraper that takes video ids or URLs and returns the public comments as rows, in YouTube’s Top order or newest first: the text, the author’s handle and channel, verified and channel-owner flags, when it was posted, likes and replies, whether the creator hearted it, and a direct link. No YouTube API key or quota, billed per comment delivered.
$0.00035 per delivered comment · $2 free every month · Failed runs never billed
What it does
What a YouTube comments scraper does
Comments are where an audience says what it thinks in its own words: the questions it asks, the objections, the feature it wants, the product it compares you with. Read across a set of videos, they are a survey nobody had to send. Each row carries what makes one comment weigh more than another: its likes, its replies, whether the creator hearted it, whether the author is verified or is the channel itself, and the video’s total, so you know how much of the conversation you are reading.
Top is not “oldest” or “most liked”. On 30 October 2026 we read “Never Gonna Give You Up”, 2.4M comments: of the first 20 in Top order, 13 were written six or seven years ago, with up to 1M likes, but 5 were from the previous week, with 0 to 715 likes, and 2 from two months before. Ask for top to read what YouTube puts in front of viewers, or newest to follow a video as it is being discussed.
Inputs
The whole request. Anything you leave out falls back to the default shown in the catalog.
| Input | Type | Required | What it does |
|---|---|---|---|
videos | string[] | yes | Video ids, or watch, shorts and youtu.be URLs, one per line, up to 20. |
sort | string | no | top (YouTube's default) or newest. |
country | string | no | ISO 3166-1 alpha-2 code — proxy exit geo and Google locale (gl). Omit for the default pool. |
lang | string | no | Interface language (hl), e.g. en, it, de. |
max_results | integer | no | How many comments to deliver at most (1–1000). You pay only for delivered comments. |
Outputs — 18 fields, one row per comment
What one comment looks like
Every delivered comment carries these fields. Nullable means the source did not publish it — the field stays empty instead of being guessed.
| Field | Type | What it holds |
|---|---|---|
video_id | string | 11-char video id. |
video_url | string | Watch URL. |
video_comment_count | integer · nullable | The video’s total comment count. |
position | integer | 1-based position in the video's list, in the requested order. |
comment_id | string | Comment id. |
url | string | Direct link to the comment. |
text | string | Comment text. |
author | string · nullable | Author handle (@…). |
author_channel_id | string · nullable | Author channel id (UC…). |
author_url | string · nullable | Author channel URL. |
author_is_verified | boolean | Verified author. |
author_is_creator | boolean | The author is the video's channel. |
published_label | string · nullable | How long ago it was posted, as YouTube prints it (6 years ago). |
edited | boolean | The comment was edited. |
likes | integer | Likes as YouTube shows them (106K → 106000). |
reply_count | integer | Replies to the comment. |
hearted_by_creator | boolean | The channel owner hearted the comment. |
rank | integer | 1-based delivery order across the run. |
Integration
One POST, typed rows
Base URL https://api.quanticdata.io/v1, Bearer auth, the same key as every other Data API. Endpoint: POST /v1/.
curl -X POST https://api.quanticdata.io/v1/scraper/collectors/youtube_comments/run \
-H "Authorization: Bearer $QD_API_KEY" \
-H "Content-Type: application/json" \
-d '{"videos":["dQw4w9WgXcQ"],"max_results":50}'
Example response
$ curl $QD/youtube_comments/run \
-H "Authorization: Bearer $QD_API_KEY" \
-d '{"videos": ["dQw4w9WgXcQ"], "max_results": 50}'
{ "status": "done", "count": 50,
"results": [
{
"author": "…",
"text": "…",
"likes": "…",
"published_label": "…" } ],
"cost": 0.0175 }
# 50 comments × $0.00035 · nothing delivered, nothing charged
Try it
YouTube comments, running now
Change the input and run it against the live collector — nothing to install, no sign-up.
Run it from your own code, on your own inputs
Same collector, same rows — $2 of free API credit every month, no card.
Pricing
YouTube Comments Scraper pricing
$0.00035 per delivered comment. A run that delivers nothing costs nothing, and the $2 monthly allowance covers about 5,714 comments before you spend anything.
Pay as you go
- $2 free credit / month
- 60 requests / min
- List unit prices
Starter
- $15 free credit / month
- 300 requests / min
- 10% off unit prices
Growth
- $50 free credit / month
- 600 requests / min
- 20% off unit prices
Scale
- $250 free credit / month
- 1,200 requests / min
- 30% off unit prices
Same wallet, same key and same $2 monthly allowance as every other Data API. Prices are launch pricing read live from the billing config — GET /v1/scraper/collectors returns the price your key actually pays.
What people build with the YouTube comments scraper
Three shapes of work this endpoint was designed around.
Audience research
Pull the top comments from the videos your market watches and read the questions and complaints that come back again and again.
Product and brand feedback
Comments under reviews and tutorials of your product, or a competitor’s, are unsolicited feedback with the likes that show how many agree. Add the YouTube video data API for each video’s views and likes.
Sentiment and topic datasets
Text with likes, replies and the creator’s heart per comment: labelled signal for a sentiment model or a topic study, next to what the Reddit comments API gives for threads.
YouTube Comments Scraper versus rolling your own
The differences that actually cost time when you build this in-house.
| DIY scraper | This collector | |
|---|---|---|
| Access | API key, a Google project and a daily quota | One API key, no YouTube quota |
| Order | Whatever the endpoint returns | Top or newest, as on YouTube |
| Weight of a comment | Text only | Likes, replies, creator heart, verified and owner flags |
| Several videos | One loop per video | Up to 20 videos per run, one volume shared across them |
| Link to the comment | Build it yourself | A direct link on every row |
| Billing | Requests, successful or not | Only delivered comments |
Sources and standards
The platform documentation and standards this collector is built against — check any claim on this page against the primary source:
Do I need a YouTube API key to scrape comments?
No. The collector does not use the YouTube Data API, so there is no Google key, no project and no daily quota. You need only a QuanticData API key.
How many YouTube comments can I scrape at once?
Up to 1,000 comments per run, shared across up to 20 videos; the default is 100. Run it again with the next videos, or with newest, for more.
Is YouTube comments scraping legal?
The collector reads public comments that anyone can see on the video page, without logging in. How you may use them depends on YouTube’s Terms of Service and on the law where you work, so check both for your use case.
Can I use it through an MCP server?
Yes. The collector is one of the tools of our MCP server, so an agent in Claude, Cursor or another MCP client can ask for the comments of a video and work on the rows directly.
Is there a free YouTube comments scraper?
Every account gets $2 of credit every month with no card, which is about 5,714 delivered comments on this endpoint at $0.00035 each. It renews monthly, and a run that delivers nothing is never billed.
How much does one run cost?
Multiply the rows you actually receive by $0.00035. A run capped at 1000 comments — the maximum for this collector — costs $0.35 if every row comes back, and less when the listing has fewer. Volume tiers take up to 30% off, and GET /v1/scraper/collectors returns the price your key actually pays.
Run the YouTube comments scraper now
$2 of free credit every month, no card. Your key returns its own prices from GET /v1/scraper/collectors.
