Google Yahoo DuckDuckGo

Cheapest Shopping Search API for Developers

Product listings across Google, Yahoo, DuckDuckGo & Brave — titles, prices, merchants, ratings & review counts as structured JSON.

Get an API Key Documentation
Four engines: google · yahoo · ddg · brave From $0.18/1K calls Price and currency fields

Run a live shopping search

One free run per day without signing up — a free account adds 10 free calls shared across services.

One Product Search API, Four Engines

Choose Google, Yahoo, DuckDuckGo or Brave for dedicated product search. All four share one price per tier; Google answers in its own key names, the other three in one card-style shape.

Call the Product Search API from cURL, Python or Node

One API call returns a structured list of products. Google is the default engine — pass engine=yahoo, engine=ddg, or engine=brave to switch.

cURL - Google Shopping
# Search Google Shopping for nike running shoes
curl "https://apiserpent.com/api/shopping?q=nike+running+shoes&engine=google&num=10" \
  -H "X-API-Key: YOUR_API_KEY"
JSON Response (engine=google)
{
  "success": true,
  "query": "nike running shoes",
  "type": "shopping",
  "engine": "google",
  "country": "us",
  "results": {
    "shopping": [
      {
        "position": 1,
        "title": "Nike Vomero 18 Men's Road Running Shoes",
        "link": "https://www.nike.com/...",
        "source": "Nike",
        "price": "$150.00",
        "currency": "USD",
        "thumbnail": "https://.../product.jpg",
        "product_rating": 4.7,
        "product_reviews": 128,
        "sponsored": false,
        "snippet": "A stable, responsive daily trainer..."
      }
    ],
    "totalResults": 10
  },
  "meta": {
    "totalShopping": 10,
    "elapsed": "4200ms",
    "timestamp": "2026-08-04T10:30:00.000Z"
  }
}
Python (requests) — engine=google
import os
import requests

resp = requests.get(
    "https://apiserpent.com/api/shopping",
    params={"q": "nike running shoes", "engine": "google", "num": 10, "country": "us"},
    headers={"X-API-Key": os.environ["SERPENT_API_KEY"]},
    timeout=60,
)
data = resp.json()
if not data.get("success"):
    raise SystemExit(data.get("message"))

for p in data["results"]["shopping"]:
    # engine=google keys; yahoo/ddg/brave use url, merchant and extractedPrice instead
    print(p["position"], p["title"], p["extracted_price"], p["currency"], p["source"], p["link"])
Node.js (fetch) — engine=yahoo
// Node 18+ has fetch built in. Save as shopping.mjs and run: node shopping.mjs
const params = new URLSearchParams({ q: "nike running shoes", engine: "yahoo", num: "10", country: "us" });
const res = await fetch(`https://apiserpent.com/api/shopping?${params}`, {
  headers: { "X-API-Key": process.env.SERPENT_API_KEY },
});
const data = await res.json();
if (!data.success) throw new Error(data.message);

// Card-style keys (yahoo, ddg, brave). Rows without a price have extractedPrice === null.
for (const p of data.results.shopping) {
  console.log(p.position, p.title, p.extractedPrice, p.currency, p.merchant, p.url);
}

Price, currency and ratings are filled when the product listing shows them and null otherwise. engine=google returns link/source/product_rating; engine=yahoo, engine=ddg, and engine=brave return url/merchant/rating. Use format=simple for a lighter payload.

Structured Product Data from Every Engine

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

Product Fields

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

Request Parameters

  • q (product query)
  • engine (google | yahoo | ddg | brave)
  • num (1–100; up to num)
  • country (localization)
  • language (2-letter code)
  • format (full | simple)

Engine Comparison

  • Google: engine=google (default)
  • Yahoo: engine=yahoo
  • DuckDuckGo: engine=ddg
  • Brave: engine=brave
  • Same price per tier on all four
  • One API key, one endpoint

Use Cases

  • Competitive price monitoring
  • SKU & product matching
  • Ecommerce market research
  • Product feed validation
  • Price-drop alerting

Shopping API Questions

It is a product search API: you send a query such as “nike running shoes” and get back the products a search shows for it, as structured rows rather than a web page. Each row here carries a title, the price as shown plus a numeric price and currency code, the store, a product link, an image, and rating and review count where the listing has them — the raw material for price monitoring, SKU matching and assortment research.
The Shopping API returns product results as structured JSON with position, title, price as shown plus a numeric price and currency code (where the listing shows a price), merchant and store names, product URL, thumbnail, rating, and review count. Use format=simple to get just position, title, price, merchant, URL, and thumbnail.
Shopping search is $0.35 per 1,000 calls on the Default tier, $0.32 per 1,000 on Growth after one $100 deposit, $0.25 per 1,000 on Scale after one $500 deposit, $0.21 per 1,000 on Enterprise after one $1,000 deposit and $0.18 per 1,000 on Enterprise Plus after one $1,250 deposit, with all four engines sharing the same price within each tier. One free run per day without signing up — a free account adds 10 free calls shared across services.
The Shopping API supports engine=google (default), engine=yahoo, engine=ddg, and engine=brave. Google returns Google-style fields (link, source, product_rating); the other three return card-style fields (url, merchant, store, rating, reviews). All four share the same pricing, so you can compare product availability across engines with the same call shape.
No. Paid credits never expire. There is no monthly subscription and no minimum balance to start — you buy credits once and use them whenever you need. Read how credit expiry compares across providers.
No. A row carries a price when the product listing shows one; when it shows none, price, extractedPrice and currency are null and the row is still returned. Rating and review count follow the same rule. A query that is not about a buyable product can come back with few or no priced rows, so filter on the numeric price before you compare anything.
The Shopping API (/api/shopping) is a dedicated product search endpoint: every row is shaped as a product, with price, currency and store fields. The Web SERP API (/api/search) returns organic search results, which may include a Shopping carousel or product listings section among other SERP features. Use the dedicated endpoint when you want product data specifically.

Start using the Shopping Search API

One free run per day without signing up — a free account adds 10 free calls shared across services. Product search on Google, Yahoo, DuckDuckGo and Brave from $0.18 per 1,000 calls.

Get an API Key Documentation

Related guides

More shopping and search APIs.

Free Google Shopping APIGoogle closed its own. Compare the near-free options. Google Shopping APIGoogle Shopping product search via /api/shopping. Yahoo Shopping APIYahoo Shopping product listings via engine=yahoo. All SERP APIsWeb, news, images, and video across five engines. Ecommerce Price IntelligenceMonitor competitor prices with a SERP API. Price MonitoringBuild an automated price-drop alert system. SKU Matching in PythonCompetitor product matching with confidence buckets.