DuckDuckGo Search Scraper
Pricing
Pay per usage
DuckDuckGo Search Scraper
A robust, high-performance utility designed for developer automation, data integration, and AI training. Features built-in captcha bypass, headful/headless browser execution, and proxy support to scrape Duckduckgo Search data seamlessly, reliably, and at scale.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
codingfrontend
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Apify actor that scrapes organic search results from DuckDuckGo for any query. Extracts title, link, snippet, displayed URL, domain, and date from search results.
Features
- Scrapes DuckDuckGo search results with pagination support
- Extracts rich data: title, link, snippet, displayed URL, domain, and date
- Configurable result count (up to 500)
- Region/locale support for localized results
- Automatic ad filtering (removes sponsored results)
- Proxy support for reliable execution on Apify platform
Input
| Field | Type | Description | Default |
|---|---|---|---|
query | String | The search query to look up on DuckDuckGo | "artificial intelligence" |
maxItems | Integer | Maximum number of search results to scrape (1-500) | 50 |
region | String | DuckDuckGo region code for localized results (e.g. us-en, uk-en, in-en, de-de) | "us-en" |
proxyConfiguration | Object | Proxy settings for the scraper | { "useApifyProxy": true } |
Example Input
{"query": "artificial intelligence","maxItems": 50,"region": "us-en","proxyConfiguration": {"useApifyProxy": true}}
Output
The scraper stores results in the default dataset. Each result contains:
| Field | Type | Description |
|---|---|---|
position | Integer | The ranking position of the search result |
title | String | The title of the search result |
link | String | The URL of the search result |
displayedUrl | String | The URL as displayed in search results |
snippet | String | The text snippet / description |
domain | String | The domain name of the result URL |
date | String | The date shown alongside the result (if available) |
searchQuery | String | The search query used |
searchRegion | String | The region code used for the search |
scrapedAt | String | ISO timestamp when the result was scraped |
Example Output
{"position": 1,"title": "Artificial intelligence - Wikipedia","link": "https://en.wikipedia.org/wiki/Artificial_intelligence","displayedUrl": "en.wikipedia.org/wiki/Artificial_intelligence","snippet": "Artificial intelligence (AI) is the capability of computational systems to perform tasks typically associated with human intelligence...","domain": "en.wikipedia.org","date": "","searchQuery": "artificial intelligence","searchRegion": "us-en","scrapedAt": "2026-02-28T22:18:17.743Z"}
How It Works
- Navigates to DuckDuckGo lite version using Firefox (better anti-detection)
- Types the search query and submits the form
- Parses organic search results from the table-based layout
- Clicks "Next Page" to load additional results until
maxItemsis reached - Filters out ads and tracking redirect links
Running Locally
cd duckduckgo-search-scrapernpm cinpm start
Configure input via storage/key_value_stores/default/INPUT.json.
Running on Apify
apify pushapify call kumarlakshmanan/duckduckgo-search-scraper --input-file storage/key_value_stores/default/INPUT.json