Best Buy - product page

v1.0.0

by extracthub Updated 11/8/2026 bestbuy.com

Best Buy (bestbuy.com) product page: SKU, product id, name, brand, model, color, price, currency, comparable value and savings, availability, every offer (new and open-box conditions with price), rating, review count, images, description, specifications and category breadcrumbs.

Extractor ID

@1 follows fixes and added fields. to freeze the output.

Try in playground
Price
$0.0025 / request premium Also charged when the request fails after the page was fetched. Pricing
Health
healthy v1.0.0
Request settings
  • GET
  • Proxy
  • No JS rendering
HTML
https://www.bestbuy.com/product/lenovo-ideapad-slim-3-15-6-full-hd-laptop-amd-ryzen-5-40-2025-8gb-memory-256gb-storage-abyss-blue/JJGH3Q8P2K/sku/6668500
Loading source preview…

What it returns

result.extracted is a JSON object with these top-level fields (from the current configuration; every released version keeps the schema it was released with, see the changes under Versions and health). A sample is in the extracted data panel above.

Field Type
sku string
productId string
name string
brand string
model string
color string
price number
currency string
compValue number
savings number
availability string
offers object{availability,condition,price}[]
rating number
reviewCount number
images string[]
description string
specifications object{name,value}[]
breadcrumbs string[]
url string

How to call Best Buy - product page

Pass the URL of a bestbuy.com page and this extractor's pinned id. Authenticate every request with your API key in the X-API-Key header (a test key, exth_test_..., returns simulated results at no cost). Every parameter and error code is described in the API reference.

Realtime: one URL, result in the response

GET https://api.extracthub.io/api/extractor/extract

Authentication required via X-API-Key header

Parameter Type Required Description
target_url string Yes The URL to scrape and extract data from
extractor_id string Yes This extractor's ID with a version pin: @extracthub1/bestbuy-product@1. Use @1 for the latest 1.x or @1.2.3 for an exact version.
return_raw_html boolean No Include raw HTML in response (default: false)
async_fallback boolean No Default true: a request still queued after the wait limit becomes an async job (202 with job_id). false: 503 queue_timeout instead
webhook_url string No HTTPS URL notified if the request becomes a job (job.completed / job.failed)

Code examples

curl -X GET "https://api.extracthub.io/api/extractor/extract?target_url=https://example.com&extractor_id=%40extracthub1%2Fbestbuy-product%401" \
  -H "X-API-Key: YOUR_API_KEY"

Example response

Shape of a 200 answer (placeholder values). metadata also carries costUsd, and the X-Extractor-Version header names the exact version that ran. A busy queue answers 202 with job_id, status_url and result_url; poll GET /api/extractor/jobs/{id} (or cancel it with POST /api/extractor/jobs/{id}/cancel).

{
  "success": true,
  "result": {
    "extracted": {
      "sku": "…",
      "productId": "…",
      "name": "…",
      "brand": "…",
      "model": "…",
      "color": "…",
      "price": 0,
      "currency": "…",
      "compValue": 0,
      "savings": 0,
      "availability": "…",
      "offers": [
        {
          "condition": "…",
          "price": 0,
          "availability": "…"
        }
      ],
      "rating": 0,
      "reviewCount": 0,
      "images": [
        "…"
      ],
      "description": "…",
      "specifications": [
        {
          "name": "…",
          "value": "…"
        }
      ],
      "breadcrumbs": [
        "…"
      ],
      "url": "…"
    },
    "metadata": {
      "url": "https://example.com",
      "useProxy": true,
      "renderJs": false,
      "scrapedAt": "2026-01-01T12:00:00.000Z"
    }
  }
}

Batch: many URLs in one request

The batch runs in the background with the version resolved once at submission. Read the results as NDJSON pages with a stable cursor; succeeded URLs are charged, and failed URLs only when their scrape reached the provider. If your credit runs out the batch pauses and resumes when credit is available, and POST /api/extractor/batch/{id}/cancel stops it. Signed webhooks report batch.completed, batch.failed and batch.paused.

curl -X POST "https://api.extracthub.io/api/extractor/batch" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "extractor_id": "@extracthub1/bestbuy-product@1",
    "targets": [
      { "url": "https://bestbuy.com/..." },
      { "url": "https://bestbuy.com/..." }
    ],
    "webhook_url": "https://your-app.example/webhooks/extracthub"
  }'

# Progress, then results as NDJSON pages (cursor = last index)
curl "https://api.extracthub.io/api/extractor/batch/BATCH_ID" -H "X-API-Key: YOUR_API_KEY"
curl "https://api.extracthub.io/api/extractor/batch/BATCH_ID/results" -H "X-API-Key: YOUR_API_KEY"

In a pipeline

In the dashboard's pipeline builder, add Best Buy - product page as an extractor node and set its version pin to 1 (or exactly 1.0.0). A previous node can feed it the URLs it extracts; pipelines run manually or on a cron schedule, report progress live and export JSON, CSV or NDJSON.

With an AI agent (MCP)

Connect Claude Code, Claude Desktop or Cursor to the ExtractHub MCP server (https://api.extracthub.io/mcp, your API key as a Bearer token) and ask in plain language. The agent calls extract with this extractor's pinned id, or create_batch for many URLs, at the same price and limits as the API. Use a test key to try it without credit. Set up the MCP server.

Ask your agent
Use ExtractHub to extract https://bestbuy.com/... with @extracthub1/bestbuy-product@1
Tool call it makes
{
  "tool": "extract",
  "arguments": {
    "extractor_id": "@extracthub1/bestbuy-product@1",
    "url": "https://bestbuy.com/..."
  }
}

Versions and health

Each version is immutable. @N resolves to the newest non-yanked version of major N; a deprecated major keeps working until its sunset date and its responses carry Deprecation and Sunset headers. Health comes from scheduled checks of the released versions.

@1
latest 1.0.0
active healthy
  1. v1.0.0 active healthy Released 11/8/2026

Best Buy - product page: frequently asked questions

Is Best Buy - product page a bestbuy.com scraper?

Yes. Best Buy - product page is an ExtractHub extractor: a saved, versioned web scraper for bestbuy.com pages that returns the page as structured JSON. Call it as a bestbuy.com scraper API with extractor_id=@extracthub1/bestbuy-product@1; it never changes under you, because every released version is immutable.

What data does Best Buy - product page return?

It returns a JSON object with 19 top-level fields: sku (string), productId (string), name (string), brand (string), model (string), color (string), price (number), currency (string), compValue (number), savings (number), availability (string), offers (object{availability,condition,price}[]), rating (number), reviewCount (number), images (string[]), description (string), specifications (object{name,value}[]), breadcrumbs (string[]) and url (string). The extracted data panel on this page shows a sample.

How do I call Best Buy - product page?

Send GET or POST https://api.extracthub.io/api/extractor/extract with your API key in the X-API-Key header, extractor_id=@extracthub1/bestbuy-product@1 and the URL of a bestbuy.com page as the target. For many URLs use POST https://api.extracthub.io/api/extractor/batch, and in a pipeline add it as an extractor node pinned to 1.

Can an AI agent use Best Buy - product page?

Yes. Connect Claude Code, Claude Desktop, Cursor or another MCP client to the ExtractHub MCP server at https://api.extracthub.io/mcp with your API key, then ask it to extract a bestbuy.com page: the agent calls the extract tool with extractor_id=@extracthub1/bestbuy-product@1 (or create_batch for many URLs), at the same price as the API.

Which version should I pin?

Pin the major (@extracthub1/bestbuy-product@1) to receive fixes and added fields automatically, or the exact version (@extracthub1/bestbuy-product@1.0.0) to freeze the output. A breaking schema change is always released as a new major, so a major pin never loses or retypes a field.

Does it render JavaScript or use a proxy?

No, it fetches the HTML without JavaScript rendering and it goes through a proxy. Calls are charged at the premium tier (through the scraping proxy, no JavaScript). These settings are part of each released version; JavaScript rendering, XHR capture and browser actions always use the proxy.

More web scrapers in the scraper catalog and in E-commerce.