Each web address below gives you one kind of YouTube information. Open one in your browser to see it, or use it in your code. Each card shows what to type in, an example result, and whether it works today (checked on 9 October 2026).
[
{
"id": "3URtTIdnXIk",
"title": "These CATS are too FUNNY! | New Cat Videos",
"author": "The Pet Collective",
"channelUrl": "/@petcollective",
"thumbnail": "https://i.ytimg.com/vi/3URtTIdnXIk/hq720.jpg",
"thumbnails": [{ "url": "...", "width": 360, "height": 202 }],
"fullUrl": "https://www.youtube.com/watch?v=3URtTIdnXIk",
"embedUrl": "https://www.youtube.com/embed/3URtTIdnXIk?rel=0",
"duration": "1:00:17",
"durationSeconds": 3617,
"viewCount": "27,364,105 views",
"viewCountRaw": 27364105,
"publishedTime": "1y ago",
"description": "You like cats? We got em!…",
"channelAvatar": "https://yt3.ggpht.com/…",
"isLive": false,
"isUpcoming": false,
"isVerified": false
}
]
GET/trending?limit=:nEmpty right nowArray
Trending videos. The endpoint answers correctly but returned [] in our tests. Build the UI so it shows a friendly empty state and falls back to a search.
GET/continue?token=:token&limit=:nNeeds an SDK token
Fetch the next page with a continuation token. The HTTP API does not hand out tokens, so this route is mainly for the SDK. Use searchContinue() in TypeScript or search_continue() in Python.
Channel details: name, handle, avatar, banner, subscriber count, social links, verification. In our test the request succeeded, but name and subscriber fields came back empty for the sample channel, so treat every field as optional.
Use the UC… channel ID. An @handle returns the same shape with empty fields (checked with @RickAstleyYT on 9 October 2026).
Full metadata for one video, as a VideoResult object. Invalid or unknown IDs do not return 404. You receive placeholder data (title like Video abc), so validate IDs yourself: 11 characters from A-Z a-z 0-9 _ -.
Param
Type
Notes
videoId
string
Path. The 11-character ID, for example dQw4w9WgXcQ.
GET/video/:videoId/comments?limit=:nEmpty right nowArray
Top-level comment threads, with replies when the upstream provides them. Returned [] for the sample video in our tests.
Each item has id, text, likeCount, publishedTime, replyCount, isPinned, isLikedByCreator, replies (array) and author with name, channelId, avatar, isVerified, isOwner. This shape comes from the worker source. We have not yet seen a non-empty response.
Param
Type
Default
Notes
limit
integer
20
1 to 100 top-level threads.
sort
—
—
Not supported. The worker accepts sort but does not pass it to the comment fetcher, so the upstream default order is always returned.
GET/video/:videoId/related?limit=:nEmpty right nowArray
Sidebar recommendations for a video. Returns RelatedVideo objects. Returned [] in our tests.
Each item has id, title, author, channelUrl, duration, durationSeconds, viewCount, viewCountRaw, publishedTime, thumbnail and isLive. Shape taken from the worker source; no non-empty response seen yet.
Live stream info: whether it is live or upcoming, viewer count, start times and like counts. Good for polling.
isUpcoming is unreliable. The worker sets it to true whenever the video is not live and has zero viewers, so most ordinary videos return true. Check isLive and scheduledStartTime together.