Thumbnail URL API
Pass any YouTube video ID or URL and get back a JSON response with all available thumbnail resolutions. Free, no API key needed - works with fetch, curl, or any HTTP client.
Try it
{
"ok": true,
"videoId": "<your-video-id>",
"thumbnails": [
{ "quality": "maxresdefault", "url": "…" }
…
]
}
Endpoint
GET
https://youtube-thumb-nail-download.com/api/?v={videoId}
Query Parameters
| Param | Type | Description |
|---|---|---|
| v | string | YouTube video ID (11 characters) or full video URL |
| url alias | string | Alternative to v - accepts any YouTube URL format |
| id alias | string | Alternative to v |
Response Schema
ok
boolean
true on success, false if the video ID could not be parsedvideoId
string
The extracted 11-character YouTube video ID
thumbnails
array<Thumbnail>
All 5 resolutions, ordered from largest to smallest
Thumbnail Object
quality
string
YouTube filename key, e.g.
maxresdefaultlabel
string
Human-readable label, e.g. Maximum Resolution
width / height
number
Expected pixel dimensions (actual image may differ for older videos)
url
string
Direct
img.youtube.com URL - publicly accessible, no auth neededUsage Examples
JavaScript - Fetch
const videoId = 'dQw4w9WgXcQ';
const res = await fetch(
`https://youtube-thumb-nail-download.com/api/?v=${videoId}`,
{ headers: { Accept: 'application/json' } }
);
const data = await res.json();
console.log(data.thumbnails);
// → [{ quality: 'maxresdefault', url: '…', width: 1280, height: 720 }, …]
cURL
curl "https://youtube-thumb-nail-download.com/api/?v=dQw4w9WgXcQ"
Python - Requests
import requests
res = requests.get(
"https://youtube-thumb-nail-download.com/api/",
params={"v": "dQw4w9WgXcQ"},
headers={"Accept": "application/json"},
)
data = res.json()
for thumb in data["thumbnails"]:
print(f"{thumb['label']}: {thumb['url']}")
Tip: Programmatic clients (
curl, fetch, etc.) automatically receive JSON. Browsers visiting this URL see this documentation page instead. You can also force JSON in a browser by adding &format=json to the URL. The maxresdefault resolution may not exist for older videos; fall back to hqdefault in that case.