DuckDuckGo SERP
Pricing
Pay per event
DuckDuckGo SERP
DuckDuckGo Search Scraper: SERP Results in JSON
Hosted Actor to scrape duckduckgo search results as structured JSON, without running into the anomaly.js bot challenge that blocks naive scrapers within minutes. Run it from the Apify Store with one click, or call it from your own service via the Apify API. Pay per organic result, not per month.
DuckDuckGo doesn't publish an official search API, so historically you've had two choices: run a fragile open-source scraper that breaks every few months, or pay an enterprise SERP provider hundreds per month for one-off lookups. This Actor sits between them, hosted, maintained, priced per result.
What you get
- Live DuckDuckGo organic results, title, destination URL, displayed URL, snippet, and rank for every organic listing.
- Decoded destination URLs, DDG wraps every result in a
duckduckgo.com/l/?uddg=…redirect; this Actor decodes them back to the real target URL. - Region/language targeting, query DuckDuckGo from any of its 50+ supported regions (
us-en,nl-nl,de-de,fr-fr,jp-ja, etc.). - Anti-bot bypass included, the Actor routes through a markdown-rendering proxy so you never see the DuckDuckGo
anomaly.jschallenge that blocks direct scraping. - Pay only for what you scrape, pricing scales with the number of organic results returned. No subscription minimum.
Why scrape duckduckgo search results
DuckDuckGo isn't the biggest search engine, but it's the one that powers a disproportionate share of AI assistants. ChatGPT browsing, Perplexity grounding, and several enterprise AI agents all use DuckDuckGo as a primary or fallback grounding source, partly because DDG doesn't aggressively block automated queries the way Google does, and partly because it doesn't require an API key for basic results.
That makes the DuckDuckGo SERP increasingly valuable for AI search visibility tracking (AEO/GEO). If your brand isn't visible in DuckDuckGo's top 10 for your category keywords, AI assistants are unlikely to recommend you when users ask their questions. Privacy-conscious technical buyers also skew heavily DuckDuckGo, if that matches your ICP, DDG ranking signals matter more than overall search-share numbers suggest.
Input
| Field | Type | Default | Description |
|---|---|---|---|
q | string | required | Search query. |
kl | string | us-en | DDG region-language code (e.g. us-en, nl-nl, de-de, fr-fr). |
limit | integer | 10 | Number of organic results (1–30). |
Output
Every run pushes results to the Apify dataset as JSON records, one per organic result:
{"rank": 1,"title": "Apify: Full-stack web scraping and data extraction platform","url": "https://apify.com/","displayed_url": "apify.com","snippet": "Cloud platform for web scraping, browser automation, AI agents, and data for AI...","q": "apify","kl": "us-en","fetched_in_seconds": 0.7}
You can:
- Download the dataset as JSON, JSONL, CSV, or Excel from the Apify console
- Stream results via the Apify API for use in your own application
- Pipe results to webhooks, S3, BigQuery, or any of Apify's 30+ integrations
- Diff today's run against yesterday's to detect ranking changes
Use cases
AI search visibility tracking
Run the Actor daily for your brand and product-category keywords. ChatGPT browsing and Perplexity both use DDG as a primary grounding source, your DDG ranking is a leading indicator of whether AI assistants will recommend you when users ask about your category.
Privacy-segment SEO research
DDG's audience skews technical, privacy-conscious, and high-income. If your buyer profile matches, ranking signals from DDG matter more than from Google for your specific funnel, even though DDG has lower overall search share.
Competitive monitoring
Pull DDG results weekly for your top 10 competitors. Spot when they launch new pages, shift their messaging, or capture rankings on terms you used to own.
Replacing fragile open-source DDG scrapers
If you've been maintaining your own Python or Node scraper for DuckDuckGo, you've watched it break every few months when DDG ships a markup change or an anomaly.js update. This hosted Actor is the offload, same data, no maintenance.
How it compares
Common ways to get DuckDuckGo SERP data are the open-source duckduckgo-search Python library, SerpApi, and Bright Data. Here is where this Actor fits:
- No API key, no maintenance. The
duckduckgo-searchlibrary is free, but you host it, patch it every time DDG ships ananomaly.jschange, and bring your own proxies. This Actor is hosted and maintained. - Pay per organic result. SerpApi bills on monthly search plans and Bright Data on a prepaid balance. Here you pay per result with no monthly plan.
- No quota commitment. No minimum monthly volume, no unused allowance to forfeit.
- Anti-bot handled. Requests route through a markdown-rendering proxy, so you get parsed organic results (title, URL, snippet, rank) instead of the DDG
anomaly.jschallenge.
FAQ
How do I scrape duckduckgo search results without getting blocked?
DuckDuckGo's anomaly.js modal blocks most direct requests from datacenter and many residential IPs within minutes. The Actor handles this by routing requests through a markdown-rendering proxy (configurable via the MARKDOWN_PROXY_URL env secret on the Actor) that gets stable, captcha-free responses, you see the parsed organic results, not the bot challenge.
Is there an official DuckDuckGo search API?
No. DuckDuckGo offers an "Instant Answer API" but it returns curated answer-box content, not the organic SERP. For the actual ranking results, the data this Actor returns, you have to scrape the DDG web interface.
Can I use this as a proxy scraper for DuckDuckGo via my own VPN?
Yes, the Actor reads the MARKDOWN_PROXY_URL environment variable, so you can point it at any markdown-rendering proxy of your choice (free Jina reader, paid Jina with token, or a private proxy you operate). The Actor's logic stays the same regardless of upstream.
How accurate are the results compared to a real DuckDuckGo browser?
The Actor returns the live organic SERP, same data a human user would see on the page. There's no third-party cache or middleware. The destination URLs are decoded from DDG's uddg= redirect wrapper back to the real target so you don't have to do that yourself downstream.
Can I run this on a schedule?
Yes, Apify has built-in scheduling. Set the Actor to run daily per tracked keyword and pipe results to your data warehouse. Most teams diff successive runs to surface ranking changes alongside Google SERP data for a complete picture of organic visibility.
What about privacy, does the Actor track my queries?
The Actor logs only the standard Apify run metadata (start time, success/failure, item count). Your query terms aren't logged separately or sent to any third party beyond DuckDuckGo itself.
Pricing
This DuckDuckGo SERP scraper uses Apify's pay-per-event pricing, every successful organic result costs a small fixed amount, plus a tiny per-run start fee. Your bill scales linearly with usage. There's no monthly subscription. See the Apify Store page for the current per-result price; expect typical workloads (10 results per query, dozens of queries per day) to cost a few cents per run.
