SERP tracking
Use DuckDuckGo Search endpoints to turn serp tracking into repeatable API requests with documented inputs and JSON responses.
Turn DuckDuckGo's public web search results into structured JSON — organic results with titles, decoded destination URLs, and descriptions, with region, recency window, and safe-search filters, for SERP tracking and privacy-focused search research. Credential-free.
Search DuckDuckGo web results and get organic results as structured JSON, with region, recency, and safe-search filters.
Endpoint families
5
Documented params
21
Examples
5
Live catalog snapshot
Active endpoints
5
Methods
GET
Required params
10
Schema refs
5
{
"platform": "DuckDuckGo Search",
"endpoint": "duckduckgo-search",
"method": "GET",
"path": "/duckduckgo/search",
"auth": "apiKey"
}Use cases
Search DuckDuckGo web results and get organic results as structured JSON, with region, recency, and safe-search filters.
Use DuckDuckGo Search endpoints to turn serp tracking into repeatable API requests with documented inputs and JSON responses.
Use DuckDuckGo Search endpoints to turn search monitoring into repeatable API requests with documented inputs and JSON responses.
Use DuckDuckGo Search endpoints to turn discovery workflows into repeatable API requests with documented inputs and JSON responses.
Managed execution
Every figure below is read from the live DuckDuckGo Search endpoint catalog — 5 endpoints, 21 documented request parameters, and 5 published response schemas — the same catalog Docs and Playground run against.
5 documented DuckDuckGo Search endpoints, grouped into 5 request families — Image, News and Search, plus 2 more.
21 request parameters are documented across those DuckDuckGo Search endpoints, 10 of them required — the full input contract is public before you write any integration code.
5 of the 5 DuckDuckGo Search endpoints ship a recorded example response, and 5 carry a documented response schema — you can code against the real JSON before the first request.
DuckDuckGo Search endpoints document their error responses (400, 404, 429, 500 and 503) alongside the success schema, so a block, a rate limit, or a missing record comes back as a typed error rather than silently empty data.
5 hosted MCP tools back the DuckDuckGo Search endpoints, so an agent can call the same routes with the same parameters and the same JSON contract, with no custom glue.
Coverage map
These cards are generated from the active endpoint catalog, so the landing page reflects the same API surface used by Docs and Playground.
/duckduckgo/image
/duckduckgo/news
/duckduckgo/search
/duckduckgo/shopping
/duckduckgo/video
Endpoint catalog
/duckduckgo/searchReturns normalized DuckDuckGo web search results for a query string: title, destination URL, description, and hostname, plus page-based pagination. DuckDuckGo wraps every result link in its own click-tracking redirect; this endpoint always returns the decoded destination URL, never the raw redirect link. Results are fetched from DuckDuckGo's own server-rendered search page.
Response notes
- DuckDuckGo wraps every result link in its own click-tracking redirect (`duckduckgo.com/l/?uddg=...`); `url` in the response is always the decoded destination URL, never the raw redirect link. - A blocked or CAPTCHA-served response returns `503`. - Requesting a page past the end of DuckDuckGo's own result set returns `404`. Example response: ```json { "code": 200, "msg": "OK", "data": { "query": "openai", "results": [ { "position": 1, "title": "OpenAI | Research & Deployment", "url": "https://openai.com/", "description": "OpenAI is an AI research and deployment company. Our mission is to ensure that artificial general intelligence benefits all of humanity.", "hostname": "openai.com" } ], "pagination": { "page": 1, "next_page": 2 } } } ```
MCP tool duckduckgo_search
/duckduckgo/imageReturns normalized DuckDuckGo image results for a query string: title, source page URL, image URL, thumbnail, dimensions, and hostname, plus page-based pagination. Results are fetched from DuckDuckGo's own image JSON API.
Response notes
- Unlike organic web search, DuckDuckGo's image results are not wrapped in a click-tracking redirect; `url` is DuckDuckGo's own reported source page URL as-is. - A blocked or CAPTCHA-served response returns `503`. - No results returns `404`. Example response: ```json { "code": 200, "msg": "OK", "data": { "query": "openai", "results": [ { "position": 1, "title": "OpenAI logo", "url": "https://example.com/openai-logo", "image_url": "https://example.com/openai-logo.jpg", "thumbnail": "https://example.com/openai-logo-thumb.jpg", "width": 1200, "height": 800, "hostname": "example.com" } ], "pagination": { "page": 1, "next_page": 2 } } } ```
MCP tool duckduckgo_image
/duckduckgo/newsReturns normalized DuckDuckGo news results for a query string: title, destination URL, source, excerpt, thumbnail, and relative/published time, plus page-based pagination. Results are fetched from DuckDuckGo's own news JSON API.
Response notes
- A blocked or CAPTCHA-served response returns `503`. - No results returns `404`. Example response: ```json { "code": 200, "msg": "OK", "data": { "query": "openai", "results": [ { "position": 1, "title": "OpenAI announces new model", "url": "https://example.com/openai-announces-new-model", "source": "TechCrunch", "excerpt": "OpenAI today announced...", "thumbnail": "https://example.com/thumb.jpg", "relative_time": "2 hours ago", "published_at": 1721418540 } ], "pagination": { "page": 1, "next_page": 2 } } } ```
MCP tool duckduckgo_news
/duckduckgo/shoppingReturns normalized DuckDuckGo shopping results for a query string: title, brand, merchant, description, price, rating, and review count, plus total page count. DuckDuckGo's shopping vertical is ad-funded, syndicated product listings, not organic content; every product link is wrapped in an ad-click-tracking redirect with no clean destination to unwrap, so no destination URL is returned. DuckDuckGo's own pagination token for this vertical is an opaque per-response blob rather than a plain page offset, so only the first page is supported.
Response notes
- DuckDuckGo's shopping vertical is ad-funded, syndicated product listings (Bing Product Ads), not organic content. Every product link DuckDuckGo returns is wrapped in an ad-click-tracking redirect carrying opaque campaign/session metadata with no clean destination to unwrap — so, like this API's Google Shopping endpoint, no destination URL is returned. - Only the first page is supported. DuckDuckGo's own pagination token for this vertical is an opaque per-response blob rather than a plain page offset, unlike this API's other DuckDuckGo endpoints. `page_info` reports the total page count DuckDuckGo has available, for context. - A blocked or CAPTCHA-served response returns `503`. - No results returns `404`. Example response: ```json { "code": 200, "msg": "OK", "data": { "query": "running shoes", "results": [ { "position": 1, "title": "On Running Cloud 6 Sneakers", "brand": "On", "merchant": "www.example.com", "description": "Lightweight running shoe with CloudTec cushioning.", "price": "$139.99", "low_price": "$119.99", "rating": 4.5, "review_count": 128, "image": "https://example.com/shoe.jpg" } ], "page_info": { "page": 1, "total_pages": 16 } } } ```
MCP tool duckduckgo_shopping
/duckduckgo/videoReturns normalized DuckDuckGo video results for a query string: title, destination URL, description, duration, thumbnail, publisher/uploader, published time, and view count, plus page-based pagination. Results are fetched from DuckDuckGo's own video JSON API.
Response notes
- A blocked or CAPTCHA-served response returns `503`. - No results returns `404`. Example response: ```json { "code": 200, "msg": "OK", "data": { "query": "openai", "results": [ { "position": 1, "title": "What is OpenAI?", "url": "https://www.youtube.com/watch?v=abc123", "description": "An introduction to OpenAI.", "duration": "5:32", "thumbnail": "https://example.com/thumb.jpg", "publisher": "YouTube", "uploader": "OpenAI", "published_at": "2023-03-01T12:00:00.0000000", "view_count": 123456 } ], "pagination": { "page": 1, "next_page": 2 } } } ```
MCP tool duckduckgo_video
Related APIs
Search & Web Discovery
Extract Google search results, organic rankings, result URLs, titles, snippets, and related queries as structured JSON for SERP monitoring, rank tracking, and search visibility workflows.
Search & Web Discovery
Use a Google Trends API — an API for Google Trends data — to track search demand, trending terms, interest over time, regional interest, related and rising queries, plus Google Suggest discovery, as structured JSON for demand research and trend monitoring.
Search & Web Discovery
Extract Google News results — headlines, source names, article URLs, snippets, thumbnails, and recency — as structured JSON for media monitoring, brand mention tracking, and news aggregation workflows.
How to scrape DuckDuckGo Search
DuckDuckGo's Instant Answer API returns topic summaries, not web results — there is no official API for the organic result list. Crawlora's 5 DuckDuckGo endpoints return web, image, news, shopping, and video results as normalized JSON, with region, recency, and safe-search filters and decoded destination URLs.
Separate endpoints cover web, images, news, shopping, and video, all taking the same q query parameter.
The web endpoint takes time_range of d, w, m, or y for recency and safe_search of strict, moderate, or off.
Every endpoint takes a region, so you can compare how results differ market by market.
DuckDuckGo wraps result links in its own click-tracking redirect; these endpoints always return the decoded destination URL and hostname, never the raw redirect.
FAQ
Not for web results. DuckDuckGo publishes an Instant Answer API, but it returns instant answers and topic summaries rather than the organic result list. Crawlora's endpoints read DuckDuckGo's own server-rendered search pages and return those results as JSON.
Web, images, news, shopping, and video — each its own endpoint taking the same q parameter plus a region.
Yes, on web search. time_range accepts d, w, m, or y for the past day, week, month, or year, and safe_search accepts strict, moderate, or off.
Yes. DuckDuckGo wraps every result link in a click-tracking redirect; this endpoint decodes it and returns the destination URL along with the hostname.
Send a keyword as q to Crawlora's /duckduckgo/search endpoint and get normalized organic results as structured JSON — no DuckDuckGo account required.