Yahoo Shopping API: Product Data from PLA Results

By Serpent API Team · · 5 min read

Search “iphone 15 case” on Yahoo and the top of the results page is a grid of product cards — a photo, a title, a price, a store name, and a rating. These product-listing placements are the shopping SERP's equivalent of PLA (product listing ads) results, and for ecommerce research they are often more useful than organic links: each card is a concrete offer from a specific merchant at a specific price.

Nearly every Shopping API on the market is Google-only. Yahoo Shopping is a real product index with its own merchants, prices, and listings — and very few providers expose it as data. The Serpent Yahoo Shopping API turns those product cards into structured JSON through a single REST endpoint, and Yahoo is actually the default engine.

TL;DR: A bare call to /api/shopping?q=PRODUCT returns Yahoo Shopping product listings as JSON — no engine parameter needed (engine=yahoo is the default). Each result has position, title, price, merchant/store, url, thumbnail, rating, and reviews. Prices are returned where the merchant placement renders them — some placements omit a price, so price can be null.

What PLA-style product results look like

Product-listing placements — the cards you see at the top of a shopping SERP — are compact offers rather than organic blue links. Each one bundles the product's name, a thumbnail, the merchant selling it, and usually a price. Some also carry a rating and a review count. They are exactly the data a price-monitoring or competitive-research pipeline wants: a normalized set of offers for one product, ranked by position.

Yahoo Shopping is notable for how well-structured these cards are. That structure is what makes it the most reliable default for product search — the placement is stable and consistent across queries, so the returned fields stay predictable.

The endpoint: /api/shopping with engine=yahoo

The Shopping endpoint is /api/shopping. Yahoo is the default engine, so a plain request returns Yahoo Shopping results without any extra parameters. Add engine=yahoo explicitly when you want to be unambiguous, and switch to engine=google to pull the Google Shopping grid through the same shape.

ParameterWhat it does
qThe product query (“iphone 15 case”)
engineyahoo (default) or google
numNumber of products per call, up to 100
countryTwo-letter ISO code to localize product results
languageOptional two-letter language code
formatfull or simple

A first request looks like this:

https://apiserpent.com/api/shopping?q=iphone+15+case&engine=yahoo&num=10&country=us

A working Node.js example

Here is the whole thing in Node.js with fetch — query Yahoo Shopping, then print each product's title, price, and merchant:

const res = await fetch(
  'https://apiserpent.com/api/shopping?q=iphone+15+case&engine=yahoo&num=10',
  { headers: { 'X-API-Key': 'YOUR_API_KEY' } }
);
const json = await res.json();

for (const p of json.results.shopping) {
  console.log(p.position, p.title, p.price ?? 'no price', p.merchant);
}

Five lines. No parser to maintain, no HTML to clean — the product cards arrive as JSON objects ready to store in a database, compare, or feed into a price-alerting loop.

The response shape and the honest price field

Each product result carries the fields that make up the card: position, title, price, currency, merchant, store, url, thumbnail, rating, reviews, sponsored, and snippet. A typical item looks like this:

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

One honest caveat: a price is not returned for every placement. Some product cards render without a visible price, so price (and rating/reviews) can be null on individual results. This is not a bug — the shopping source itself simply does not show a price for that placement. Build your pipeline to treat null prices as expected (use p.price ?? 'no price', or skip nulls when averaging) rather than assuming every result has one.

Price monitoring with Yahoo Shopping

Because each result is a merchant offer at a specific price, Yahoo Shopping data is a natural fit for price monitoring. Query a product on a schedule, normalize the price strings to a numeric value, and track the lowest offer per product over time. When the minimum drops below a threshold, you have a price-drop signal.

Yahoo's product index is independent of Google's, so its merchants and prices are often different — which is precisely why a second shopping engine is valuable. Monitoring both gives you a broader view of the market and lets you cross-check a price change instead of trusting a single source.

Google + Yahoo: two independent indexes

Google and Yahoo Shopping are separate product indexes. The same query can surface different merchants, different prices, and different product availability in each. Both engines flow through the same /api/shopping endpoint with the same normalized fields, so switching between them is a one-parameter change: engine=google vs. engine=yahoo. Querying both is the foundation of cross-engine price comparison — covered in our Google vs Yahoo price comparison guide and our Shopping API hub.

Pricing

Yahoo 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 requires paid credits from call 1 — credits never expire and there is no monthly subscription. The flat per-call model keeps monitoring predictable: the bill scales with how many product queries you actually run, not with how many SKUs you track.

Yahoo Shopping product cards, as JSON.

Serpent returns Yahoo Shopping product listings — titles, prices, merchants, URLs, and thumbnails — through one endpoint, with Google Shopping one parameter away. Pay-as-you-go, credits never expire, no subscription.

Get Your Free API Key

Explore: Yahoo Shopping API · Shopping API · Docs · Playground

FAQ

What Yahoo Shopping data does the API return?

The Yahoo 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 100 products per call.

Why is Yahoo the default engine for the Shopping API?

Yahoo Shopping offers stable, well-structured product-card listings, which makes it the most reliable default for product search. You can switch to Google Shopping at any time by passing engine=google.

Is a price always returned for every product?

No. Prices, ratings, and review counts are returned when the shopping source provides them. Some product placements render without a visible price, so the price field can be null. Always handle null prices in your pipeline rather than assuming every result has one.

How much does the Yahoo Shopping API cost?

Yahoo 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 requires paid credits from call 1. Credits never expire and there is no monthly subscription.