Etsy API endpoint
Returns buyer reviews for an Etsy shop, identified by the required `id` (a numeric shop id or a shop name). Page with `offset` (default 0) and `limit` (default 14). The response has the average rating and total rating count. Each review has buyer, date, rating, text, language, the reviewed listing, and whether the seller replied.
/etsy/shop/{id}/reviewsPath parameters:
id (required) — numeric Etsy shop id or shop name.Query parameters:
offset (optional, default 0) — 0-based review offset.limit (optional, default 14) — page size.Response includes count, avg_rating, total_rating_count, and a
reviews array in the same shape as docs/etsy-listing-reviews.md.
| Field | Filled in, of 14 checked | Values in the sample |
|---|---|---|
| rating | 14 | 4 to 5, median 5 |
| text | 14 | |
| language | 14 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| id (path) | string | Yes | Numeric Etsy shop id or shop name | gaguatelier | |
| offset | integer | No | 0-based review offset | 0 | |
| limit | integer | No | Page size (default 14) | 14 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/etsy/shop/gaguatelier/reviews?limit=10" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"shop_id": "87654321",
"shop_name": "gaguatelier",
"count": 363,
"offset": 0,
"avg_rating": 4.9,
"total_rating_count": 363,
"reviews": [
{
"buyer_name": "Alicia",
"rating": 5,
"text": "Beautiful mug!"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/etsy.shopReviewsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | etsy.MobileShopReviews | No | ||||
| data.avg_rating | number | No | 4.9 | |||
| data.count | integer | No | ||||
| data.offset | integer | No | 0 | |||
| data.reviews | array | No | ||||
| data.reviews[].buyer_avatar | string | No | ||||
| data.reviews[].buyer_login | string | No | ||||
| data.reviews[].buyer_name | string | No | ||||
| data.reviews[].buyer_user_id | string | No | ||||
| data.reviews[].date | integer | No | ||||
| data.reviews[].language | string | No | ||||
| data.reviews[].listing_id | string | No | ||||
| data.reviews[].listing_image | string | No | ||||
| data.reviews[].listing_title | string | No | ||||
| data.reviews[].rating | integer | No | 5 | |||
| data.reviews[].receipt_id | string | No | ||||
| data.reviews[].seller_replied | boolean | No | ||||
| data.reviews[].text | string | No | ||||
| data.shop_id | string | No | 12345678 | |||
| data.shop_name | string | No | ||||
| data.total_rating_count | integer | No | ||||
| 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 |
| 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/etsy/shop/gaguatelier/reviews?limit=10" \
-H "x-api-key: $CRAWLORA_API_KEY"