YouTube Channel Videos API
List a channel's videos, newest first, with title, views and length, page by page.
- 1 credit per call
- Failed calls are free
- Updated
- youtube.channel-videos.list
{ "summary": { "channel_id": "UCLA_DiR1FfKNvjuUpBHmylQ", "has_more": true, "tab": "videos", "total_items": 65 }, "items": [ { "title": "Planetary Defenders: This Is Not an Exercise", "views": "84K views", "view_count": 84000, "duration": "20:15", "duration_seconds": 1215, "type": "video", "video_id": "5b3n-u_0QAI", "view_count_approximate": true }, { "title": "NASA's SpaceX Crew-13 Mission (Official NASA Trailer)", "views": "102K views", "view_count": 102000, "duration": "1:02", "duration_seconds": 62, "type": "video", "video_id": "ErAqN6gXqZQ", "view_count_approximate": true } ]}
| # | Title | Views | Length (s) | Video ID | Views | Duration | Type | View count approximate |
|---|---|---|---|---|---|---|---|---|
| 1 | Planetary Defenders: This Is Not an Exercise | 84,000 | 1215 | 5b3n-u_0QAI | 84K views | 20:15 | video | true |
| 2 | NASA's SpaceX Crew-13 Mission (Official NASA Trailer) | 102,000 | 62 | ErAqN6gXqZQ | 102K views | 1:02 | video | true |
| 3 | NASA Moon Base: The First Six Months | 522,000 | 67 | IwZVXmQdX1E | 522K views | 1:07 | video | true |
| 4 | What It Takes | 325,000 | 152 | 90Kgw_SvK4w | 325K views | 2:32 | video | true |
| 5 | Artemis III: Our Next Step Back to the Moon | 152,000 | 61 | jHKf1eHp3eQ | 152K views | 1:01 | video | true |
| 6 | For Earth, With Love: Artemis II | 437,000 | 203 | MVt2139voxk | 437K views | 3:23 | video | true |
| 7 | Artemis Origins: Humanity's Return to the Moon | 91,000 | 86 | _oXt3-YDih4 | 91K views | 1:26 | video | true |
| 8 | NASA's Nancy Grace Roman Space Telescope Launches (Official NAS… | 212,000 | 127 | 6o3m9Bw67Os | 212K views | 2:07 | video | true |
| 9 | NASA's Artemis II Astronauts Receive the Congressional Space Me… | 89,000 | 115 | 8NOLpgadWXc | 89K views | 1:55 | video | true |
| 10 | President Donald J. Trump Calls the International Space Station… | 118,000 | 90 | 1icdW32gS8A | 118K views | 1:30 | video | true |
What you send
The input
object of the request, with every field the endpoint accepts.
| Field | Type | Required | What it does | Example |
|---|---|---|---|---|
| url | string | yes | The channel's link, handle or ID. | @NASA |
| limit | integer | no | How many videos to return. | 65 |
| max_pages | integer | no | How many pages to read in this call. A smaller number answers faster. | 3 |
Fields it returns
What each record in the response holds, with the values from the sample above.
| Field | Type | What it is | Example |
|---|---|---|---|
| items[].title | string | The video's title. | Planetary Defenders: This Is Not an Exercise |
| items[].view_count | integer | Views as a number, read from what YouTube shows. | 84,000 |
| items[].duration_seconds | integer | The video's length, in seconds. | 1215 |
| items[].video_id | string | YouTube's ID for the video. | 5b3n-u_0QAI |
| items[].views | string | Views as YouTube writes them. | 84K views |
| items[].duration | string | The video's length as YouTube shows it. | 20:15 |
| items[].type | string | What kind of item it is, such as video. | video |
| items[].view_count_approximate | boolean | Whether the view count comes from a rounded figure such as 84K. | true |
| items | array | The channel's videos. | 65 records |
| summary | object | Totals and paging details for this answer. | 4 fields |
| summary.channel_id | string | YouTube's ID for the channel. | UCLA_DiR1FfKNvjuUpBHmylQ |
| summary.has_more | boolean | Whether more items are available. | true |
| summary.tab | string | Which channel tab the items come from. | videos |
| summary.total_items | integer | How many items this answer holds. | 65 |
Call it from your code, or ask your agent
Set UPSCRAPE_API_KEY to your key and copy a working request.
curl --request POST \ --url https://data.upscrape.com/execute \ --header "Authorization: Bearer $UPSCRAPE_API_KEY" \ --header "Content-Type: application/json" \ --header "Prefer: wait=30" \ --data '{ "capability": "youtube.channel-videos.list", "input": { "limit": 65, "max_pages": 3, "url": "@NASA" }}'
import jsonimport osimport requestspayload = json.loads(r'''{ "capability": "youtube.channel-videos.list", "input": { "limit": 65, "max_pages": 3, "url": "@NASA" }}''')response = requests.post( "https://data.upscrape.com/execute", headers={ "Authorization": f"Bearer {os.environ['UPSCRAPE_API_KEY']}", "Content-Type": "application/json", "Prefer": "wait=30", }, json=payload,)response.raise_for_status()print(json.dumps(response.json(), indent=2))
const response = await fetch("https://data.upscrape.com/execute", { method: "POST", headers: { "Authorization": `Bearer ${process.env.UPSCRAPE_API_KEY}`, "Content-Type": "application/json", "Prefer": "wait=30", }, body: JSON.stringify({ "capability": "youtube.channel-videos.list", "input": { "limit": 65, "max_pages": 3, "url": "@NASA" }}),});if (!response.ok) { throw new Error(`Upscrape request failed: ${response.status}`);}console.log(JSON.stringify(await response.json(), null, 2));
https://data.upscrape.com/mcp
Using Upscrape, list NASA's latest YouTube videos with views and length, and tell me which ten got the most views.
More from the YouTube API
- YouTube Video API1 credit
- YouTube Channel API1 credit
- YouTube Search API1 credit
- YouTube Comments API1 credit
- YouTube Channel Shorts API1 credit
- YouTube Channel Live Streams API1 credit
- YouTube Channel Playlists API1 credit
- YouTube Playlist API1 credit
- YouTube Channel Community API1 credit
- YouTube Community Post API1 credit
- YouTube Hashtag Videos API1 credit
- YouTube Typeahead Search API1 credit
- YouTube Trending Shorts API1 credit
The same data from other platforms
YouTube Channel Videos API FAQ
The short answers. The docs have the long ones.
How much does the YouTube Channel Videos API cost?
1 credit per successful call, shown before it runs. You buy credits once, and paid credits never expire.
What do I send?
Send url. The input fields below list every option with its type and limits.
Do I need a YouTube login?
No. It reads public YouTube data; nothing runs on your account.
Can my AI agent call it?
Yes, over MCP: the agent finds youtube.channel-videos.list, checks its price and runs it with the same credits as the REST API.
Your first YouTube call is free.
Up to 100 free credits to start, no card needed.