Skip to content
SpideyData

DuckDuckGo · field reference

DuckDuckGo SERP API

Every field, annotated.

DuckDuckGo: live · not GA

You already know you need DuckDuckGo results. Here is one request and the full response, annotated line by line, plus how to handle the fields that can be null.

DuckDuckGo organic · CA
curl -X POST https://kieapi.com/v1/serp/duckduckgo/organic -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
  -d '{"q":"static site generator","country":"CA"}'

Annotated response

SerpOrganicResponse for DuckDuckGo (jsonc)
{
  "engine": "duckduckgo",               // path engine
  "query": {"q": "static site generator", "country": "CA"},
  "request_url": "<request_url>",       // upstream URL fetched
  "status_code": 200,                   // upstream HTTP status
  "classification": "<classification>", // fetch classification (a string)
  "organic": [{"rank": 1, "title": "…", "url": "…", "display_url": null, "snippet": "…"}],
  "modules": {},                        // open object, nothing promised
  "organic_count": 1                    // length of organic[]
}

Nullability notes

  • title and url are always strings; key your storage on url.
  • display_url can be null: derive a host from url if you need one for display.
  • snippet can be null: store an empty value rather than dropping the row.
  • rank can be null: fall back to the row's index in organic[].

News results?

DuckDuckGo News is not offered. Google News has its own endpoint.

Launch status for this page

Check engine availability before choosing an endpoint. Google also supports News, Images and asynchronous tasks.

  • DuckDuckGoLiveDuckDuckGo is callable today with a Bearer API key.

SERP searches are charged per successful search at a display rate of 2 Credits per search; failed searches are not charged. Polling task status is free. The current rate is on Pricing.

What this is not

  • No DuckDuckGo News or images.
  • No language parameter.
  • No task queue.
  • classification values are not enumerated.

Frequently asked questions

What does status_code represent?

The HTTP status of the upstream fetch, as an integer.

Is rank always present?

No. rank can be null.

Can I set language?

No. The DuckDuckGo body has only q and country.

Does DuckDuckGo have a task queue?

No. It is synchronous only.

Parse DuckDuckGo with confidence

Get an API key; the annotated response above is what you will receive.