Best Buy APIbestbuy.com ↗
Search Best Buy's catalog, fetch product details by SKU, get autocomplete suggestions, and retrieve trending search terms via a single REST API.
What is the Best Buy API?
The Best Buy API covers 4 endpoints that let you search the product catalog, retrieve details for up to 50 SKUs in a single call, fetch autocomplete suggestions, and pull real-time trending search terms. The get_product_details endpoint returns structured fields including sku_id, name, image_url, rating, review_count, current_price, regular_price, and savings_amount for each requested product.
curl -X GET 'https://api.parse.bot/scraper/1dd5e688-acde-43bc-9964-06196a17ba30/search_products?limit=5&query=laptop' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace bestbuy-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Best Buy product search: discover trends, search products, look up by SKU."""
from parse_apis.best_buy_product_search_api import BestBuy, ProductNotFound
client = BestBuy()
# Discover what's trending on Best Buy right now.
trending = client.trends.current()
print(trending.popular_terms[:5], trending.total)
# Search for products by keyword — limit= caps total items fetched.
for product in client.products.search(query="macbook air", limit=3):
print(product.name, product.rating, product.review_count)
# Get autocomplete suggestions for a partial query.
suggestion = client.suggestions.search(query="gaming", limit=1).first()
if suggestion:
print(suggestion.term, suggestion.product_count, suggestion.categories)
# Batch-lookup specific SKU IDs obtained from suggestions.
if suggestion and suggestion.product_sku_ids:
sku_csv = ",".join(suggestion.product_sku_ids[:3])
for item in client.products.lookup(sku_ids=sku_csv, limit=3):
print(item.sku_id, item.name, item.image_url)
# Typed error handling for a lookup that may not find results.
try:
for p in client.products.lookup(sku_ids="9999999", limit=1):
print(p.name, p.url)
except ProductNotFound as exc:
print(f"SKU not found: {exc}")
print("exercised: trends.current / products.search / suggestions.search / products.lookup")
Search for products on Best Buy by keyword. Returns product details including name, rating, reviews, image, and URL. Results are sourced from Best Buy's suggest system which returns the most relevant products for a query. Also returns spell-check information and related search suggestions. Pricing fields (current_price, regular_price, savings_amount) may be null for some products depending on upstream availability.
| Param | Type | Description |
|---|---|---|
| limit | integer | Maximum number of products to return (1-50) |
| queryrequired | string | Search keyword (e.g., 'laptop', 'samsung tv', 'macbook air') |
{
"type": "object",
"fields": {
"query": "string - the search query",
"products": "array of product objects with sku_id, name, url, image_url, rating, review_count, current_price, regular_price, savings_amount, on_sale, brand, condition, purchasable",
"spell_check": "object with original_query, corrected_query, correctly_spelled",
"suggestions": "array of suggestion objects with term and categories",
"total_products": "integer - number of products returned"
},
"sample": {
"data": {
"query": "laptop",
"products": [
{
"url": "https://www.bestbuy.com/product/hp-14-laptop-intel-n150-processor-4gb-memory-128gb-ufs-sky-blue/JJGW3FGFSK",
"name": "HP - 14\" Laptop - Intel N150 Processor - 4GB Memory - 128GB UFS - Sky Blue",
"brand": null,
"rating": 4.4,
"sku_id": "12349297",
"on_sale": null,
"condition": null,
"image_url": "https://pisces.bbystatic.com/image2/BestBuy_US/images/products/756eb7cd-8251-4d41-a7ab-2b07498dd7b3.jpg",
"purchasable": null,
"review_count": 100,
"current_price": null,
"regular_price": null,
"savings_amount": null
}
],
"spell_check": {
"original_query": "laptop",
"corrected_query": "",
"correctly_spelled": true
},
"suggestions": [
{
"term": "laptop",
"categories": [
{
"id": "pcmcat247400050000",
"name": "Windows Laptops"
}
]
}
],
"total_products": 5
},
"status": "success"
}
}About the Best Buy API
Search and Discovery
The search_products endpoint accepts a query string and an optional limit (1–50) and returns a ranked list of matching products alongside a spell_check object that surfaces original_query, corrected_query, and a correctly_spelled flag. Each product result includes sku_id, name, url, image_url, rating, review_count, current_price, regular_price, and savings_amount. The same response also includes a suggestions array of related search terms with associated categories, making it useful for both product lookup and query expansion.
Autocomplete and Trending Terms
The search_suggestions endpoint is designed for type-ahead use cases. Given a partial query and an optional count (1–20), it returns suggestion objects that include the term, categories, a product_sku_ids array, and a product_count. This makes it straightforward to surface relevant SKUs before a full search is executed. The get_popular_searches endpoint takes no inputs and returns the current list of trending search terms as a popular_terms string array, useful for discovery features and tracking consumer interest over time.
Batch Product Lookup
The get_product_details endpoint accepts a comma-separated sku_ids string with up to 50 SKUs per request. The response mirrors the product fields from search results — sku_id, name, url, image_url, rating, review_count, current_price, regular_price, and savings_amount — along with the requested_sku_ids array so you can reconcile which SKUs were found. Pricing fields may return null depending on availability at the time of the request.
The Best Buy API is a managed, monitored endpoint for bestbuy.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when bestbuy.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official bestbuy.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Track price drops on specific SKUs by polling
get_product_detailsand comparingcurrent_priceagainstregular_price - Build a type-ahead search bar using
search_suggestionsto surface product counts and SKU IDs before a full query - Monitor
get_popular_searchesdaily to identify emerging consumer electronics trends - Aggregate
ratingandreview_countacross competing products found viasearch_productsfor category research - Enrich a product database by batch-fetching names, images, and ratings for a list of Best Buy SKUs in a single
get_product_detailscall - Use
spell_checkfields from search responses to correct user input before passing queries downstream - Discover related search categories and terms from
search_productssuggestions to expand keyword sets for ad targeting
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Best Buy offer an official developer API?+
What does `get_product_details` return for pricing, and when might those fields be null?+
current_price, regular_price, and savings_amount for each SKU. These fields can be null when pricing data is temporarily unavailable for a given product — for example, if an item is out of range or not actively listed. The requested_sku_ids field in the response lets you identify which SKUs came back with incomplete data.Does the API return in-store availability or stock levels?+
Can I retrieve product reviews or review text through this API?+
rating and review_count per product, but individual review text, reviewer details, and review dates are not returned by any of the four endpoints. You can fork this API on Parse and revise it to add a reviews endpoint if that detail is needed.Is there a way to paginate through a large set of search results?+
search_products endpoint accepts a limit parameter capped at 50. There is no offset or page parameter — the response returns the top results up to your specified limit. For broader catalog coverage, using multiple targeted queries or iterating on suggestions may be more practical than pagination.