Best Buy API endpoint
Returns one page (up to 24) of one Best Buy category's product listing (sku, title, url, image, price, rating, review count). category_id is a Best Buy category id, e.g. pcmcat138500050001, found in a category page URL's trailing <id>.c?id=<id> segment. page is the optional 1-indexed page number (defaults to 1); requesting a page past the last one returns an empty products list, not an error.
/bestbuy/categoryNotable response behavior:
page echoes the page actually returned. total is the category's own total result count across all pages (numFound); count is how many products this response actually carries (up to 24).price, rating, and review_count are omitted (zero-valued) when the upstream did not carry that field for a given product; this happens occasionally and is not itself an error condition.category_id returns 404 on page 1. Requesting a page past the last real page returns a normal 200 with an empty products list, not an error.page must be between 1 and 500; anything outside that range returns 400.| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| category_id | string | Yes | Best Buy category id | pcmcat138500050001 | |
| page | integer | No | 1 | 1-indexed page number, defaults to 1 | 1 |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/bestbuy/category?category_id=pcmcat138500050001&page=1" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"category_id": "pcmcat138500050001",
"page": 1,
"total": 6286,
"count": 2,
"source_url": "https://www.bestbuy.com/site/x/x/pcmcat138500050001.c?id=pcmcat138500050001&intl=nosplash",
"fetched_at": "2026-08-15T10:00:00Z",
"products": [
{
"sku": "6673590",
"title": "ASUS - ROG Zephyrus G16 16\" OLED 3K Gaming Laptop",
"url": "https://www.bestbuy.com/product/asus-rog-zephyrus-g16/JJGHGSJZR6",
"image_url": "https://pisces.bbystatic.com/image2/BestBuy_US/images/products/6673590.jpg",
"price": 4399.99,
"rating": 4.6,
"review_count": 28
}
]
}
}Request schema
No body schema
Response schema
#/definitions/bestbuy.categoryResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | bestbuy.CategoryResponse | No | ||||
| data.category_id | string | No | pcmcat138500050001 | |||
| data.count | integer | No | 24 | |||
| data.fetched_at | string | No | ||||
| data.page | integer | No | 1 | |||
| data.products | array | No | CategoryProduct record, 7 fields: image_url, price, rating, review_count, sku, title, url. Described under Search Best Buy's product catalog API. | |||
| data.source_url | string | No | ||||
| data.total | integer | No | 6286 | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/bestbuy/category?category_id=pcmcat138500050001&page=1" \
-H "x-api-key: $CRAWLORA_API_KEY"