Etsy Reviews Scraper
astravalabs/etsy-reviews-scraper
Collect recent samples or complete public review histories for as many as 50 shops in one run. Each row contains the buyer rating and text, reviewed listing, buyer-uploaded photos, and the seller's public response when Etsy exposes one.
// run this actor
Use the Apify CLI for a quick local run, or the HTTP API from any language or automation platform.
apify call astravalabs/etsy-reviews-scraper --input '{"shops":["ArtFablePets","WilshireGoodsShop"],"reviewsSort":"Recency","maxReviews":100,"maxTotalResults":5000}'# Set API token
API_TOKEN=<YOUR_API_TOKEN>
# Prepare Actor input
cat > input.json << 'EOF'
{
"shops": [
"ArtFablePets",
"WilshireGoodsShop"
],
"reviewsSort": "Recency",
"maxReviews": 100,
"maxTotalResults": 5000
}
EOF
# Run the Actor using the HTTP API
# Full API reference: https://docs.apify.com/api/v2
curl "https://api.apify.com/v2/acts/astravalabs~etsy-reviews-scraper/runs?token=$API_TOKEN" \
-X POST \
-d @input.json \
-H 'Content-Type: application/json'// Replace <YOUR_API_TOKEN> before running the cURL example. Keep tokens out of committed files.
// output — 13 top-level fields per review
// use cases
- Sentiment and topic analysis
- Competitor feedback monitoring
- Customer-service research
- Buyer-photo and listing-level research
// boundaries
- Inputs are currently shop-based; filter listing_id after collection for product-level analysis.
- Rating filters are applied to the exported dataset rather than during collection.
Measured runs returned 994 reviews from 10 shops in 7.0 seconds and 1,000 reviews from 50 shops in 9.3–11.1 seconds; all 26 benchmark samples completed without a failed shop.
What “last tested” means
The published input contract, output field list, pricing unit, and documentation were checked against the current actor, and a sample run completed on the date shown. This is a dated product check, not an uptime guarantee; public source behavior can change after testing.
Inspect representative JSON →// sanitized illustrative values; field names and nesting follow the published output contract