Costco API endpoint
Returns a page of a Costco product's reviews: title, text, rating, author, and recommendation for each. Public data sourced from Costco's own review platform.
/costco/product/{id}/reviewsPath parameters:
id (required) — a Costco product id, e.g. from a
/costco/search result's id field.Notable response behavior:
average_rating is computed from the returned page of reviews, not
Costco's own site-wide aggregate — for the full aggregate, use
rating/rating_count on /costco/product/{id}.total_count is the total number of reviews available for the
product, independent of how many are returned in this page.id returns 400 before any upstream request is made.| Field | Filled in, of 20 checked | Values in the sample |
|---|---|---|
| id | 20 | |
| title | 18 | |
| text | 20 | median 528 characters |
| rating | 20 | 1 to 5, median 4 |
| author | 19 | |
| recommended | 11 | true in 11 of 11 |
| submitted_at | 20 | 2025-04-26 to 2026-09-24 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| id (path) | string | Yes | Costco product id, e.g. from a search result's id field | 4000354684 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/costco/product/4000354684/reviews" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"product_id": "4000354684",
"total_count": 67,
"average_rating": 4.5,
"reviews": [
{
"id": "243309305",
"title": "Flawless Delivery and Great Refrigerator!",
"text": "Delivery was perfect! They were 15 min early...",
"rating": 5,
"author": "delisa80",
"recommended": true,
"submitted_at": "2025-07-15T16:34:05.000+00:00"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/costco.productReviewsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | costco.ProductReviewsResponse | No | ||||
| data.average_rating | number | No | Average rating of the reviews returned in this response. | |||
| data.product_id | string | No | Costco product id that was requested. | |||
| data.reviews | array | No | Customer reviews of the product on this page. | |||
| data.reviews[].author | string | No | Display name of the reviewer. | |||
| data.reviews[].id | string | No | Costco review id. | |||
| data.reviews[].rating | integer | No | Star rating the reviewer gave. | |||
| data.reviews[].recommended | boolean | No | Whether the reviewer recommends the product. | |||
| data.reviews[].submitted_at | string | No | Time the review was submitted, in ISO 8601 format. | |||
| data.reviews[].text | string | No | Full text of the review. | |||
| data.reviews[].title | string | No | Review headline written by the reviewer. | |||
| data.total_count | integer | No | Total number of reviews available for the product. | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 500 | Internal Server Error | #/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/costco/product/4000354684/reviews" \
-H "x-api-key: $CRAWLORA_API_KEY"