DuckDuckGo Search Results Scraper
Pricing
from $0.06 / 1,000 search results
DuckDuckGo Search Results Scraper
Export ranked DuckDuckGo organic search results for keywords, including title, URL, snippet, rank, region, page, and timestamp.
Pricing
from $0.06 / 1,000 search results
Rating
0.0
(0)
Developer
Hanna Nosova
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
14 days ago
Last modified
Categories
Share
Scrape ranked DuckDuckGo organic search results for keywords and export clean SERP data to CSV, JSON, Excel, datasets, APIs, and automation workflows.
Use this actor when you need privacy-oriented search monitoring without depending only on Google or Bing SERP sources.
What does DuckDuckGo Search Results Scraper do?
DuckDuckGo Search Results Scraper turns search terms into structured result rows.
It extracts organic result titles, destination URLs, visible URLs, snippets, ranks, region settings, page numbers, and extraction timestamps.
You can run one keyword, a list of keywords, or API-triggered searches from your own workflow.
The output is ready for SEO rank tracking, competitive research, content research, brand monitoring, and lightweight search automation.
Who is it for?
SEO teams use it to monitor DuckDuckGo rankings for important keywords.
Content marketers use it to research which pages and snippets appear for topic clusters.
Developers use it to add private-search SERP data to automations.
Researchers use it to compare search visibility outside the Google ecosystem.
Agencies use it to deliver recurring CSV or API exports to clients.
Why scrape DuckDuckGo search results?
DuckDuckGo has a distinct audience and ranking mix.
Tracking only Google can miss visibility changes on privacy-focused search.
DuckDuckGo SERPs are also useful for monitoring neutral web results, competitive landing pages, and long-tail topic coverage.
This actor gives you repeatable exports rather than manual copy-paste.
Output fields
| Field | Description |
|---|---|
query | Search query that produced the result |
rank | Organic rank for the query |
title | Result title |
url | Decoded destination URL |
displayUrl | Visible URL shown in the result |
snippet | Result description snippet |
redirectUrl | DuckDuckGo redirect URL when present |
region | DuckDuckGo region code used |
page | Search results page number |
scrapedAt | ISO timestamp for extraction |
Pricing
This Actor uses Apify pay-per-event pricing. The prices below come from the current Actor pricing configuration. Apify public plans map to Store discount tiers, so the table shows both the user-facing plan context and the pricing tier name. The final price shown in Apify depends on the user account plan and any custom agreement.
| Event | What is charged | Price |
|---|---|---|
start | One-time fee charged when a DuckDuckGo SERP run starts. | $0.005 |
| Event | What is charged | Free / no discount | Starter / Bronze | Scale / Silver | Business / Gold | Custom / Platinum | Custom / Diamond |
|---|---|---|---|---|---|---|---|
result | Per organic DuckDuckGo search result saved to the dataset. | $0.10772 / 1,000 | $0.09367 / 1,000 | $0.07306 / 1,000 | $0.0562 / 1,000 | $0.03747 / 1,000 | $0.02623 / 1,000 |
Apify may also charge platform usage for compute, storage, proxies, or data transfer outside this Actor pricing. Check the Actor run and the Apify Pricing tab for the exact cost shown to your account.
How to use DuckDuckGo Search Results Scraper
- Open the actor on Apify.
- Enter one or more search queries.
- Choose the maximum number of results per query.
- Optionally choose a DuckDuckGo region code such as
us-enoruk-en. - Choose a Safe Search setting.
- Run the actor.
- Download results as CSV, JSON, Excel, or access them through the API.
Input settings
| Field | Description |
|---|---|
queries | List of DuckDuckGo search terms to scrape. |
query | Optional single search query for quick API calls. |
maxResults | Maximum organic results to save per query. |
region | DuckDuckGo localization code such as us-en, uk-en, de-de, or fr-fr. |
safeSearch | Safe-search mode: strict, moderate, or off. |
proxyConfiguration | Apify Proxy settings; enable proxy if direct requests are rate-limited. |
Queries
Use queries for a list of search terms.
Input example
{"queries": ["apify web scraping", "privacy search engine"],"maxResults": 10}
Single query
Use query for quick API calls with one keyword.
Max results
maxResults controls how many organic rows are saved for each query.
The default is intentionally low for a cheap first run.
Region
region maps to DuckDuckGo localization codes such as us-en, uk-en, de-de, or fr-fr.
Safe Search
safeSearch supports strict, moderate, and off.
Proxy configuration
DuckDuckGo can rate-limit shared IPs.
If direct requests return no results, enable Apify Proxy in the proxyConfiguration input.
Output example
{"query": "apify web scraping","rank": 1,"title": "Apify: Full-stack web scraping and data extraction platform","url": "https://apify.com/","displayUrl": "apify.com","snippet": "Apify is a web scraping and automation platform...","redirectUrl": "https://duckduckgo.com/l/?uddg=...","region": "us-en","page": 1,"scrapedAt": "2026-07-05T08:00:00.000Z"}
Tips for better SERP monitoring
Use consistent region settings across recurring runs.
Keep maxResults small for frequent rank checks.
Use separate runs for different markets if you need market-by-market reporting.
Store datasets or export them to your BI tool for historical tracking.
Integrations
Send results to Google Sheets for rank dashboards.
Trigger the actor from Make or Zapier for weekly monitoring.
Use the Apify API to enrich internal SEO tools.
Export datasets to BigQuery, Snowflake, or your data warehouse.
Combine this actor with other fetch_cat search and content scrapers for broader visibility reports.
API examples
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('fetch_cat/duckduckgo-search-results-scraper').call({queries: ['apify web scraping'],maxResults: 10,region: 'us-en',});console.log(run.defaultDatasetId);
Python
from apify_client import ApifyClientimport osclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('fetch_cat/duckduckgo-search-results-scraper').call(run_input={'queries': ['apify web scraping'],'maxResults': 10,'region': 'us-en',})print(run['defaultDatasetId'])
cURL
curl -X POST "https://api.apify.com/v2/acts/fetch_cat~duckduckgo-search-results-scraper/runs?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"queries":["apify web scraping"],"maxResults":10,"region":"us-en"}'
MCP integration
Use the actor from MCP-compatible tools through Apify MCP.
MCP URL:
https://mcp.apify.com/?tools=fetch_cat/duckduckgo-search-results-scraper
Claude Code setup example:
$claude mcp add apify https://mcp.apify.com/?tools=fetch_cat/duckduckgo-search-results-scraper
Claude Desktop JSON config example:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com/?tools=fetch_cat/duckduckgo-search-results-scraper"}}}
Example prompts showing MCP usage:
Run fetch_cat/duckduckgo-search-results-scraper for "privacy search engine" and summarize the top 10 domains.
Use the DuckDuckGo scraper to collect 10 results for "SEO rank tracking" in us-en and return a table with rank, title, and URL.
Claude Desktop users can add the Apify MCP server and call this actor as a tool.
Claude Code users can use it for automated SERP checks inside research or SEO workflows.
Ready-to-run examples
Open the actor's public Examples tab for saved input recipes you can copy and run:
Example use cases
Monitor keyword rankings on DuckDuckGo.
Collect top competitor pages for a topic.
Build privacy-search SERP snapshots.
Compare result snippets across markets.
Feed search result URLs into a crawler or content audit.
Limits and reliability
DuckDuckGo may rate-limit high-volume or repeated requests.
Use conservative query batches for recurring jobs.
Enable Apify Proxy if you see anomaly pages or empty results.
The actor focuses on organic web results in v1.
Ads, knowledge panels, news, images, and videos may be added later as separate structured fields or datasets.
FAQ
Can I run multiple keywords at once?
Yes. Add several values to queries; maxResults applies to each query independently.
Does the actor scrape ads or news results?
The first version focuses on organic web results. Ads, news, images, and videos are possible future result types.
Troubleshooting
Why did my run return no items?
The query may have no organic results, or DuckDuckGo may have returned an anomaly page for the current IP.
Try a common test query, reduce volume, or enable Apify Proxy.
Why are results different from my browser?
Search results can vary by region, safe-search setting, time, personalization context, and IP location.
Set region consistently when comparing runs.
Legality
Is it legal to scrape DuckDuckGo search results?
This actor extracts publicly visible search result metadata.
You are responsible for using the data lawfully, respecting DuckDuckGo terms, and complying with privacy, copyright, and database laws that apply to your use case.
Do not use scraped data for spam, abuse, or prohibited profiling.
Related actors
- Bing Search Results Scraper
- Google Trending Searches Scraper
- Google Patents Search Scraper
- YouTube Search Results Scraper
Support
If you need a new field, a different result type, or help with recurring SERP monitoring, open an issue on the actor page.
For the fastest support, include:
- The Apify run ID or run URL
- The input JSON you used
- The expected output or fields you wanted
- The actual output you received
- A reproducible public URL or keyword example when possible
Privacy and data handling
This Actor only requests the permissions needed to run the input you provide. It uses your input (such as URLs, search terms, identifiers, filters, and limits) only to fetch the requested public data from the relevant source site or API for this Actor, then writes results to your Apify dataset/key-value store.
Data may pass through Apify platform services and Apify Proxy during the run, and requests are sent only to the target site or public data provider required for this Actor's results. FetchCat does not send your inputs or outputs to advertising networks, data brokers, or model-training services, and does not retain run data outside Apify storage after the run except when you explicitly share run details for transient support debugging.
You are responsible for using this Actor lawfully, respecting the target site's terms, and avoiding unnecessary personal or sensitive data in inputs. Review the output before storing, sharing, or combining it with other data.