Skip to content

Comments

GET /v1/youtube/video/comments

Fetches comments and replies from a YouTube video, including each comment's text content, author details, like count, reply count, and publish date. Supports ordering by top or newest, and paginating with continuationToken. Limited to approximately 1,000 top comments or 7,000 newest comments.

Authentication

All requests require the x-api-key header. Get your key at scrapecreators.com.

Query Parameters

NameTypeRequiredDescriptionExample
urlstringyesYouTube video URLhttps://www.youtube.com/watch?v=dQw4w9WgXcQ
continuationTokenstringnoContinuation token to get more comments. Get 'continuationToken' from previous response.4qmFsgKrCBIYVUNkRkpXVWE0M3NtUm00SXBIQnB
orderenum(top, newest)noOrder of commentstop

Example Request

curl

bash
curl 'https://api.scrapecreators.com/v1/youtube/video/comments?url=https://www.youtube.com/watch?v=dQw4w9WgXcQ' \
  -H 'x-api-key: $SCRAPECREATORS_API_KEY'

Node / TypeScript

js
const params = new URLSearchParams({ url: 'https://www.youtube.com/watch?v=dQw4w9WgXcQ' });
const res = await fetch(`https://api.scrapecreators.com/v1/youtube/video/comments?${params}`, {
  headers: { 'x-api-key': process.env.SCRAPECREATORS_API_KEY }
});
const data = await res.json();
console.log(data);

Python

python
import os, requests
r = requests.get(
    'https://api.scrapecreators.com/v1/youtube/video/comments',
    headers={'x-api-key': os.environ['SCRAPECREATORS_API_KEY']},
    params={'url': 'https://www.youtube.com/watch?v=dQw4w9WgXcQ'},
)
r.raise_for_status()
print(r.json())

CLI

bash
scrapecreators youtube video-comments --help

Example Response

json
{
  "comments": [
    {
      "id": "UgwVfRopfS2F-WB3aF14AaABAg",
      "content": "I love how in the middle he said \"I've been able to work with 2 great coaches... Pete and Coach Tomlin\"... Side shade to Coach Sean Payton, love it :)",
      "publishedTimeText": "9 days ago",
      "publishedTime": "2025-01-23T23:14:02.948Z",
      "replyLevel": 0,
      "author": {
        "name": "@SimonT80",
        "channelId": "UC8JC3uSUmmXTCTKl-bgr1DA",
        "isVerified": false,
        "isCreator": false,
        "avatarUrl": "https://yt3.ggpht.com/ytc/AIdro_lQ_2v9lDqwRrmdvEBfDNyFOvgQICl68X6WFkwZ5KI=s88-c-k-c0x00ffffff-no-rj",
        "channelUrl": "https://youtube.com/@SimonT80"
      },
      "engagement": {
        "likes": 110,
        "replies": 5
      },
      "repliesContinuationToken": "Eg0SC2RRdzR3OVdnWGNRGAYy1AEK..."
    }
  ],
  "continuationToken": "Eg0SCzVFV2F4bVd...."
}

Credits

Most ScrapeCreators endpoints consume 1 credit per successful response. Some heavier endpoints (transcripts, AI-driven enrichment, ad detail lookups) may cost more. Check GET /v1/credit-balance for your remaining balance.

Errors

StatusMeaningAction
200Success.Use the JSON payload.
400Invalid or missing parameter.Verify required parameters and value format.
401Missing or invalid x-api-key.Pass a valid API key in the header.
402Out of credits.Top up at scrapecreators.com or wait for plan reset.
404Resource not found or private.Confirm the handle, URL, or id and that the resource is public.
429Rate limited.Backoff and retry with exponential delay.
500Server error or upstream platform failure.Retry with backoff; report persistent errors to support.