Best Buy

Best Buy price, regular price and savings, stock, brand, condition and category by SKU, 1 credit per item.

Embed
Preview of the card
<a href="https://scrapelyserp.com/docs/bestbuy-products"><img src="https://scrapelyserp.com/docs/_api/public/orgs/affc5b0f-d3c2-423a-8143-9d10db5736ae/spaces/981e6275-da3f-446c-82de-889f59c83b6f/pages/471d41bc-9e1d-43e4-897a-fee648e04083/social-card.svg?v=3e7ae33eec8b" alt="Best Buy" width="600" height="315"></a>

Best Buy price, regular price and savings, stock, brand, condition and category by SKU, 1 credit per item.

At a glance

Property

Value

platform

bestbuy

Item id

The SKU shown on the product page (5 to 10 digits). Older product URLs end in it, e.g. …/6505727.p.

Marketplaces

Live: us. Coming soon: ca.

Tier

standard (the default), 1 credit per item

Ids per call

1,000

Typical call

10–15 s for 1,000 SKUs

Example

cURL

curl -X POST "https://api.scrapelyserp.com/v1/products" \
  -H "Authorization: Bearer $SCRAPELY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"platform":"bestbuy","ids":["6505727","6418599"]}'

Python

import os
import requests

HEADERS = {"Authorization": f"Bearer {os.environ['SCRAPELY_API_KEY']}"}

r = requests.post(
    "https://api.scrapelyserp.com/v1/products",
    headers=HEADERS,
    json={"platform": "bestbuy", "ids": ["6505727", "6418599"]},
    timeout=120,
)
r.raise_for_status()
data = r.json()
for p in data["results"]:
    print(p["id"], p["status"], (p.get("availability") or {}).get("inStock"))

Node.js

const res = await fetch('https://api.scrapelyserp.com/v1/products', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.SCRAPELY_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ platform: 'bestbuy', ids: ['6505727', '6418599'] }),
  signal: AbortSignal.timeout(120_000),
});
const data = await res.json();
for (const p of data.results) console.log(p.id, p.status, p.availability?.inStock);

Response

{
  "platform": "bestbuy",
  "marketplace": "us",
  "tier": "standard",
  "results": [
    {
      "id": "6505727",
      "status": "ok",
      "fetchedAt": "2026-10-16T18:15:32.000Z",
      "title": "Sony - WH1000XM5 Wireless Noise-Canceling Over-the-Ear Headphones - Black",
      "url": "https://www.bestbuy.com/product/sony-wh1000xm5-wireless-noise-canceling-over-the-ear-headphones-black/J7XSRH5CXG",
      "price": {
        "amount": 228,
        "currency": "USD"
      },
      "availability": {
        "inStock": true,
        "message": "In stock"
      },
      "bestbuy": {
        "sku": "6505727",
        "state": "available",
        "purchasable": true,
        "brand": "Sony",
        "condition": "new",
        "regularPrice": {
          "amount": 398,
          "currency": "USD"
        },
        "savings": {
          "amount": 170,
          "currency": "USD"
        },
        "onSale": true,
        "category": {
          "department": "AUDIO",
          "class": "HEADPHONES",
          "subclass": "WIRELESS ON/OVER EAR"
        }
      }
    },
    {
      "id": "6418599",
      "status": "not_found",
      "fetchedAt": "2026-10-16T18:15:32.000Z"
    }
  ],
  "stats": {
    "requested": 2,
    "ok": 1,
    "partial": 0,
    "notFound": 1,
    "unavailable": 0,
    "elapsedMs": 1140
  },
  "credits": 2
}

Best Buy fields

Besides the common fields, each result carries a bestbuy object. price is the current price (the sale price when on sale).

Field

Description

bestbuy.state

available, sold_out, in_store_only, pre_order, coming_soon, queue, unavailable, other. Only available is in stock.

bestbuy.purchasable

Best Buy says it can be bought at all, online or in store.

bestbuy.regularPrice, savings, onSale

The regular price, what the sale takes off, and whether it is on sale.

bestbuy.brand, condition, category

Brand, condition (new, refurbished, open-box, …) and the department / class / subclass.

availability.inStock is true only when the item can be bought online now.

Statuses on Best Buy

  • partial: the SKU answered without a price or title. Ask again later.

  • not_found: Best Buy has no such SKU, or no longer sells it. Delist it.

Watchlists

A watchlist with "platform": "bestbuy" reads each SKU once per run and reports changes to price, inStock, state, regularPrice, purchasable.

Updated