Best Buy API

Read Best Buy prices, stock and reviews by SKU

The Best Buy API returns Best Buy product data — prices, ratings and availability — as clean JSON.

no credit card1,000 free credits · instant API key · pay by card or crypto
Missing a Best Buy endpoint, or need a source we don't have yet?Contact us real people · same-day reply.
B
/bestbuy/v1

15 active endpoints, on 1, 2 and 5 credit tiers.

  • POST/bestbuy/v1/search
  • POST/bestbuy/v1/product_detail
  • POST/bestbuy/v1/products_batch
  • POST/bestbuy/v1/reviews
  • POST/bestbuy/v1/review_summary
  • POST/bestbuy/v1/search_suggestions
  • POST/bestbuy/v1/popular_terms
  • +8 more

What Best Buy endpoints does ReefAPI ship?

15 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.

15 endpoints

search

2 cr

Search Best Buy by keyword → a paginated, sortable, filterable list of products with name, br…

required
query
optional
max_results, page, sort, brand, min_price, max_price, min_rating, condition, category, include_sponsored

product_detail

2 cr

Get the full product card for one Best Buy item by its product number, URL, or product-id → n…

required
optional
sku, url

products_batch

5 cr

Look up MANY Best Buy products in ONE call by product number.

required
skus
optional

reviews

1 cr

Get customer reviews for a Best Buy product → each review's star rating, title, full text, au…

required
optional
sku, url, page, page_size, sort

review_summary

1 cr

Get the review snapshot for a Best Buy product → average rating, total review count, verified…

required
optional
sku, url

search_suggestions

1 cr

Get Best Buy search autocomplete suggestions for a partial query → the suggested search terms…

required
query
optional
limit

popular_terms

1 cr

Get Best Buy's currently trending / most-popular search terms (no input needed).

required
optional

price

1 cr

Get the live pricing for a Best Buy product by SKU → current price, regular price, savings, c…

required
sku
optional

gifts

1 cr

Get the Gift-With-Purchase offers for a Best Buy product by SKU → each promotional offer (e.g.

required
sku
optional

description

2 cr

Get a Best Buy product's full description and complete technical specifications by SKU → the…

required
optional
sku, url

deals

1 cr

Browse Best Buy's current deals.

required
optional
sort, max_results, page, include_sponsored

trending

1 cr

Get Best Buy's trending-right-now search terms.

required
optional

qa

1 cr

Get the customer questions & answers for a Best Buy product → each question with its author,…

required
optional
sku, url, page, page_size, sort

store_availability

1 cr

Check whether a Best Buy product (by SKU) is available to buy for a given ZIP code (and optio…

required
sku
optional
zip, store_id

categories

1 cr

Discover the categories and filter facets available for a Best Buy keyword search → the categ…

required
query
optional
category

Every parameter, every allowed value →

Best Buy API

3 of 15 endpoints, ready to run

View docs ↗

The results grid, and the richest one in this batch: SKU, name, brand, model, a full price object with the savings worked out, the star rating with its review count, and the stock state.

2 credits1 required · 4 optional
POST/bestbuy/v1/search
ok6712 ms · 20 records · sample
{
  "ok": true,
  "meta": {
    "api": "bestbuy",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": 6712.2,
    "record_count": 20,
    "cache_hit": false
  },
  "data": {
    "query": "laptop",
    "results": [
      {
        "sku": "6671015",
        "name": "ASUS - Zenbook S14 14\" OLED 3K Touchscreen - Intel Core Ultra 9 Processor 2026 - 32GB Memory - 1TB Storage - Copilot+ PC - Scandinavian White",
        "brand": "ASUS",
        "model": "UX5406AA-ZB/S14_90",
        "price": {
          "current": 1899.99,
          "regular": 1899.99,
          "savings": null,
          "savings_pct": null,
          "currency": "USD"
        },
        "rating": {
          "average": 4.7,
          "review_count": 61
        },
        "availability": {
          "in_stock": true,
          "button_state": "ADD_TO_CART",
          "ship_by": null,
          "display_status": "active"
        },
        "image": "https://pisces.bbystatic.com/image2/BestBuy_US/images/products/7f2d1253-8029-492f-8c39-cb6c4eb14dd0.jpg",
        "images": [
          "https://pisces.bbystatic.com/image2/BestBuy_US/images/products/7f2d1253-8029-492f-8c39-cb6c4eb14dd0.jpg"
        ],
        "url": "https://www.bestbuy.com/product/asus-zenbook-s14-14-oled-3k-touchscreen-intel-core-ultra-9-processor-2026-32gb-memory-1tb-storage-copilot-pc-scandinavian-white/JJGHGS78FR/sku/6671015",
        "category": {
          "class_id": "770"
        },
        "category_path": null,
        "product_type": [
          "Laptop Computer"
        ],
        "variants": null,
        "offers": [
          {
            "name": "PWP Global",
            "id": "57053687"
          },
          {
            "name": "PWP Global",
            "id": "759129"
          },
          {
            "name": "PWP Global",
            "id": "875740"
          }
        ],
        "seller_type": "1P",
        "seller_id": "bby",
        "open_box": {
          "available": true,
          "from_price": null,
          "condition_codes": [
            "2",
            "1",
            "0"
          ]
        },
        "condition": "new",
        "sponsored": true
      },
      {
        "sku": "6673811",
        "name": "Lenovo - IdeaPad Slim 3 Chromebook - 14\" 2K Touchscreen Laptop - MediaTek Kompanio 540 2025 - 4GB Memory - 64GB eMMC - Cosmic Blue",
        "brand": "Lenovo",
        "model": "83SX0000US",
        "price": {
          "current": 349,
          "regular": 419,
          "savings": 70,
          "savings_pct": 16,
          "currency": "USD"
        },
        "rating": {
          "average": 4.6,
          "review_count": 74
        },
        "availability": {
          "in_stock": true,
          "button_state": "ADD_TO_CART",
          "ship_by": null,
          "display_status": "active"
        },
        "image": "https://pisces.bbystatic.com/image2/BestBuy_US/images/products/a69588e3-2c25-4d64-bed1-e855f4fed90d.jpg",
        "images": [
          "https://pisces.bbystatic.com/image2/BestBuy_US/images/products/a69588e3-2c25-4d64-bed1-e855f4fed90d.jpg",
          "https://pisces.bbystatic.com/image2/BestBuy_US/images/products/11b97a92-09ad-4ae3-af23-2796b9461141.jpg",
          "https://pisces.bbystatic.com/image2/BestBuy_US/images/products/c8685372-2779-4b84-9b9e-3420afd149d7.jpg"
        ],
        "url": "https://www.bestbuy.com/product/lenovo-ideapad-slim-3-chromebook-14-2k-touchscreen-laptop-mediatek-kompanio-540-2025-4gb-memory-64gb-emmc-cosmic-blue/JJGH3QCJKR/sku/6673811",
        "category": {
          "class_id": "769"
        },
        "category_path": null,
        "product_type": [
          "Chromebook",
          "Laptop Computer"
        ],
        "variants": {
          "types": [
            "Color"
          ],
          "options": [
            {
              "sku": "6673811",
              "code": "JJGH3QCJKR",
              "values": {
                "Color": "Cosmic Blue"
              },
              "image": "https://pisces.bbystatic.com/image2/BestBuy_US/images/products/a69588e3-2c25-4d64-bed1-e855f4fed90d.jpg"
            },
            {
              "sku": "12994365",
              "code": "J2VJR6G5XJ",
              "values": {
                "Color": "Cosmic Blue + Carry case"
              },
              "image": "https://pisces.bbystatic.com/image2/BestBuy_US/images/products/11b97a92-09ad-4ae3-af23-2796b9461141.jpg"
            },
            {
              "sku": "12994367",
              "code": "J2VJRRG9H6",
              "values": {
                "Color": "Cosmic Blue + Carry case + Monitor"
              },
              "image": "https://pisces.bbystatic.com/image2/BestBuy_US/images/products/c8685372-2779-4b84-9b9e-3420afd149d7.jpg"
            }
          ]
        },
        "offers": [
          {
            "name": "PWP Global",
            "id": "57053687"
          },
          {
            "name": "PWP Global",
            "id": "873929"
          },
          {
            "name": "PWP Global",
            "id": "799781"
          }
        ],
        "seller_type": "1P",
        "seller_id": "bby",
        "open_box": {
          "available": true,
          "from_price": null,
          "condition_codes": [
            "0",
            "2",
            "1"
          ]
        },
        "condition": "new",
        "sponsored": false
      },
      {
        "sku": "6668953",
        "name": "Dell - 15.6\" 2K Touchscreen Laptop - Intel 13th Generation Core i5 1334U 2023 - 8GB Memory - 512 GB Storage - Carbon Black",
        "brand": "Dell",
        "model": "LDC15250-5434BLK-PUS",
        "price": {
          "current": 449.99,
          "regular": 849.99,
          "savings": 400,
          "savings_pct": 47,
          "currency": "USD"
        },
        "rating": {
          "average": 4.5,
          "review_count": 187
        },
        "availability": {
          "in_stock": true,
          "button_state": "ADD_TO_CART",
          "ship_by": null,
          "display_status": "active"
        },
        "image": "https://pisces.bbystatic.com/image2/BestBuy_US/images/products/12d8df20-f834-486b-bc00-5ddcd1b3dc33.jpg",
        "images": [
          "https://pisces.bbystatic.com/image2/BestBuy_US/images/products/12d8df20-f834-486b-bc00-5ddcd1b3dc33.jpg",
          "https://pisces.bbystatic.com/image2/BestBuy_US/images/products/b427322a-74cf-4ecc-ae26-0ab1556e7639.png"
        ],
        "url": "https://www.bestbuy.com/product/dell-15-6-2k-touchscreen-laptop-intel-13th-generation-core-i5-1334u-2023-8gb-memory-512-gb-storage-carbon-black/J3K4L6QW5Y/sku/6668953",
        "category": {
          "class_id": "768"
        },
        "category_path": null,
        "product_type": [
          "Laptop Computer"
        ],
        "variants": {
          "types": [
            "Color"
          ],
          "options": [
            {
              "sku": "6668953",
              "code": "J3K4L6QW5Y",
              "values": {
                "Color": "Carbon Black"
              },
              "image": "https://pisces.bbystatic.com/image2/BestBuy_US/images/products/12d8df20-f834-486b-bc00-5ddcd1b3dc33.jpg"
            },
            {
              "sku": "11968126",
              "code": "J3K4L6L9TW",
              "values": {
                "Color": "Black"
              },
              "image": "https://pisces.bbystatic.com/image2/BestBuy_US/images/products/b427322a-74cf-4ecc-ae26-0ab1556e7639.png"
            }
          ]
        },
        "offers": [
          {
            "name": "PWP Global",
            "id": "759129"
          },
          {
            "name": "PWP Global",
            "id": "57053687"
          },
          {
            "name": "PWP Global",
            "id": "873929"
          }
        ],
        "seller_type": "1P",
        "seller_id": "bby",
        "open_box": {
          "available": true,
          "from_price": null,
          "condition_codes": [
            "2",
            "1",
            "0"
          ]
        },
        "condition": "new",
        "sponsored": false
      }
    ]
  }
}
Real response, fetched from the live endpoint with the parameters on the left — trimmed to the first few rows, with seller names left out. Press Try it for the untrimmed response.

How the Best Buy API works

Best Buy is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.

01
Authenticate
x-api-key header

No OAuth app, no request signing, no per-site account. One key covers all 184 engines.

02
Call
POST /bestbuy/v1/…

Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.

03
Pay
1 or 2 or 5 credits per call

Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.

04
Read
{ ok, data, meta, error }

One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.

Track a clearance shelf without guessing what a discount means

Best Buy prints a regular price and a current price and labels the reason. The price endpoint returns all of it for one flat credit, which makes a daily discount monitor cheap to run.

01search
POST/bestbuy/v1/search
{"query": "laptop", "max_results": 20, "sort": "price_low"}

Two flat credits for the whole call. Rows already carry price.current, price.regular, price.savings and price.savings_pct.

02price
POST/bestbuy/v1/price
{"sku": "6572182"}

One credit, sub-second. Adds pricing_type — sale, clearance, or MAP — so you know whether a discount is a promotion or a run-out.

03store_availability
POST/bestbuy/v1/store_availability
{"sku": "6572182", "zip": "10001"}

One credit. Whether the item can actually be had, rather than merely listed.

Every endpoint on this engine is flat-priced, so a fifteen-endpoint monitor costs exactly what you can count on your fingers: no per-row arithmetic anywhere.

request
curl -X POST https://api.reefapi.com/bestbuy/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"laptop"}'
response envelope
{
  "ok": true,
  "data": { … },
  "meta": {
    "api": "bestbuy",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": …,
    "record_count": …
  },
  "error": null
}

Best Buy SKU, product-id code and UPC: which identifier goes where

Best Buy uses three different codes for the same product and the product URL contains two of them. Every action here takes the product number, but several also accept the URL code or the full link, and the UPC only ever comes back in a response. Measured on 2026-08-27 with live search, product_detail, products_batch, deals and price calls.

IdentifierShape (measured)ExampleWhere it works
SKU / product number7 or 8 digits6397846, 13006703the sku parameter on every action; skus[] on products_batch
URL product-id code10 characters, uppercase letters and digitsJJGCQLKXL7the same sku parameter on product_detail, reviews, description, similar
Full product URL/product/<slug>/<code>/sku/<sku>www.bestbuy.com/product/apple-macbook-air-.../JJGCQLKXL7/sku/6397846the url parameter
UPC12 digits (UPC-A)195950690200returned by product_detail, products_batch, description; never an input
Promotion offer id6 digits871883returned inside price.offers[] and the gifts action

An identifier the engine cannot classify is rejected before any upstream call: passing sku 'BADSKU1' returned error code MISSING_PARAM with the message 'could not recognise the product identifier'. A well-formed SKU that Best Buy does not resolve behaves differently in products_batch, where it comes back in not_found[] instead of being dropped: a three-SKU call with one fake number returned record_count 2 and not_found ['0000000'].

Which endpoint carries which field, and what happens when you ask wide

Measured on 2026-08-27 across laptops, televisions and appliances, paging to 200 rows and to page 40. Four of these lines go against us.

price is an object, and it tells you why

current, regular, savings, savings_pct, currency, and pricing_type reading sale, clearance or MAP. is_map flags a minimum-advertised-price item, where the shown figure is not the real one. This is the most explicit price contract in the batch: you never have to infer a discount by subtracting two numbers yourself.

A rating of 0 is not a missing rating

rating comes back as an object with average and review_count, and an un-reviewed product returns average 0 with review_count 0 — not null. Filtering on average > 0 and filtering on review_count > 0 mean the same thing here, but treating 0 as a real score will drag every average you compute downwards.

The fields are split across endpoints in a way you have to plan for

Against us. model, category and product_type arrive on search rows but came back null on product_detail. UPC, weight, dimensions and the specification table are on the description endpoint, not on detail. manufacturer and UPC are on products_batch. There is no single call that returns everything, and the split is not the one you would guess.

product_detail's average rating can be null; review_summary's never was

Against us. On one of two SKUs, product_detail returned rating.average as null while carrying a review_count of 35 — and review_summary for the same SKU answered 4.34, as did the search row. If the average matters, take it from review_summary, which is a flat credit and sub-second.

Asking wider returns thinner rows, and the response admits it

Against us, but honestly reported: at 20 rows every field was filled on every row. At 200 rows, meta reported incomplete 111 and with_price 89, and the rows bore it out — brand on 182 of 200, model on 65, condition on 89. The wide call still returns 200 real SKUs with prices and ratings; it does not return 200 fully hydrated products. Read meta.incomplete before you trust a wide sweep.

seller and category_path are never filled

Against us. Across every call in every category, seller, category_path and open_box came back null — 200 out of 200 rows on the deepest sweep. Best Buy's marketplace sellers are not exposed by this engine. If your question is who is selling it, this is not the source.

Deep paging works, unusually well

Page 20 and page 40 of the same query each returned 30 fresh rows with zero overlap between them. Where most engines in this batch die somewhere in the first dozen pages, this one was still serving new SKUs at page 40.

Everything is flat-priced

search, product_detail and description at 2 credits, products_batch at 5 for the batch, and every other endpoint — reviews, review_summary, price, qa, store_availability, deals, trending, categories, gifts, search_suggestions, popular_terms — at 1. No per-row billing anywhere on this engine, which is what makes the wide sweep affordable even when it is thin.

The small endpoints are fast

price, review_summary, store_availability and reviews all answered in well under a second on our run; search took four to six seconds for 20 rows and about nineteen for 200; deals took twelve. Build the monitor out of the small ones.

What people build with Best Buy

The jobs this data is most often used for.

15

endpoints

1/2/5

credits per call

01

Pricing teams call search and price to track Best Buy prices, deals and savings against competitors.

02

Catalog-enrichment tools use product_detail to fill product pages with specs, images and availability.

03

Review-analysis products pull reviews and review_summary to monitor sentiment and ratings for a SKU.

What Best Buy data costs

The cheapest call here is 1 credit, so $15/mo (Pro) buys 10,000 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.

Full pricing →
$0.67–$1.50 / 1,000 credits
  • 1,000 free credits on signup, no card
  • One key, all 184 APIs, one credit pool
  • Failed and blocked calls are never charged
  • Credits roll over and never expire

Call it in two lines

Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.

curl
curl -X POST https://api.reefapi.com/bestbuy/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"laptop"}'
python
import requests

r = requests.post(
    "https://api.reefapi.com/bestbuy/v1/search",
    headers={"x-api-key": REEF_KEY},
    json={
  "query": "laptop"
},
)
print(r.json()["data"])
FAQ

Have a question? We got answers.

The questions people actually ask before wiring up Best Buy.

Get a free key →
Is a Best Buy SKU always 7 digits?

No. Seven digits is the common case, but eight-digit SKUs exist and the engine accepts both. A deals call on 2026-08-27 returned 4833200 and 4833900 alongside 13006703 and 13006654 in the same result set. Store SKUs as strings and do not validate on length, or you will drop the eight-digit ones.

What is the difference between price.current, price.regular, savings and pricing_type?

current is what you pay today, regular is the reference price, and savings plus savings_pct are the difference between them. A price call for SKU 6565837 on 2026-08-27 returned current 509.99, regular 849.00, savings 339.01, savings_pct 39 and pricing_type 'clearance'. When there is no discount, current and regular are equal and both savings and savings_pct come back null rather than 0, so test for null before doing arithmetic.

How do I tell that a Best Buy product is out of stock?

Read availability.in_stock together with button_state. The same 6565837 lookup returned in_stock false with button_state 'SOLD_OUT' and button_text 'Sold Out', while an in-stock MacBook Air returned in_stock true with button_state 'ADD_TO_CART'. A price is still returned for a sold-out product, so a non-null price is not evidence of availability.

Why is availability null on product_detail when search returns it?

The two actions read different Best Buy surfaces. product_detail reads the catalog surface, which publishes identifiers, specifications, weight, dimensions and images but not stock. A measured call for SKU 6397846 returned upc, weight '2.7 pounds', spec_count 47 and dimensions, with availability, variants, customers_say, category_path and product_type all null. Use search or price for stock, and review_summary for the customers_say pros and cons.

Where do the UPC, shipping weight and package dimensions come from?

From product_detail, products_batch and description. Weight arrives twice: weight as Best Buy prints it ('2.7 pounds', '3.99 pounds') and weight_value plus weight_unit as a number and a unit token such as POUND. dimensions is an object keyed 'Product Height', 'Product Width' and 'Product Depth', each a string with its unit. spec_count tells you how deep the spec list goes, measured at 47 for a MacBook Air and 98 for a Dell laptop.

How many Best Buy products can I enrich in one call?

products_batch takes up to 15 SKUs per request and resolves them in a single upstream call, which is why it is the cheap way to enrich a price list. Anything Best Buy does not recognize comes back in not_found[] with the rest of the products still returned, so one bad SKU never costs you the whole batch.

How deep can Best Buy search go?

search and deals cap at 240 products per call, spanning ten pages of 24. The ceiling is an upper bound rather than a promise, because Best Buy repeats a few products across deep pages and duplicates are dropped. To go past 240, set page: a call with page=11 starts where a 240-result call ended.

What does the Best Buy rating breakdown contain?

review_summary returns average_rating, total_reviews, verified_purchase_count and a rating_breakdown keyed '5' through '1', each with a count and a percent. A measured call for SKU 6397846 returned average_rating 4.93 over 1233 reviews with 1215 verified purchases and a 5-star bucket of 1166 reviews at 94 percent. customers_say arrives here too, as pros and cons with their own counts, for example 'Overall Performance' mentioned by 545 reviewers.

What is the Best Buy API?

Best Buy API is a ReefAPI endpoint group for electronics products, prices and availability. It returns live JSON through POST requests under /bestbuy/v1.

Is the Best Buy API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. Best Buy calls use the same shared credit balance as every other ReefAPI engine.

Do I need a Best Buy login or account?

No login to Best Buy is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Best Buy data?

The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Best Buy API use?

Best Buy actions currently cost 1-5 credits per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.

Can I call Best Buy from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call bestbuy actions with the same key, credit pool and JSON envelope used by normal REST requests.

35 E-commerce & Marketplaces APIs on the same key

One key, one credit pool, one response envelope. If you are pulling Best Buy, you are one call away from the rest of the category — no second contract, no second integration.

Need something this API does not do?

Name the endpoint, the field, or a source we do not carry yet. We ship new APIs every week and you would be first to get the key. Real people read every message and reply the same day.

0/4000

No account needed · we reply from [email protected]

Try it on your own data before you pay anything

The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 183 APIs, and the same envelope everywhere.

Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts. Field notes were captured on 2026-08-27.