Duckduckgo Search
Search for Duckduckgo results based on keywords.
If you already know that you want to use Duckduckgo Search, this page is the one you should read. It shows the required input, the filters you can apply, how pagination works, and what localization controls are available.
At a Glance
| Field | Value |
|---|---|
| Name | Duckduckgo Search |
| Scraper | duckduckgo_search |
| Engine | duckduckgo_search |
| Website | DuckDuckGo |
| Website URL | Duckduckgo.com |
| Output Format | json |
| Version | 1.0.0 |
| Parameter Count | 5 |
| Parameter Groups | Search Query (1), Advanced Filters (2), Localization (1), Request Controls (1) |
Request Example
This is the real request body used to validate duckduckgo_search during this docs refresh. For /v1/serp, the engine field should be the engine's scraper value.
curl -X POST "https://run.xcrawl.com/v1/serp" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"engine":"duckduckgo_search","q":"openai"}'Response Example
The JSON below comes from the same live response. Long strings, data URLs, and large arrays were shortened so the example stays readable.
{
"search_metadata": {
"created_at": "2026-03-26 08:34:18 UTC",
"id": "01KMMMF2PD9PM1NS46M5X4D29W",
"json_endpoint": "https://serp.xcrawl.com/01KMMMF2PD9PM1NS46M5X4D29W.json",
"processed_at": "2026-03-26 08:34:18 UTC",
"raw_html_file": "https://serp.xcrawl.com/01KMMMF2PD9PM1NS46M5X4D29W.html",
"status": "completed",
"total_time_taken": 10
},
"search_parameters": {
"engine": "duckduckgo_search",
"q": "openai"
},
"total_credits_used": 1,
"ads": [
{
"link": "https://duckduckgo.com/y.js?ad_domain=chatbotai.co&ad_provider=bingv7aa&ad_type=txad&click_metadata=TQO3jy32lZ2TpUwc2x7Rpn9JKGj9hq2%2DV022rtHAFWbXZZbigj3mpHRl42PJbava3zPp5SnHcYcOVaSa2rXh48uhH%2DPh%2DMOeK1wr5oVcD%2DBMbIwB... [truncated, 2241 chars]",
"position": 1,
"sitelinks": [
{
"href": "https://duckduckgo.com/y.js?ad_domain=chatbotai.co&ad_provider=bingv7aa&ad_type=txad&click_metadata=krpK_IxthBJa_MHK4U4MZHg5R98xhtK5Bx4nTzp8Ly6enB3BlMY6LMkQtt6_mADe6UodOrcwBo2Uhs2gMx9RA7f9hWI1Tp78jMS5TybfVcUWZ3tKFWU09eYy... [truncated, 2615 chars]",
"title": "Sign In"
},
{
"_note": "3 more items omitted"
}
],
"snippet": "Write essays, emails, or papers easily with the AI chatbot developed on GPT 5.2. Compare top LLMs and pick the right one for your task. All models in one workspace.",
"source": "https://chatbotai.co › ai › chatbot",
"title": "Unlock All AI Models - AI Chat Developed on GPT-5.2"
}
],
"organic_results": [
{
"favicon": "https://external-content.duckduckgo.com/ip3/openai.com.ico",
"link": "https://openai.com/",
"position": 1,
"snippet": "We believe our research will eventually lead to artificial general intelligence, a system that can solve human-level problems. Building safe and beneficial AGI is our mission.",
"title": "OpenAI"
},
{
"_note": "9 more items omitted"
}
],
"related_searches": [
{
"link": "http://duckduckgo.com?q=openai.com&kl=us-en",
"query": "openai. com "
},
{
"_note": "7 more items omitted"
}
]
}Required Parameters
If you are sending your first request with this engine, start here. Requiredness is based on properties.<field>.must, not the top-level required array.
| Field | Type | Group | Description |
|---|---|---|---|
q | string | Search Query | The keyword or phrase you want this search engine to look up. |
Available Parameters
The sections below follow the same parameter groups as the backend, but the field descriptions have been rewritten into shorter, user-facing wording so they are easier to scan.
Search Query
| Field | Type | Required | Description |
|---|---|---|---|
q | string | Yes | The keyword or phrase you want this search engine to look up. |
Advanced Filters
| Field | Type | Required | Description |
|---|---|---|---|
df | string | No | Date filter used to keep only recent results or a custom date range. |
safe | number | No | Safe-search level that controls adult-content filtering. |
Additional Constraints
safe:Default:1;Options: 3 options. Examples:1,-1,-2
Localization
| Field | Type | Required | Description |
|---|---|---|---|
kl | string | No | DuckDuckGo region code. |
Additional Constraints
kl:Default:us-en;Options: 64 options. Examples:ar-es,au-en,at-de,be-fr,be-nl
Request Controls
| Field | Type | Required | Description |
|---|---|---|---|
no_cache | boolean | No | Skip cached results and force a fresh fetch. |
Additional Constraints
no_cache:Default:false
