All APIs

Search and places

DuckDuckGo Search API

DuckDuckGo Search API returning organic web results as JSON. Filter by country, language, safe search, and time range, with token-based pagination.

Full DuckDuckGo result pages

Each request returns the organic results DuckDuckGo shows for your query as structured JSON: position, title, URL, and snippet, plus pagination state. Add html: true to also retain the source HTML.

Region, language, and recency

Set country and language to match the market you are measuring, choose a safe-search level, and use time_range with d, w, m, or y to restrict results to the past day, week, month, or year.

Rank tracking and research

Track where your pages appear on DuckDuckGo alongside Google and Bing, or give an AI agent a privacy-focused search source through the PrismCrawl MCP server.

Make a request

Use your existing PrismCrawl API key and credit balance. A completed request consumes one credit, including recognized empty or unavailable results and source changes found during a valid continuation. Validation and operational errors remain uncharged. Each completed continuation request is billed separately.

POST /v1/duckduckgo/search
curl 'https://api.prismcrawl.com/v1/duckduckgo/search' \
  --request POST \
  --header 'content-type: application/json' \
  --header 'x-api-key: <PRISMCRAWL_API_KEY>' \
  --data '{
  "country": "us",
  "language": "en",
  "query": "best hiking boots"
}'

Supported parameters

ParameterUsage
queryRequiredText to search for on the selected service.
countryTwo-letter country or storefront code, such as us or gb.
languageProvider-supported language code, such as en.
safeProvider safe-search filtering.

active, strict, moderate, off

time_ranged, w, m, y, or an inclusive date interval YYYY-MM-DD..YYYY-MM-DD.
next_page_tokenCopy the opaque next_page_token from the previous response using the same account, search parameters, device, and result limit. Tokens expire after one hour; restart pagination if rejected or expired.
deviceDevice presentation for the source request.

desktop, mobile, tablet

htmlReturn the encoded original response rather than parsed JSON.
zero_traceDo not archive source or parsed response artifacts.
startNative result offset; cannot be combined with a continuation or a page greater than one.
mMaximum results requested from the native source; initial pages can contain fewer results.
search_assistInclude native Search Assist answers when available. Cannot be combined with m when true.

Structured results

Read items from data.content.results. The response also includes the search metadata, pagination state, and any extracted SERP features. Optional fields appear when supplied by the provider.

addresscategorycoordinatesdescriptiondisplay_urldomainengineidlatitudelongitudenamephonepositionrankratingrating_maxrating_sourcereview_countsnippetthumbnailtitletypeurlwebsite

Continue with data.content.next_page_token when has_next_page is true. Omit page when using a token and keep the other request parameters unchanged, including the query or ID, country, language, device, result limit, and sort order. Stop when no token is returned. Tokens belong to the same account and expire after one hour. Restart pagination if a token is expired or rejected, including tokens issued before authenticated tokens were introduced. If the source inventory changes after a valid continuation is fetched, a completed HTTP 200 response costs one credit and marks pagination_limited: true with pagination_reason: stale_cursor. Keep any returned results and restart pagination; no continuation token is returned.

SDKs and guides

The official SDKs cover this endpoint with typed parameters, automatic retries, and pagination helpers.

Frequently asked questions

Does DuckDuckGo have an official search API?

DuckDuckGo's public Instant Answer API returns topic summaries, not the ranked list of web results. PrismCrawl's DuckDuckGo Search API returns the organic results page as structured JSON.

Do I need a DuckDuckGo API key?

No. You authenticate with your PrismCrawl API key in the x-api-key header. You do not need a DuckDuckGo developer account or DuckDuckGo API key.

How does pagination work?

When more results are available, the response includes next_page_token. Send it with the same query, country, language, and filters to fetch the next page.

How much does the DuckDuckGo Search API cost?

Each completed DuckDuckGo request uses one credit. Credits cost $0.30–$0.15 per 1,000 depending on the package, with no subscription, and new accounts receive 100 free credits. Validation and operational errors are not charged.