DuckDuckGo

DuckDuckGo Shopping API from $0.03/1K

Search DuckDuckGo product listings through a single REST endpoint — one of four engines in the Serpent Shopping API. Get titles, prices, merchants, thumbnails, ratings, and review counts as structured JSON.

View Pricing API Documentation Try the Playground
engine=ddg Four engines: google · yahoo · ddg · brave From $0.03/1K at Scale Separate currency field Pay-as-you-go, no minimum 10 shared free calls

A Fourth Shopping Source, In the Same Endpoint

Most Shopping APIs are Google-only. The Serpent Shopping API spreads across four engines — Google, Yahoo, DuckDuckGo, and Brave — so you can compare what each surfaces for the same product query without juggling a different API per source.

Pass engine=ddg and the endpoint returns DuckDuckGo product listings as structured JSON with the same normalized fields as the other card-based engines. DuckDuckGo results use the Yahoo-style field shape (url, merchant, store, rating, reviews) so switching between card-based engines is a one-parameter change.

Four engines, one endpoint. Pass engine=google|yahoo|ddg|brave. Yahoo is the default — a bare call to /api/shopping?q=<query> returns Yahoo Shopping results.
cURL - DuckDuckGo Shopping (engine=ddg)
# Search DuckDuckGo Shopping for iphone 15 case
curl "https://apiserpent.com/api/shopping?q=iphone+15+case&engine=ddg&num=10&country=us" \
  -H "X-API-Key: YOUR_API_KEY"
Python
import requests

resp = requests.get(
    "https://apiserpent.com/api/shopping",
    params={"q": "iphone 15 case", "engine": "ddg", "num": 10},
    headers={"X-API-Key": "YOUR_API_KEY"},
    timeout=60,
)
for p in resp.json()["results"]["shopping"]:
    print(p["title"], p.get("price"), p.get("merchant"))
Node.js
const res = await fetch(
  "https://apiserpent.com/api/shopping?q=iphone+15+case&engine=ddg&num=10",
  { headers: { "X-API-Key": "YOUR_API_KEY" } },
);
const { results } = await res.json();
for (const p of results.shopping) {
  console.log(p.title, p.price, p.merchant);
}
JSON Response (engine=ddg)
{
  "success": true,
  "query": "iphone 15 case",
  "type": "shopping",
  "engine": "ddg",
  "country": "us",
  "results": {
    "shopping": [
      {
        "position": 1,
        "title": "Spigen Mag Armor MagFit for iPhone 15",
        "price": "$49.99",
        "currency": "USD",
        "merchant": "spigen.com",
        "store": "spigen.com",
        "url": "https://spigen.com/products/...",
        "thumbnail": "https://.../product.jpg",
        "rating": 4.5,
        "reviews": 342,
        "sponsored": true,
        "snippet": "Shockproof military-grade case with built-in MagSafe..."
      }
    ],
    "totalResults": 10
  },
  "meta": {
    "totalShopping": 10,
    "elapsed": "4100ms",
    "timestamp": "2026-08-06T10:30:00.000Z"
  }
}

Price, rating, and review count are returned when the underlying shopping source provides them.

Why a fourth shopping engine matters

Google, Yahoo, DuckDuckGo, and Brave are independent sources. The same query can surface different merchants, different prices, and different product availability in each. Querying all four gives you a broader, more representative view of the market — and lets you cross-check price movements instead of trusting a single source.

Because all four engines flow through the same endpoint with the same normalized fields, switching between them is a one-parameter change (engine=google, engine=yahoo, engine=ddg, or engine=brave).

Structured DuckDuckGo Shopping Product Data

Every product result includes the fields you need for price monitoring, product matching, and ecommerce research.

Product Fields

  • shopping[].position
  • shopping[].title
  • shopping[].price
  • shopping[].merchant
  • shopping[].store
  • shopping[].url
  • shopping[].thumbnail
  • shopping[].rating
  • shopping[].reviews

Request Parameters

  • q (product query)
  • engine (google | yahoo | ddg | brave)
  • num (results count, up to 20)
  • country (localization)
  • language (2-letter code)
  • format (full | simple)

Use Cases

  • Cross-engine price monitoring
  • Merchant coverage comparison
  • Product & SKU matching
  • Ecommerce market research
  • Price-drop alerting

Pricing

  • Default: $0.60/1K
  • Growth: $0.06/1K
  • Scale: $0.03/1K
  • Included in 10 shared free calls
  • Credits never expire

DuckDuckGo Shopping API Questions

The DuckDuckGo Shopping API returns product listings as structured JSON with position, title, price (where available), merchant and store names, product URL, thumbnail, rating, and review count. Use num to request up to 20 products per call.
The Shopping API supports four engines — google, yahoo (default), ddg, and brave. DuckDuckGo results use the same normalized card fields as Yahoo and Brave (url, merchant, store, price, rating, reviews), while engine=google returns Google-style fields (link, source, product_rating). Switching engines is a one-parameter change.
Each engine surfaces its own mix of merchants, prices, and product availability for the same query. Querying multiple engines through the same endpoint gives you a broader view of the market for a product.
DuckDuckGo Shopping search costs $0.60 per 1,000 requests on the Default tier, $0.06 per 1,000 on Growth, and $0.03 per 1,000 on Scale. Shopping is included in the shared 10 free calls new accounts receive across every endpoint. Credits never expire and there is no monthly subscription.
Prices, ratings, and review counts are returned when the shopping source provides them. Every product result includes position, title, price, merchant and store names, URL, and thumbnail.

Start using the DuckDuckGo Shopping API

Pull DuckDuckGo product listings as structured JSON for as little as $0.03 per 1,000 calls.

View Pricing Try the Playground

Related guides

More shopping and search APIs.

Shopping APIFour-engine product search (google · yahoo · ddg · brave) in one endpoint. Brave Shopping APIBrave product search via /api/shopping?engine=brave. Price Monitoring with SERP APIBuild a price monitoring tool with a SERP API. All SERP APIsWeb, news, images, and video across five engines.