logoPandorLabs
social data api

YouTube logoYouTube

Channels, videos, shorts, lives, playlists, community posts, transcripts, comments and search.

Channel profile1 request
Channel uploads1 request
Channel playlists1 request
Channel live streams1 request
Channel community posts1 request
Channel Shorts1 request
Video or Short details1 request
Video transcript1 request
Sponsors mentioned in a video1 request
Search YouTube1 request
Search autocomplete1 request
Videos for a hashtag1 request
Video comments1 request
Replies to a comment1 request
Trending Shorts1 request
Playlist contents1 request
Single community post1 request
GET/v1/youtube/channel

Channel profile

1 request

Returns the profile of a YouTube channel: name, subscriber count (subscribers), avatar images, total videos and views, join date, tags, and linked socials such as Twitter and Instagram. Identify the channel by channelId, handle, or full URL. Where available it also includes country, email and links to external stores; contact fields reflect what the channel published on its public profile.

Query parameters

channelId
string
YouTube channel ID. Provide this, a handle, or a URL.
handle
string
YouTube channel handle. Provide this, a channelId, or a URL.
url
string
Full YouTube channel URL. Provide this, a channelId, or a handle.
cache_max_age
string
Accept a stored response up to this age. Inside that window the answer is free and comes back with cached: true and a cached_at time; past it, the request runs live for 1 request.

1d3d7d14d30d

curl "https://api.pandorlabs.com/v1/youtube/channel" \  -H "Authorization: Bearer $PANDORLABS_KEY"
Example response

Response

{
  "success": true,
  "credits_charged": 1,
  "channelId": "UCxcTeAKWJca6XyJ37_ZoKIQ",
  "channel": "http://www.youtube.com/@ThePatMcAfeeShow",
  "name": "The Pat McAfee Show",
  "avatar": {
    "image": {
      "sources": [
        {
          "url": "https://yt3.googleusercontent.com/ytc/AIdro_nBgMGIxgHehCAlUUepEhd9Yooi1I55k6IF2WExl-v8Q-c=s72-c-k-c0x00ffffff-no-rj",
          "width": 72,
          "height": 72
        }
      ],
      "processor": {
        "borderImageProcessor": {
          "circular": true
        }
      }
    },
    "avatarImageSize": "AVATAR_SIZE_XL",
    "loggingDirectives": {
      "trackingParams": "CC0Q6OENIhMIkInyhaSPiwMV9wfWAB3aoR9h",
      "visibility": {
        "types": "12"
      }
    }
  },
  "description": "",
  "subscriberCount": 2750000,
  "subscriberCountText": "2.75M subscribers",
  "videoCountText": "9,221 videos",
  "viewCountText": "2,170,355,382 views",
  "joinedDateText": "Joined Aug 23, 2017",
  "tags": "pat mcafee, football, pat mcafee show, the pat mcafee show, pat mcafee podcast, pat mcafee clips, pat mcafee reacts, pat mcafee highlights, pat mcafee live, pat mcafee show live, pat mcafee podcast, nfl, nba, nhl, mlb, ufc, sports",
  "email": null,
  "store": "https://store.patmcafeeshow.com",
  "twitter": "https://twitter.com/PatMcAfeeShow",
  "instagram": "https://instagram.com/patmcafeeshow",
  "links": [
    "https://store.patmcafeeshow.com"
  ],
  "country": "United States"
}
GET/v1/youtube/channel-videos

Channel uploads

1 request

Lists a channel's uploaded videos page by page. Each video has its title, URL, publish date, thumbnail, duration, view count (views) and description. Choose latest or popular ordering and follow continuationToken to walk the full list. You can optionally request extras such as comment count, like count and description per video.

Query parameters

channelId
string
YouTube channel ID.
handle
string
YouTube channel handle.
sort
string
Ordering of results: latest or popular.

latestpopular

continuationToken
string
Token for the next page, taken from continuationToken in the previous response.
is_paid_promotions
string
Pass 'true' to query YouTube's public search surface for paid product placement, sponsorship and endorsement; results are regular videos whose creator declared a paid promotion. Not combinable with uploadDate, filter, type, sortBy, duration, or includeExtras.
includeExtras
string
Adds like count, comment count and description to each video; use /v1/youtube/video for full details.
curl "https://api.pandorlabs.com/v1/youtube/channel-videos" \  -H "Authorization: Bearer $PANDORLABS_KEY"
Example response

Response

{
  "success": true,
  "credits_charged": 1,
  "videos": [
    {
      "type": "video",
      "id": "5EWaxmWgQMI",
      "url": "https://www.youtube.com/watch?v=5EWaxmWgQMI",
      "title": "Russell Wilson Hopes To Finish Career As A Steeler, Reflects On NFL Career With Pat McAfee",
      "description": "Welcome to The Pat McAfee Show LIVE from Noon-3PM EST Mon-Fri. You can also find us live on ESPN, ESPN+, & TikTok!\n\nBecome a #McAfeeMafia member! https://www.youtube.com/channel/UCxcTeAKWJca6XyJ37_...",
      "thumbnail": "https://i.ytimg.com/vi/5EWaxmWgQMI/hqdefault.jpg?sqp=-oaymwEnCNACELwBSFryq4qpAxkIARUAAIhCGAHYAQHiAQoIGBACGAY4AUAB&rs=AOn4CLBZIBEJGcYDrduIZJpaSmYHcIHJ6g",
      "channel": {
        "title": "",
        "thumbnail": null
      },
      "viewCountText": "110,447 views",
      "viewCountInt": 110447,
      "publishedTimeText": "9 days ago",
      "publishedTime": "2025-01-23T22:48:53.914Z",
      "lengthText": "37:25",
      "lengthSeconds": 2245,
      "badges": []
    }
  ],
  "continuationToken": "4qmFsgLlFhIYV...."
}
GET/v1/youtube/channel/playlists

Channel playlists

1 request

Returns the playlists shown on a channel's Playlists tab, each with playlist ID, title, video count, thumbnail, channel info and playlist URL, plus continuationToken if more results exist. Start with a handle or channelId, then send continuationToken to fetch further pages.

Query parameters

channelId
string
YouTube channel ID.
handle
string
YouTube channel handle.
continuationToken
string
Token for the next page of playlists, from continuationToken in the previous response.
curl "https://api.pandorlabs.com/v1/youtube/channel/playlists" \  -H "Authorization: Bearer $PANDORLABS_KEY"
Example response

Response

{
  "success": true,
  "credits_charged": 1,
  "playlists": [
    {
      "type": "playlist",
      "id": "PLoSWVnSA9vG8hI-SUpAimvYJrPh-PRRvp",
      "title": "If You Survive, You Win",
      "thumbnail": "https://i.ytimg.com/vi/tnTPaLOaHz8/hqdefault.jpg",
      "playlistUrl": "https://www.youtube.com/playlist?list=PLoSWVnSA9vG8hI-SUpAimvYJrPh-PRRvp",
      "videoId": "tnTPaLOaHz8",
      "videoUrl": "https://www.youtube.com/watch?v=tnTPaLOaHz8",
      "videoCount": 4,
      "channel": {
        "id": "UCX6OQ3DkcsbYNE6H8uQQuVA",
        "title": "MrBeast",
        "handle": "MrBeast",
        "channelUrl": "https://www.youtube.com/@MrBeast"
      }
    }
  ],
  "continuationToken": "4qmFsgLlFhIYV...."
}
GET/v1/youtube/channel/lives

Channel live streams

1 request

Returns current and past streams from a channel's Live tab, each with title, URL, view count, thumbnail, duration and publish time, plus continuationToken if more results exist. Start with a handle or channelId, then send continuationToken to fetch further pages.

Query parameters

channelId
string
YouTube channel ID.
handle
string
YouTube channel handle.
continuationToken
string
Token for the next page of streams, from continuationToken in the previous response.
curl "https://api.pandorlabs.com/v1/youtube/channel/lives" \  -H "Authorization: Bearer $PANDORLABS_KEY"
Example response

Response

{
  "success": true,
  "credits_charged": 1,
  "lives": [
    {
      "type": "live",
      "id": "JpVtso3S9rM",
      "url": "https://www.youtube.com/watch?v=JpVtso3S9rM",
      "title": "IShowSpeed Live Stream",
      "thumbnail": "https://i.ytimg.com/vi/JpVtso3S9rM/hqdefault.jpg",
      "channel": {
        "id": null,
        "title": null,
        "handle": null,
        "thumbnail": null
      },
      "viewCountText": "1.2M views",
      "viewCountInt": 1200000,
      "publishedTimeText": "Streamed 2 days ago",
      "lengthText": "2:14:52",
      "lengthSeconds": 8092,
      "badges": []
    }
  ],
  "continuationToken": "4qmFsgLlFhIYV...."
}
GET/v1/youtube/channel/community-posts

Channel community posts

1 request

Returns posts from a channel's Posts tab, each with post ID, URL, content, images, like count, any attached video, publish time and channel info, plus continuationToken if more results exist. Start with a handle or channelId, then send continuationToken to fetch further pages.

Query parameters

channelId
string
YouTube channel ID.
handle
string
YouTube channel handle.
continuationToken
string
Token for the next page of posts, from continuationToken in the previous response.
curl "https://api.pandorlabs.com/v1/youtube/channel/community-posts" \  -H "Authorization: Bearer $PANDORLABS_KEY"
Example response

Response

{
  "success": true,
  "credits_charged": 1,
  "posts": [
    {
      "id": "UgkxfMvMnSnV3Ww9HwAY2wFGmVevmhRaYAYO",
      "url": "https://www.youtube.com/post/UgkxfMvMnSnV3Ww9HwAY2wFGmVevmhRaYAYO",
      "channel": {
        "id": "UCX6OQ3DkcsbYNE6H8uQQuVA",
        "title": "MrBeast",
        "url": "https://www.youtube.com/@MrBeast",
        "handle": "MrBeast"
      },
      "content": "New video is live",
      "image": "https://yt3.ggpht.com/example-image=s640-c-fcrop64",
      "images": [
        "https://yt3.ggpht.com/example-image=s640-c-fcrop64"
      ],
      "likeCountText": "250K",
      "likeCount": 250000,
      "publishedTimeText": "2 days ago",
      "publishedTime": "2026-05-24T12:00:00.000Z",
      "video": {
        "id": "tnTPaLOaHz8",
        "title": "If You Survive, You Win",
        "thumbnail": "https://i.ytimg.com/vi/tnTPaLOaHz8/hqdefault.jpg",
        "url": "https://www.youtube.com/watch?v=tnTPaLOaHz8",
        "viewCountText": "10M views",
        "viewCountInt": 10000000,
        "publishedTimeText": "2 days ago",
        "lengthText": "18:42",
        "lengthSeconds": 1122
      }
    }
  ],
  "continuationToken": "4qmFsgLlFhIYV...."
}
GET/v1/youtube/channel/shorts

Channel Shorts

1 request

Lists a channel's Shorts page by page in the shorts array. Each short has title, URL, likes, view count (views), comments, description and publishDate. publishDate is an ISO 8601 timestamp including the offset if YouTube reveals the precise time, and null otherwise; date-only strings are never returned. Order by newest or popular and follow continuationToken to reach the rest.

Query parameters

handle
string
YouTube channel handle. Provide this or channelId.
channelId
string
YouTube channel ID. Provide this or handle.
sort
string
Ordering of results: newest or popular.

newestpopular

continuationToken
string
Token for the next page, taken from continuationToken in the previous response.
curl "https://api.pandorlabs.com/v1/youtube/channel/shorts" \  -H "Authorization: Bearer $PANDORLABS_KEY"
Example response

Response

{
  "success": true,
  "credits_charged": 1,
  "videos": [],
  "channels": [],
  "playlists": [],
  "shorts": [
    {
      "type": "short",
      "id": "VREVC0wXPfs",
      "url": "https://www.youtube.com/watch?v=VREVC0wXPfs",
      "title": "This idea validation formula has made him $500K from iOS apps",
      "thumbnail": "https://img.youtube.com/vi/VREVC0wXPfs/maxresdefault.jpg",
      "viewCountText": "17,066",
      "viewCountInt": 17066,
      "description": "Most founders think their app isn’t selling because of market conditions.\n\nIt’s not.\n\nThis founder sold multiple apps and noticed the same pattern every time: Great products but broken deals.\n\nNot because the app was bad but because founder…",
      "commentCountText": "2",
      "commentCountInt": 2,
      "likeCountInt": 495,
      "likeCountText": "495",
      "publishDate": "2026-04-22T10:44:35-07:00",
      "genre": "People & Blogs",
      "durationMs": 37000,
      "durationFormatted": "00:00:37"
    }
  ],
  "shelves": [],
  "lives": [],
  "continuationToken": "4qmFsgK7DBIY....."
}
GET/v1/youtube/video

Video or Short details

1 request

Returns full metadata for a YouTube video or a Short: title, description, thumbnail, duration, publish date, view count (views), comment count, like count (likes), keywords, genre, collaborators, chapters, and the available caption tracks. isPaidPromotion is true when YouTube flags paid promotion and false otherwise. Recommended videos appear in watchNextVideos alongside the uploader's channel info. When YouTube publishes its Most replayed graph publicly, most_replayed contains normalized buckets under markers and the spans YouTube highlights under ranges; otherwise it is null. According to YouTube the graph can be missing if the channel carries active strikes, the content might be inappropriate, the video is very new or has few views, or it is ineligible for other reasons, and YouTube publishes no fixed age or view thresholds. Because the API reads YouTube only as a logged-out visitor, age-restricted videos fail with a 403 whose message is "This video is age restricted".

Query parameters

url
stringrequired
Link to the YouTube video or short.
language
string
Two-letter language code such as 'en', 'es' or 'fr', sent as Accept-Language. YouTube localisation may ignore it.
cache_max_age
string
Accept a stored response up to this age. Inside that window the answer is free and comes back with cached: true and a cached_at time; past it, the request runs live for 1 request.

1d3d7d14d30d

curl "https://api.pandorlabs.com/v1/youtube/video?url=https%3A%2F%2Fyoutu.be%2FgTCi7PaOPLY" \  -H "Authorization: Bearer $PANDORLABS_KEY"
Example response

Response

{
  "success": true,
  "credits_charged": 1,
  "id": "Y2Ah_DFr8cw",
  "thumbnail": "https://img.youtube.com/vi/Y2Ah_DFr8cw/maxresdefault.jpg",
  "url": "https://www.youtube.com/watch?v=Y2Ah_DFr8cw",
  "publishDate": "2019-02-22T03:19:54-08:00",
  "type": "video",
  "title": "Inside the NBA: Chuck Trolls Jussie Smollett \"Do not commit crimes with checks, use cash!\"",
  "description": null,
  "descriptionLinks": [],
  "commentCountText": "358",
  "commentCountInt": 358,
  "likeCountText": "4043",
  "likeCountInt": 4043,
  "viewCountText": "372,864",
  "viewCountInt": 372864,
  "publishDateText": "Feb 22, 2019",
  "collaborators": [],
  "channel": {
    "id": "UCWH3hing1Qb4LnkRfQdxsxQ",
    "url": "https://www.youtube.com/@afroballer8906",
    "handle": "afroballer8906",
    "title": "Afroballer"
  },
  "chapters": [],
  "watchNextVideos": [
    {
      "id": "lzDTK5kEdkM",
      "title": "Charles Barkley and Shaq FUNNIEST MOMENTS",
      "thumbnail": "https://i.ytimg.com/vi/lzDTK5kEdkM/hqdefault.jpg?sqp=-oaymwEmCKgBEF5IWvKriqkDGQgBFQAAiEIYAdgBAeIBCggYEAIYBjgBQAE=&rs=AOn4CLAq_osvQnsGV3A7uz4L1CPTaLqppg",
      "channel": {
        "title": "SkyHooked",
        "url": "https://www.youtube.com/@SkyHooked",
        "handle": "SkyHooked",
        "id": "UCrX8GD5f_O-Cu5Y2vQuSSvw"
      },
      "publishedTimeText": "11 months ago",
      "publishedTime": "2025-02-16T19:25:39.493Z",
      "publishDateText": "11 months ago",
      "publishDate": "2025-02-16T19:25:39.493Z",
      "viewCountText": "1.8M views",
      "viewCountInt": 1800000,
      "lengthText": "18:01",
      "lengthInSeconds": 1081,
      "videoUrl": "https://www.youtube.com/watch?v=lzDTK5kEdkM"
    }
  ],
  "keywords": [],
  "genre": "People & Blogs",
  "durationMs": 348000,
  "durationFormatted": "00:05:48",
  "isPaidPromotion": false,
  "most_replayed": null,
  "captionTracks": [
    {
      "baseUrl": "https://www.youtube.com/api/timedtext?v=Y2Ah_DFr8cw&ei=s5Bqab0gu8yS5w_pvOLIDw&caps=asr&opi=112496729&xoaf=5&xowf=1&hl=en&ip=0.0.0.0&ipbits=0&expire=1768616739&sparams=ip,ipbits,expire,v,ei,caps,opi,xoaf&signature=306A57ADE14FECC84B0DB131907…",
      "name": {
        "simpleText": "English (auto-generated)"
      },
      "vssId": "a.en",
      "languageCode": "en",
      "kind": "asr",
      "isTranslatable": true,
      "trackName": ""
    }
  ]
}
GET/v1/youtube/video/transcript

Video transcript

1 request

Returns the public captions or subtitles of a YouTube video or Short, both as an array of timestamped segments with start and end times and as plain text in transcript_only_text. You can request a specific language. Any video length works as long as YouTube publishes captions; there is no two-minute AI transcription fallback here. When no matching caption track exists, the transcript fields are null.

Query parameters

url
stringrequired
Link to the YouTube video or short.
language
string
Two-letter language code such as 'en', 'es' or 'fr'. The transcript is null if that language is unavailable.
cache_max_age
string
Accept a stored response up to this age. Inside that window the answer is free and comes back with cached: true and a cached_at time; past it, the request runs live for 1 request.

1d3d7d14d30d

curl "https://api.pandorlabs.com/v1/youtube/video/transcript?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DbjVIDXPP7Uk" \  -H "Authorization: Bearer $PANDORLABS_KEY"
Example response

Response

{
  "success": true,
  "credits_charged": 1,
  "videoId": "bjVIDXPP7Uk",
  "type": "video",
  "url": "https://www.youtube.com/watch?v=bjVIDXPP7Uk",
  "transcript": [
    {
      "text": "welcome back to the hell farm and the",
      "startMs": "160",
      "endMs": "1920",
      "startTimeText": "0:00"
    }
  ],
  "transcript_only_text": "welcome back to the hell farm and the backyard trails we built these jumps two years ago and last year we just kind of rebuilt them and this year......",
  "language": "English"
}
GET/v1/youtube/video/sponsors

Sponsors mentioned in a video

1 request

Detects YouTube's paid-promotion disclosure on a video and identifies the likely sponsors or promoted brands from the description, its links, promo-code text and the transcript. Each sponsor comes with a confidence score and supporting evidence.

Query parameters

url
stringrequired
Link to the YouTube video or short.
language
string
Two-letter language code such as 'en', 'es' or 'fr', used when fetching the transcript.
curl "https://api.pandorlabs.com/v1/youtube/video/sponsors?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DAVO0ifle-OU" \  -H "Authorization: Bearer $PANDORLABS_KEY"
Example response

Response

{
  "success": true,
  "credits_charged": 1,
  "video": {
    "id": "AVO0ifle-OU",
    "url": "https://www.youtube.com/watch?v=AVO0ifle-OU",
    "title": "Why You Should Meal Prep Like A Restaurant",
    "channel": {
      "id": "UC3vQEjRhwgH2HAOBKwLjxNA",
      "url": "https://www.youtube.com/@letsKWOOWK",
      "handle": "letsKWOOWK",
      "title": "KWOOWK"
    },
    "isPaidPromotion": true
  },
  "suspectedSponsors": [
    {
      "name": "Betterhelp",
      "website": "betterhelp.com",
      "confidence": "medium",
      "evidence": [
        {
          "source": "description_link",
          "text": "If you're struggling, consider therapy with our sponsor BetterHelp. Click https://betterhelp.com/KWOOWK for a 10% discount..."
        }
      ]
    }
  ],
  "sponsorDetection": {
    "status": "found",
    "methods": [
      "paid promotion badge"
    ],
    "transcriptAvailable": true,
    "note": "Sponsors are inferred from public description, links, promo-code text, and transcript evidence."
  }
}
GET/v1/youtube/search/typeahead

Search autocomplete

1 request

Returns the autocomplete suggestions YouTube shows as someone types in the search box. Every suggestion has its text and a flag telling you whether it is a plain query or a channel. Channel suggestions also include the channel's public ID, handle, name and thumbnail.

Query parameters

query
stringrequired
The partial or full search text to complete.
curl "https://api.pandorlabs.com/v1/youtube/search/typeahead?query=mr+beast" \  -H "Authorization: Bearer $PANDORLABS_KEY"
Example response

Response

{
  "success": true,
  "credits_charged": 1,
  "data": {
    "query": "mr beast",
    "suggestions": [
      {
        "text": "mrbeast",
        "type": "channel",
        "channel": {
          "id": "UCX6OQ3DkcsbYNE6H8uQQuVA",
          "handle": "@MrBeast",
          "name": "MrBeast",
          "thumbnailUrl": "https://yt3.googleusercontent.com/example=s88-c-k-c0x00ffffff-no-rj"
        }
      }
    ]
  }
}
GET/v1/youtube/search/hashtag

Videos for a hashtag

1 request

Finds YouTube content tagged with a given hashtag. Each video includes title, URL, duration, thumbnail, publish date, view count (views) and channel info. Choose all content types or shorts only, and page with continuationToken.

Query parameters

hashtag
stringrequired
The hashtag to look up.
continuationToken
string
Token for the next page, taken from continuationToken in the previous response.
type
string
Return every content type or only shorts.

allshorts

curl "https://api.pandorlabs.com/v1/youtube/search/hashtag?hashtag=funny" \  -H "Authorization: Bearer $PANDORLABS_KEY"
Example response

Response

{
  "success": true,
  "credits_charged": 1,
  "videos": [
    {
      "type": "video",
      "id": "jXMISgQq9MM",
      "url": "https://www.youtube.com/watch?v=jXMISgQq9MM",
      "title": "Epic fails 🤣🤣🤣 #shorts #funny #fails",
      "description": "",
      "thumbnail": "https://i.ytimg.com/vi/jXMISgQq9MM/hqdefault.jpg?sqp=-oaymwFBCNACELwBSFryq4qpAzMIARUAAIhCGADYAQHiAQoIGBACGAY4AUAB8AEB-AG2CIACgA-KAgwIABABGGUgXyhVMA8=&rs=AOn4CLC1HXfxzLayoVBdicS5DIUQh9zGcQ",
      "channel": {
        "id": "UCvUzWu1Whyw1FWuLl9GOo_g",
        "title": "ZZang Funny",
        "thumbnail": "https://yt3.ggpht.com/rcZKcfewHTzkauGknat3NeC53rGBofYDbL8AjFkwvsk2fXzM1clht7OTn9-1IIPnmbeZkrNGdxI=s68-c-k-c0x00ffffff-no-rj"
      },
      "viewCountText": "22,668,056 views",
      "viewCountInt": 22668056,
      "publishedTimeText": "4 weeks ago",
      "publishedTime": "2025-01-04T23:12:42.919Z",
      "lengthText": "1:00",
      "lengthSeconds": 60,
      "badges": []
    }
  ],
  "continuationToken": "4qmFsgLtBRIJRkVoYX...."
}
GET/v1/youtube/video/comments

Video comments

1 request

Returns comments and replies on a YouTube video with text, author details, reply count, like count and publish date. Order by top or newest and page with continuationToken. Coverage stops at about 1,000 comments in top order, or 7,000 in newest order.

Query parameters

url
stringrequired
Link to the YouTube video.
continuationToken
string
Token for the next page, taken from continuationToken in the previous response.
order
string
Comment ordering: top or newest.

topnewest

curl "https://api.pandorlabs.com/v1/youtube/video/comments?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DdQw4w9WgXcQ" \  -H "Authorization: Bearer $PANDORLABS_KEY"
Example response

Response

{
  "success": true,
  "credits_charged": 1,
  "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...."
}
GET/v1/youtube/video/comment/replies

Replies to a comment

1 request

Returns the replies to one YouTube comment, each with text, like count, publish date and author details (name, avatar, channel ID, verified and creator flags). Start with the 'repliesContinuationToken' value found on a comment from the Comments endpoint, then use the continuationToken in each response to keep paging.

Query parameters

continuationToken
stringrequired
For the first page, a comment's 'repliesContinuationToken' (Comments endpoint); for later pages, 'continuationToken' from the last replies response.
curl "https://api.pandorlabs.com/v1/youtube/video/comment/replies?continuationToken=Eg0SC2RRdzR3OVdnWGNRGAYygwEaUBIa..." \  -H "Authorization: Bearer $PANDORLABS_KEY"
Example response

Response

{
  "success": true,
  "credits_charged": 1,
  "comments": [
    {
      "id": "UgyfayX-QqgkPGkcKbt4AaABAg.AV5O1akOhw9AV5RdnpN-SY",
      "content": "Me",
      "publishedTimeText": "20 hours ago",
      "publishedTime": "2026-04-03T05:52:36.883Z",
      "replyLevel": 1,
      "author": {
        "name": "@pepisakkout2522",
        "channelId": "UCjEBcO_VQ32GUzUZGwlxy1w",
        "isVerified": false,
        "isCreator": false,
        "avatarUrl": "https://yt3.ggpht.com/ytc/AIdro_lYQDmh7-5JOb_QcEsPJIp4vmKm5a0uyzAXT-JC0rY=s88-c-k-c0x00ffffff-no-rj",
        "channelUrl": "https://youtube.com/@pepisakkout2522"
      },
      "engagement": {
        "likes": 2,
        "replies": 0
      }
    }
  ],
  "continuationToken": "Eg0SC2RRdzR3OVdnWGNRGAYy1AEK..."
}
GET/v1/youtube/playlist

Playlist contents

1 request

Returns every video in a YouTube playlist together with the playlist title, owner info and total video count. Each video lists its title, URL, duration, thumbnail and channel. Identify the playlist by the ID in the URL's 'list' parameter.

Query parameters

playlist_id
stringrequired
Playlist ID, i.e. the value of the 'list' parameter in a YouTube URL.
curl "https://api.pandorlabs.com/v1/youtube/playlist?playlist_id=PLP32wGpgzmIlInfgKVFfCwVsxgGqZNIiS" \  -H "Authorization: Bearer $PANDORLABS_KEY"
Example response

Response

{
  "success": true,
  "credits_charged": 1,
  "title": "Songs with Lyrics 2025 - New Songs 2025 - Music 2025 New Songs",
  "owner": {
    "id": "UC0-wiBH12UgtWqLjo-EvpOw",
    "name": "Lovely Tunes",
    "url": "https://www.youtube.com/@lovelytunes7622",
    "handle": "lovelytunes7622"
  },
  "totalVideos": 98,
  "videos": [
    {
      "id": "AdBzzpq3xV4",
      "title": "Lady Gaga, Bruno Mars - Die With A Smile",
      "thumbnail": "https://i.ytimg.com/vi/AdBzzpq3xV4/hqdefault.jpg?sqp=-oaymwEnCNACELwBSFryq4qpAxkIARUAAIhCGAHYAQHiAQoIGBACGAY4AUAB&rs=AOn4CLABnTkQJmfW0s1BMl_qa0FGqIGGqw",
      "url": "https://www.youtube.com/watch?v=AdBzzpq3xV4",
      "lengthText": "4:15",
      "lengthSeconds": 255,
      "channel": {
        "title": "LatinHype",
        "url": "https://www.youtube.com/@LatinHype."
      }
    }
  ]
}
GET/v1/youtube/community-post

Single community post

1 request

Returns one YouTube community post in full: its text, like count, attached images, publish date and channel info. If the post links a video, that video is included as well.

Query parameters

url
stringrequired
Link to the YouTube community post.
curl "https://api.pandorlabs.com/v1/youtube/community-post?url=https%3A%2F%2Fwww.youtube.com%2Fpost%2FUgkxvj2KoApYAXoqLWnKVr6zZe5JjeHrQeP8" \  -H "Authorization: Bearer $PANDORLABS_KEY"
Example response

Response

{
  "success": true,
  "credits_charged": 1,
  "id": "Ugkxvj2KoApYAXoqLWnKVr6zZe5JjeHrQeP8",
  "channel": {
    "id": "UChhw6DlKKTQ9mYSpTfXUYqA",
    "title": "Starter Story",
    "url": "https://www.youtube.com/@starterstory",
    "handle": "starterstory"
  },
  "content": "How to build something meaningful\n\n1. sit down\n2. set a timer for 2 hours\n3. work\n4. do that over and over and over\n\nNOTHING meaningful was built in a day, a week, or even a month\n\nyou should launch quickly, but the work can't end there\n\nsu…",
  "images": [
    "https://yt3.ggpht.com/uer4ij-RqnTqudtdT5VZNvEjzVXA3PGLHwNpjMfraB7mfbX_Bm0-fSpaFXkfw3EA4uZ7BY8YPa1gU08=s640-c-fcrop64=1,20000000dfffffff-rw-nd-v1"
  ],
  "likeCount": 759,
  "publishedTimeText": "5 days ago",
  "publishedTime": "2025-11-07T18:49:57.492Z",
  "video": null
}