DuckDuckGo Search Results Scraper avatar

DuckDuckGo Search Results Scraper

Pricing

from $0.06 / 1,000 search results

Go to Apify Store
DuckDuckGo Search Results Scraper

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

Hanna Nosova

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

14 days ago

Last modified

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

FieldDescription
querySearch query that produced the result
rankOrganic rank for the query
titleResult title
urlDecoded destination URL
displayUrlVisible URL shown in the result
snippetResult description snippet
redirectUrlDuckDuckGo redirect URL when present
regionDuckDuckGo region code used
pageSearch results page number
scrapedAtISO 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.

EventWhat is chargedPrice
startOne-time fee charged when a DuckDuckGo SERP run starts.$0.005
EventWhat is chargedFree / no discountStarter / BronzeScale / SilverBusiness / GoldCustom / PlatinumCustom / Diamond
resultPer 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

  1. Open the actor on Apify.
  2. Enter one or more search queries.
  3. Choose the maximum number of results per query.
  4. Optionally choose a DuckDuckGo region code such as us-en or uk-en.
  5. Choose a Safe Search setting.
  6. Run the actor.
  7. Download results as CSV, JSON, Excel, or access them through the API.

Input settings

FieldDescription
queriesList of DuckDuckGo search terms to scrape.
queryOptional single search query for quick API calls.
maxResultsMaximum organic results to save per query.
regionDuckDuckGo localization code such as us-en, uk-en, de-de, or fr-fr.
safeSearchSafe-search mode: strict, moderate, or off.
proxyConfigurationApify 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.

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 ApifyClient
import os
client = 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

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.

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.