Dedicated ScrapersDuckDuckGo Scraper API
DuckDuckGo logoDedicated DuckDuckGo API

DuckDuckGo Scraper API — Search, News & Instant Answers

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.

~64Regions
7Endpoints
4Search verticals
1 crInstant Answers

No credit card required · PAYG credits never expire

GET /v1/duckduckgo/search?query=web+scraping
# DuckDuckGo web search as JSON
import scrapebadger

client = scrapebadger.ScrapeBadger("sb_live_...")

results = client.duckduckgo.search(
    query="web scraping",
    region="us-en"
)
200 OK1.4s · 5 credits
{
  "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
}
API Reference

DuckDuckGo API — 7 Dedicated Endpoints

Structured JSON responses with normalized data models. No HTML parsing. No proxy management. No upstream API key.

GET
/v1/duckduckgo/search
Organic web results with title, URL, snippet and ad flag, plus the abstract knowledge box when shown
5 cr / req
GET
/v1/duckduckgo/images
Full-resolution image URL, thumbnail, dimensions and source page — with size, color, type and license filters
5 cr / req
GET
/v1/duckduckgo/news
Headlines with source, excerpt, image and publication date in both Unix and ISO form
5 cr / req
GET
/v1/duckduckgo/videos
Videos with duration, publisher, uploader, view count, thumbnails and embed URL
5 cr / req
GET
/v1/duckduckgo/autocomplete
The suggestions DuckDuckGo’s own search box returns for a partial query
1 cr / req
GET
/v1/duckduckgo/instant
Abstract, definition, direct answer and related topics from the Instant Answer engine
1 cr / req
GET
/v1/duckduckgo/regions
The ~64 region codes this API accepts — free, costs no credits
0 cr / req
Response Schema

Every Field You Need, Ready to Use

All 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.

Search Result

titlestringResult title as DuckDuckGo shows it
urlstringClean destination URL — already unwrapped from redirect links
snippetstringThe text snippet under the result
display_urlstringThe shortened URL shown on the result card
is_adbooleanWhether the result is a paid placement — organic rankings stay clean
abstractobjectThe knowledge box: heading, text, source, URL and image, when DuckDuckGo shows one
result_countintegerResults on this page
has_nextbooleanWhether another page exists, so you know when to stop paging

Instant Answer

headingstringThe Instant Answer topic heading
abstract / abstract_textstringTopic summary as HTML and plain text
abstract_source / abstract_urlstringWhere the summary comes from — usually Wikipedia
answer / answer_typestringA direct answer when one exists, e.g. a calculation or conversion
definitionstringDictionary definition with its own source and URL
imagestringTopic image URL
typestringAnswer classification: article, disambiguation, category, …
redirectstringWhere a !bang query would redirect
related_topicsarrayRelated topics with text, URL and icon — great for topic expansion
Coverage

~64 Regions, One Parameter

Every 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.

🌐wt-wt
🇺🇸us-en
🇬🇧uk-en
🇩🇪de-de
🇫🇷fr-fr
🇪🇸es-es
🇮🇹it-it
🇳🇱nl-nl
🇨🇦ca-en
🇦🇺au-en
🇯🇵jp-jp
🇧🇷br-pt
🇮🇳in-en
The full list is one free call away: GET /v1/duckduckgo/regions returns every region code with its display name and costs no credits — so your integration can enumerate locales instead of hardcoding them.
How it works

From API call to clean JSON in seconds

No proxy setup. No session management. No anti-bot configuration.

1

Send a request

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.

2

We handle the hard parts

ScrapeBadger routes the request through rotating exits, keeps sessions healthy, detects blocks and retries — your request either succeeds or costs nothing.

3

Get structured JSON

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.

Use Cases

What Developers Build with DuckDuckGo Data

Unpersonalized rankings, four search verticals and encyclopedic Instant Answers — the raw material for rank tracking, monitoring and AI grounding.

SEO rank tracking

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.

Brand & news monitoring

Poll news search for brand mentions with source, excerpt and machine-readable dates in both Unix and ISO form — ready for alerting pipelines.

LLM grounding & RAG

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.

Keyword research

Autocomplete returns the suggestions DuckDuckGo itself shows for a prefix, at 1 credit a call — cheap fuel for keyword discovery at scale.

Image dataset collection

Image search returns the full-resolution URL, dimensions, source page and license filter support — build training and moderation datasets with provenance.

Content research

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.

Pricing

Pay Per Request. Credits Never Expire.

You only pay for successful responses — failed requests are always free. PAYG credits never expire; volume subscription tiers reduce per-credit cost further.

EndpointCredits / requestPAYGSubscription
Web Search /search5 credits
Image Search /images5 credits
News Search /news5 credits
Video Search /videos5 credits
Autocomplete /autocomplete1 credit
Instant Answer /instant1 credit
Regions /regionsFree

See the full plan comparison on the pricing page — subscription tiers step down per-credit cost beyond the cheapest column shown above.

Free trial
1,000 credits free
= 200 search requests
Credits expire
Never
Buy once, use anytime
Failed requests
Always free
Pay for success only
Live cost estimator
Credits per request5
Total credits needed5,000
Loading plans…
Why ScrapeBadger

Built for Reliability at Scale

ScrapeBadger's DuckDuckGo Scraper API handles the plumbing — so your pipeline keeps running.

Unpersonalized, reproducible rankings

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.

URLs come back clean

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.

Ads flagged, never mixed in

Paid placements carry an is_ad flag, so organic ranking positions stay clean while you still see which advertisers bid on a query.

Four verticals, one shape

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.

Dates in both Unix and ISO

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".

Instant Answers at 1 credit

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.

Code Examples

Simple Integration. Any Language.

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.

Node.js — Web search + news
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',
})
Node.js — Autocomplete + Instant Answer
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))
FAQ

Frequently Asked Questions

Common questions about scraping DuckDuckGo with the API — Python, Node.js, or REST.

Do I need a DuckDuckGo account or API key?

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.

Which regions can I search from?

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.

Are the result URLs usable directly?

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.

What is the difference between /search and /instant?

/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.

What happens if a request is blocked?

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.

Plans & subscriptions

Bigger volume? Save up to 64%

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.

Get started

Start Scraping DuckDuckGo Today

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