The fastest way to get DuckDuckGo data at scale. Structured JSON for web, image, news and video search, autocomplete suggestions and Instant Answers — from the privacy-first search engine whose unpersonalized rankings make the cleanest SERP data there is. No DuckDuckGo account, no upstream API key.
No credit card required · PAYG credits never expire
# DuckDuckGo web search as JSON
import scrapebadger
client = scrapebadger.ScrapeBadger("sb_live_...")
results = client.duckduckgo.search(
query="web scraping",
region="us-en"
){
"query": "web scraping",
"region": "us-en",
"results": [{
"title": "Web scraping - Wikipedia",
"url": "https://en.wikipedia.org/...",
"is_ad": false
}, ...],
"result_count": 23,
"has_next": true
}Structured JSON responses with normalized data models. No HTML parsing. No proxy management. No upstream API key.
/v1/duckduckgo/search/v1/duckduckgo/images/v1/duckduckgo/news/v1/duckduckgo/videos/v1/duckduckgo/autocomplete/v1/duckduckgo/instant/v1/duckduckgo/regionsAll fields are normalized from DuckDuckGo’s own results — no HTML for you to parse. Result URLs arrive already unwrapped from redirect links, ads are flagged instead of mixed into the organic ranking, and news dates ship in both Unix and ISO form.
titlestringResult title as DuckDuckGo shows iturlstringClean destination URL — already unwrapped from redirect linkssnippetstringThe text snippet under the resultdisplay_urlstringThe shortened URL shown on the result cardis_adbooleanWhether the result is a paid placement — organic rankings stay cleanabstractobjectThe knowledge box: heading, text, source, URL and image, when DuckDuckGo shows oneresult_countintegerResults on this pagehas_nextbooleanWhether another page exists, so you know when to stop pagingheadingstringThe Instant Answer topic headingabstract / abstract_textstringTopic summary as HTML and plain textabstract_source / abstract_urlstringWhere the summary comes from — usually Wikipediaanswer / answer_typestringA direct answer when one exists, e.g. a calculation or conversiondefinitionstringDictionary definition with its own source and URLimagestringTopic image URLtypestringAnswer classification: article, disambiguation, category, …redirectstringWhere a !bang query would redirectrelated_topicsarrayRelated topics with text, URL and icon — great for topic expansionEvery search endpoint takes a region code — the same kl codes DuckDuckGo itself uses. Pass wt-wt for unregionalized results, or any locale below and beyond.
No proxy setup. No session management. No anti-bot configuration.
Call any DuckDuckGo endpoint with your API key — a query for web, image, news or video search, a prefix for autocomplete, or a topic for an Instant Answer. REST or SDK.
ScrapeBadger routes the request through rotating exits, keeps sessions healthy, detects blocks and retries — your request either succeeds or costs nothing.
Receive normalized JSON with clean unwrapped URLs, snippets, flags for ads, machine-readable dates and the abstract box — ready to store, rank or pipe into an agent.
Unpersonalized rankings, four search verticals and encyclopedic Instant Answers — the raw material for rank tracking, monitoring and AI grounding.
Track where domains rank on an unpersonalized SERP across ~64 regions — DuckDuckGo shows everyone the same results, so your rank data has no profile bias.
Poll news search for brand mentions with source, excerpt and machine-readable dates in both Unix and ISO form — ready for alerting pipelines.
Give agents and RAG pipelines live web results with clean, unwrapped URLs and snippets — a drop-in search tool with no upstream API key to manage.
Autocomplete returns the suggestions DuckDuckGo itself shows for a prefix, at 1 credit a call — cheap fuel for keyword discovery at scale.
Image search returns the full-resolution URL, dimensions, source page and license filter support — build training and moderation datasets with provenance.
Combine web, video and Instant Answer data to map what already ranks for a topic, which formats dominate, and what the knowledge box says about it.
You only pay for successful responses — failed requests are always free. PAYG credits never expire; volume subscription tiers reduce per-credit cost further.
| Endpoint | Credits / request | PAYG | Subscription |
|---|---|---|---|
Web Search /search | 5 credits | — | — |
Image Search /images | 5 credits | — | — |
News Search /news | 5 credits | — | — |
Video Search /videos | 5 credits | — | — |
Autocomplete /autocomplete | 1 credit | — | — |
Instant Answer /instant | 1 credit | — | — |
Regions /regions | Free | — | — |
See the full plan comparison on the pricing page — subscription tiers step down per-credit cost beyond the cheapest column shown above.
ScrapeBadger's DuckDuckGo Scraper API handles the plumbing — so your pipeline keeps running.
DuckDuckGo does not profile users, so the same query in the same region returns the same ranking for everyone. That makes it the cleanest large search engine to measure — no filter bubble skewing your data.
DuckDuckGo wraps result links in redirect URLs. We unwrap them before you see them, so every result carries the real destination URL — no decoding step in your pipeline.
Paid placements carry an is_ad flag, so organic ranking positions stay clean while you still see which advertisers bid on a query.
Web, images, news and videos share the same request pattern — query, region, safesearch, page — so adding a vertical to your pipeline is a path change, not a rewrite.
News results ship publication time as both a Unix timestamp and an ISO 8601 string, so nothing in your stack has to parse "2 hours ago".
The Instant Answer endpoint returns abstracts, definitions, direct answers and related topics — encyclopedic grounding for agents at a fifth of the cost of a full SERP.
Get started in minutes with Python, Node.js, or plain HTTP requests.
The scrapebadger Node.js library wraps the DuckDuckGo API with typed methods. Install with npm install scrapebadger, then start pulling search results in a few lines of code.
import ScrapeBadger from 'scrapebadger'
const client = new ScrapeBadger({ apiKey: 'sb_live_...' })
// Fresh, region-targeted web results
const { results } = await client.duckduckgo.search({
query: 'web scraping',
region: 'us-en',
timelimit: 'week',
})
for (const r of results) {
console.log(r.title, r.url, r.is_ad)
}
// News from the last day
const news = await client.duckduckgo.news({
query: 'artificial intelligence',
timelimit: 'day',
})import ScrapeBadger from 'scrapebadger'
const client = new ScrapeBadger({ apiKey: 'sb_live_...' })
// Keyword discovery at 1 credit a call
const { suggestions } = await client.duckduckgo.autocomplete({
query: 'web scra',
})
console.log(suggestions) // ['web scraping', 'web scraper', ...]
// Encyclopedic grounding for an agent
const ia = await client.duckduckgo.instant({
query: 'duckduckgo',
})
console.log(ia.heading, ia.abstract_text)
console.log(ia.related_topics.map((t) => t.text))Common questions about scraping DuckDuckGo with the API — Python, Node.js, or REST.
No. You only need a ScrapeBadger API key. DuckDuckGo has no official search API to sign up for — this API gives you its real results as structured JSON without any upstream credentials.
About 64 region codes — us-en, uk-en, de-de, jp-jp and so on — plus wt-wt for no region at all. The free /regions endpoint lists every code, and every search endpoint takes a region parameter.
Yes. DuckDuckGo wraps outbound links in redirect URLs; the API unwraps them before returning, so the url field on every result is the real destination and can be stored or fetched as-is.
/search returns the actual results page — ranked organic links, snippets and the abstract box — for 5 credits. /instant returns DuckDuckGo’s Instant Answer data — abstracts, definitions, direct answers and related topics — for 1 credit. Use /search for rankings, /instant for encyclopedic answers.
It returns a 422 and costs you nothing. Credits are only deducted for successful responses, so you never pay for a block or a retry.
Per-request credit costs are listed above. For higher monthly volume, subscription tiers reduce the per-credit rate substantially. All DuckDuckGo endpoints — web, image, news and video search, autocomplete, Instant Answers and regions — are included on every plan.
1,000 free credits. No credit card. Get your API key in under a minute.
PAYG credits never expire · Pay only for successful requests · ~64 regions