YouTube Comments API and MCP — Comments and Replies on a Video
Send a YouTube video URL and this source returns its comments and replies as data: author handle, text, likes, reply count, whether the creator hearted it, whether the author is the channel owner, and when it was posted.
- You send
- A YouTube video URL
- You get back
- Comments and replies with author, text, likes and reply count
- Coverage
- Comments on public YouTube videos with comments switched on.
- Price
- 2 points per returned comment, up to 1,000 per request — $2 per 1,000
- Billed per comment actually returned, capped by max_comments. A video with comments turned off costs nothing.
Ways to get this data
Three approaches teams use today, and where each one runs into trouble.
| Approach | What it takes | Cost | Trade-off |
|---|---|---|---|
| Reading comments by hand | Scroll and copy | Free, and slow | Not workable past a few dozen comments |
| The YouTube Data API | A Google Cloud project, API key and quota | Free within a daily quota | Paginated and quota-limited across many videos |
| NeuralVerge | One request per video | $2 per 1,000, misses not billed | Publish times come back relative ("9 months ago"), not as exact timestamps |
What you get back
Every field in the example response below.
| Field | Type | Description |
|---|---|---|
sort_by | string | The order used: top comments, or newest first. |
total_items | number | How many comments came back. |
items[].id | string | YouTube's comment ID. |
items[].type | string | comment or reply. |
items[].reply_to_id | string | null | The parent comment, for replies. |
items[].author | string | The commenter's handle. |
items[].text | string | Comment text. |
items[].published_time_text | string | When it was posted, as YouTube shows it (e.g. 9 months ago). |
items[].vote_count | number | Likes on the comment. |
items[].reply_count | number | Replies to the comment. |
items[].has_creator_heart | boolean | Whether the creator hearted the comment. |
items[].author_is_channel_owner | boolean | Whether the channel owner wrote it. |
items[].video_title | string | The video the comment is on. |
items[].video_comments_count | number | Total comments on the video. |
Example response
A real response, as returned.
{
"session_id": "e72bce7d-3a66-4a78-b50a-88d1bcbb91fe",
"kind": "youtube_comments",
"url": "https://www.youtube.com/watch?v=RIRyuq-AKOU",
"max_comments": 2,
"sort_by": "TOP_COMMENTS",
"partial": false,
"machine": {
"total_items": 2,
"items": [
{
"id": "Ugz_0evfWBOA6L1RlKR4AaABAg",
"type": "comment",
"reply_to_id": null,
"author": "@dylan…",
"text": "The AI avatar made me lose trust i gotta be honest. Just letting the account owner know. Im sure the info is great and in-depth but it begs was this made entirely with AI and not actually opinions and experience developed by a human.",
"published_time_text": "9 months ago",
"vote_count": 62,
"reply_count": 5,
"has_creator_heart": false,
"author_is_channel_owner": false,
"video_id": "RIRyuq-AKOU",
"video_title": "Best CRM Software for Small Business for 2026 (Top 5 Tested & Compared)",
"video_comments_count": 39
},
{
"id": "UgwXgsbBvTJvsJo51kR4AaABAg",
"type": "comment",
"reply_to_id": null,
"author": "@beth…",
"text": "Felt like a review video at first, then became an obvious GHL advert.",
"published_time_text": "6 months ago",
"vote_count": 27,
"reply_count": 1,
"has_creator_heart": false,
"author_is_channel_owner": false,
"video_id": "RIRyuq-AKOU",
"video_title": "Best CRM Software for Small Business for 2026 (Top 5 Tested & Compared)",
"video_comments_count": 39
}
],
"errors": []
},
"total_points": 4
}How to run it
The same lookup works from the app, the API, or as a tool an agent can call mid-task.
This endpoint is synchronous: the call blocks until the lookup completes and returns the records directly. If a lookup hits its time budget before finishing, the response comes back with partial: true and whatever it collected so far — re-run with smaller limits for a complete result. url is required. Optional: max_comments (1-1,000, default 20), sort_by (TOP_COMMENTS; leave it out for newest first), newer_than (a date or a period like 30 days — returns newest first).
curl -X POST https://api.neuralverge.ai/functions/v1/run-youtube-comments \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "url": "https://www.youtube.com/watch?v=RIRyuq-AKOU", "max_comments": 100, "sort_by": "TOP_COMMENTS" }'What teams use it for
Where this field shows up in an actual workflow.
Read what viewers say under reviews of your product or a competitor's.
Collect the doubts and questions viewers raise about a category.
See how an audience reacted to a launch video or webinar.
Check whether a creator's audience trusts them before a sponsorship.
Coverage, freshness and limits
What this source covers, how fresh it is, and where it stops.
Comments on public YouTube videos with comments switched on.
Read at request time.
This source returns publicly posted comments, which are written by private individuals. Use them for legitimate business purposes under your own lawful basis, honour deletion and opt-out requests, and check the acceptable use policy. Every record is stamped with the video it was read from and a session id you can trace.
- —Publish times are relative text ("6 months ago"), not exact timestamps.
- —Videos with comments turned off return nothing — and nothing is billed.
- —Authors are handles only; no profile details come back.
Questions, answered
Yes — every Data Source endpoint, including this one, is synchronous: the lookup runs inside the request and the result comes back in the same response, no polling. If a lookup hits its time budget before finishing, the response comes back with partial: true and whatever records it collected so far — re-run with smaller limits to get a complete result instead of a partial one.
Related sources
Try youtube comments on your own data
One request format across every source in the catalog.