Best Buy API endpoint
Returns the customer questions (with answers, when present) Best Buy embeds directly on a product's page: question text, answer text, who answered, and when. sku is the numeric Best Buy SKU shown on bestbuy.com product pages and URLs. A product with no questions asked yet returns an empty list, not an error.
/bestbuy/product/questionssku is required -- the numeric Best Buy SKU shown on bestbuy.com product pages and URLs (e.g. 6673590).
Notable response behavior:
count: 0 and an empty questions list -- this is a normal, valid state, not an error.answer and answered_by are omitted when a question has not yet been answered.answered is the upstream's own relative time text (e.g. Answered 2 months ago); no absolute timestamp is available.| Field | In the sample | Value in the sample |
|---|---|---|
| sku | Has a value | |
| count | Has a value | 0 |
| questions | Empty |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| sku | string | Yes | Numeric Best Buy SKU | 6673590 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/bestbuy/product/questions?sku=6673590" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"sku": "6673590",
"count": 2,
"source_url": "https://www.bestbuy.com/site/x/x/6673590.p?skuId=6673590&intl=nosplash",
"fetched_at": "2026-08-15T10:00:00Z",
"questions": [
{
"question": "Is there an additional M.2 slot?",
"answer": "Yes, this laptop features an additional, empty M.2 2280 NVMe SSD slot for expansion.",
"answered_by": "ASUS Answers",
"answered": "Answered 2 months ago"
},
{
"question": "When is it arriving?",
"answer": "Today 05/22/2026",
"answered_by": "BODFamoUS",
"answered": "Answered 2 months ago"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/bestbuy.productQuestionsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | bestbuy.ProductQuestionsResponse | No | ||||
| data.count | integer | No | 5 | |||
| data.fetched_at | string | No | ||||
| data.questions | array | No | ||||
| data.questions[].answer | string | No | ||||
| data.questions[].answered | string | No | Answered 2 months ago | |||
| data.questions[].answered_by | string | No | ASUS Answers | |||
| data.questions[].question | string | No | ||||
| data.sku | string | No | 6673590 | |||
| data.source_url | string | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/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/product/questions?sku=6673590" \
-H "x-api-key: $CRAWLORA_API_KEY"