Search DuckDuckGo Videos
Videos for a query from DuckDuckGo Videos, in order: title, URL, description, duration, publisher (e.g. YouTube), uploader, publication date, view count, thumbnail and embed URL. Filter by region, safe search and time range. limit defaults to 30 and goes up to 120; hasMore says whether DuckDuckGo had more. Billing: each list page read counts as one request (about 60 videos a page).
/videos News, videos & images https://api.fetchlayer.dev/duckduckgo/videos Headers
Authorization string required Bearer token — your FetchLayer API key.
Parameters
query string required The search query (1–500 characters).
region string optional Region code: us-en, uk-en, de-de, fr-fr, es-es, it-it, jp-jp, in-en, au-en, ca-en, br-pt and 52 more (64 codes, DuckDuckGo’s own list), or wt-wt for no region. Results and rankings differ by region. (default: us-en)
safeSearch string optional DuckDuckGo’s own filter level: strict, moderate or off. DuckDuckGo still returns a site for a query that names it outright. (default: moderate)
timeRange string optional any, day, week, month or year: only results published within it. (default: any)
limit number optional Videos to return (1–120), or -1 for the maximum. (default: 30)
format string optional json or markdown. (default: json)
timeoutMs number optional Time limit for each page read, in milliseconds (1000–120000).
Response Fields
videos
Search DuckDuckGo Videos
resultType string search, rank-check, instant-answer, suggestions, news, videos or images.
requestedUrl string The DuckDuckGo page this result corresponds to.
notes string[] Caveats about this particular result — a list that may be incomplete, a depth DuckDuckGo could not reach, a later page that could not be read. Empty when there are none. Read it on every call.
transport string The source this data came from. Always "duckduckgo".
scrapedAt string ISO 8601 timestamp of when the data was collected.
query string The query that was run.
region string The region the results are for.
safeSearch string The safe search level applied.
timeRange string The time range applied.
videos object[] The videos, in DuckDuckGo’s order.
videos[].position number 1-based position in the list.
videos[].title string The video title.
videos[].url string The video page URL.
videos[].description string The description DuckDuckGo shows, or null.
videos[].duration string As shown, e.g. "4:10", or null.
videos[].publisher string Where the video is hosted, e.g. "YouTube".
videos[].uploader string The channel or account that uploaded it, or null.
videos[].publishedAt string Publication date, or null.
videos[].viewCount number View count, or null.
videos[].thumbnailUrl string Thumbnail image URL, or null.
videos[].embedUrl string An embeddable player URL, or null.
videoCount number Videos in this response.
pagesScraped number List pages read. Each counts as one request against your plan.
hasMore boolean Whether DuckDuckGo had more videos than were returned.
Request
curl -X POST "https://api.fetchlayer.dev/duckduckgo/videos" \
-H "Authorization: Bearer ss-your-key" \
-H "Content-Type: application/json" \
-d '{"query":"bun javascript runtime","limit":10}'Response
{
"resultType": "videos",
"requestedUrl": "https://duckduckgo.com/?q=bun+javascript+runtime&kl=us-en&kp=-1&ia=videos&iax=videos",
"scrapedAt": "2026-09-15T19:47:53.729Z",
"transport": "duckduckgo",
"notes": [],
"query": "bun javascript runtime",
"region": "us-en",
"safeSearch": "moderate",
"timeRange": "any",
"videos": [
{
"position": 1,
"title": "Bun Tutorial - JavaScript Runtime (Node.js Alternative) [Full Course]",
"url": "https://www.youtube.com/watch?v=eTB0UCDnMQo",
"description": "Welcome this Bun crash course. Bun is a cutting-edge toolkit designed to supercharge your JavaScript and TypeScript applications.",
"duration": "1:07:54",
"publisher": "YouTube",
"uploader": "freeCodeCamp.org",
"publishedAt": "2023-10-12T13:51:09",
"viewCount": 92615,
"thumbnailUrl": "https://tse2.mm.bing.net/th/id/OVP.4UTPQsVjf3bNLNZ_9I6IIAHgFo?pid=Api",
"embedUrl": "https://www.youtube.com/embed/eTB0UCDnMQo?autoplay=1"
},
{
"position": 2,
"title": "Bun Crash Course | JavaScript Runtime, Bundler & Transpiler",
"url": "https://www.youtube.com/watch?v=U4JVw8K19uY",
"description": "In this crash course, we will look at the Bun.js JavaScript runtime/bundler/toolkit.",
"duration": "40:19",
"publisher": "YouTube",
"uploader": "Traversy Media",
"publishedAt": "2023-09-18T12:52:41",
"viewCount": 82976,
"thumbnailUrl": "https://tse1.mm.bing.net/th/id/OVP.7LRij__maH4zQlFKGbcsWQHgFo?pid=Api",
"embedUrl": "https://www.youtube.com/embed/U4JVw8K19uY?autoplay=1"
}
],
"videoCount": 10,
"pagesScraped": 1,
"hasMore": true
}