Etsy Reviews Scraper
Pricing
from $2.99 / 1,000 results
Etsy Reviews Scraper
Scrape Etsy reviews with Etsy Reviews Scrape ๐ Extract star ratings, review text, dates & more for smarter product insights. ๐ Perfect for market research, competitors, & SEO optimization. Fast, reliable, user-friendly. ๐โจ
Pricing
from $2.99 / 1,000 results
Rating
0.0
(0)
Developer
ScraperForge
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
5 days ago
Last modified
Categories
Share
Etsy Reviews Scraper โ Extract Etsy Shop Reviews, Ratings, Buyers & Seller Replies
Collect Etsy reviews at scale from any public Etsy shop. Paste shop URLs or plain shop names and get every review as a structured row: star rating, review text, review date, buyer identity, the exact product reviewed, review photos, the seller's reply, and the shop's overall rating and review count.
Built for sellers monitoring their own feedback, brands watching competitors, and analysts building review datasets for sentiment analysis.
What is Etsy Reviews Scraper?
Etsy Reviews Scraper is an Apify Actor that turns Etsy shop review pages into clean, structured data.
Etsy has no public API for reading arbitrary shop reviews, and the review feed on a shop page is paginated and rendered dynamically โ copying it by hand is impractical past the first page. This Actor paginates through a shop's review feed for you, extracts every review with its product context, and streams the results into a dataset you can export as CSV, Excel or JSON, or pull straight from the Apify API.
It runs without an Etsy account and always routes traffic through residential proxies, retrying each shop up to three times if Etsy blocks a request.
What data can you extract?
| Group | Fields |
|---|---|
| โญ Review | product_rating, review (full text), date, receipt_id |
| ๐ค Buyer | buyer_real_name, buyer_login_name, buyer_user_id, buyer_image |
| ๐๏ธ Product | listing_title, product_details.product_url, product_details.reviewer_image |
| ๐ช Shop | product_details.seller_name, product_details.seller_url, product_details.shop_average_rating, product_details.shop_total_rating_count, reviews_count |
| ๐ฌ Seller reply | response |
| ๐ท Photos | appreciation_image, product_details.image |
Why teams scrape Etsy reviews
For Etsy sellers
Your own reviews are scattered across pages and disappear from view as new ones arrive. Exporting them gives you a searchable archive โ every complaint, every compliment, tied to the exact listing that produced it. Sorting by product_rating shows which products quietly drag your shop average down.
For competitor and market research
Competitor reviews are the most honest product research available. They tell you what buyers actually complain about in a category โ sizing, shipping time, packaging, colour accuracy โ before you commit to producing anything. Group reviews by listing_title to see which of a rival's products carry the momentum.
For sentiment analysis and data teams
Review text with a numeric rating and a timestamp is exactly the shape sentiment models want. One run produces a labelled corpus you can feed into classification, topic modelling or an LLM pipeline, with no manual annotation.
For customer-service and quality teams
The response field shows whether a seller replied. Filtering for low ratings without a reply surfaces unhandled complaints โ on your own shop, that is a work queue; on a competitor's, it is a gap you can position against.
How to scrape Etsy reviews step by step
- Open the Etsy shop you want in your browser and copy the URL (
https://www.etsy.com/shop/ShopName), or just note the shop name. - Open this Actor and paste it into Shop URLs or names. Add more lines for more shops โ they all land in one dataset.
- Set Max reviews per shop. Start at 25โ50 to check the output, then raise it (up to 5,000).
- Click Start. Reviews stream into the Output tab as pages are collected.
- Export as CSV, Excel or JSON, or fetch the dataset through the Apify API.
โฌ๏ธ Input
Example input
{"startUrls": ["https://www.etsy.com/shop/HereafterLA","AnotherShopName"],"maxReviewsPerShop": 200}
Input reference
| Field | Type | Default | Description |
|---|---|---|---|
startUrls | array | โ (required) | Etsy shop URLs (https://www.etsy.com/shop/ShopName) or plain shop names. Multiple shops are scraped in turn and combined into a single dataset. |
maxReviewsPerShop | integer | 10 | Maximum reviews to fetch per shop, from 1 to 5,000. The Actor paginates until it hits this limit or runs out of reviews. |
proxyConfiguration | object | โ | Display only. This Actor always uses residential proxies with 3 retries per shop; changing this field does not alter runtime behaviour. |
โฌ๏ธ Output
Example output
{"receipt_id": "3812456790","buyer_user_id": "184920371","buyer_real_name": "Marta K.","buyer_login_name": "martak2019","buyer_image": "https://i.etsystatic.com/iusa/โฆ/avatar.jpg","listing_title": "Personalised Birth Flower Necklace, Sterling Silver","review": "Arrived faster than expected and the engraving is beautiful. Packaging was lovely too โ gifting this with confidence.","product_rating": 5,"date": "2026-07-28","response": "Thank you so much Marta! Enjoy the necklace ๐","appreciation_image": "https://i.etsystatic.com/iap/โฆ/review-photo.jpg","reviews_count": 14286,"product_details": {"shop_average_rating": "4.9","shop_total_rating_count": "14286","product_url": "https://www.etsy.com/listing/1234567890/personalised-birth-flower-necklace","seller_name": "HereafterLA","seller_url": "https://www.etsy.com/shop/HereafterLA","reviewer_image": "https://i.etsystatic.com/il/โฆ/il_fullxfull.jpg","image": ["https://i.etsystatic.com/il/โฆ/il_570xN.jpg"]}}
Output fields
| Field | Type | Description |
|---|---|---|
receipt_id | string | Etsy receipt identifier for the reviewed order. |
buyer_real_name | string | Buyer's display name as shown on the review. |
buyer_login_name | string | Buyer's Etsy login name. |
buyer_user_id | string | Buyer's Etsy user ID. |
buyer_image | string | Buyer avatar URL (a default avatar is used when none is set). |
listing_title | string | Title of the product that was reviewed. |
review | string | Full review text. |
product_rating | number | Star rating given, 1โ5. |
date | string | Review date. |
response | string | The seller's public reply, when there is one. |
appreciation_image | string | Photo attached by the buyer to the review. |
reviews_count | number | Total reviews on the shop. |
product_details | object | shop_average_rating, shop_total_rating_count, product_url, seller_name, seller_url, reviewer_image, image[]. |
Usage recipes
Audit your own shop
{"startUrls": ["https://www.etsy.com/shop/YourShopName"],"maxReviewsPerShop": 5000}
Export, then sort ascending by product_rating and read the 1โ3 star reviews first. Group by listing_title to find the specific listing responsible.
Compare three competitors in one run
{"startUrls": ["CompetitorOne", "CompetitorTwo", "CompetitorThree"],"maxReviewsPerShop": 500}
Every row carries product_details.seller_name, so a single pivot compares average rating and complaint themes across all three.
Find unanswered complaints
Run any shop, then filter for rows where product_rating is 3 or lower and response is empty. On your own shop that is a to-do list; on a competitor's it is a positioning opportunity.
Build a sentiment dataset
{"startUrls": ["ShopA", "ShopB", "ShopC", "ShopD"],"maxReviewsPerShop": 2000}
review plus product_rating gives you pre-labelled training data โ text and score, no manual annotation required.
Collect user-generated photos
Filter for rows where appreciation_image is not empty. Buyer-submitted review photos are the strongest social proof in a category (and a good indicator of what real-world product quality looks like).
How does this compare to Etsy's official API?
Etsy's Open API v3 is built for sellers managing their own shop โ it requires an API key, an OAuth flow, and in practice gives you access to your own listings and receipts. It is not a general-purpose route to reading any shop's public reviews at scale, and app registration is subject to approval.
This Actor takes the opposite approach: it reads the publicly visible review feed that any visitor can see, with no key, no OAuth and no approval process, and works identically on your own shop and on a competitor's. If you need to write to your own shop or read private order data, use Etsy's official API. If you need public review data โ especially across shops you do not own โ this Actor is the practical option.
Integrate and automate
Python
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_API_TOKEN>")run = client.actor("scraperforge/etsy-reviews-scraper").call(run_input={"startUrls": ["https://www.etsy.com/shop/HereafterLA"],"maxReviewsPerShop": 500,})for review in client.dataset(run["defaultDatasetId"]).iterate_items():print(review["product_rating"], "|", review["listing_title"], "|", review["review"][:80])
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_API_TOKEN>' });const run = await client.actor('scraperforge/etsy-reviews-scraper').call({startUrls: ['https://www.etsy.com/shop/HereafterLA'],maxReviewsPerShop: 500,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
REST API
curl -X POST "https://api.apify.com/v2/acts/scraperforge~etsy-reviews-scraper/runs?token=<YOUR_APIFY_API_TOKEN>" \-H "Content-Type: application/json" \-d '{"startUrls":["https://www.etsy.com/shop/HereafterLA"],"maxReviewsPerShop":500}'
n8n, Make, Zapier and AI agents
The Actor is callable from n8n, Make, Zapier and any MCP-capable AI agent through Apify's standard integrations โ useful for "alert me when a new 1-star review appears" workflows.
Schedules and webhooks
Attach an Apify Schedule to re-run weekly and deduplicate on receipt_id to capture only new reviews. Add a webhook to POST each finished run to your own endpoint, or push results straight into Google Sheets, Airtable, Slack or Google Drive.
Pricing and what you are charged for
This Actor uses Apify's pay-per-event model: a small Actor-start charge plus a charge per review row delivered to your dataset. You pay for reviews you actually receive, not for run time โ a shop with few reviews costs proportionally little.
Current rates are on the Pricing tab of this Actor's page, and Apify shows an estimated cost before and during every run. Free Apify accounts include monthly platform credit that is enough to trial it.
Cost control: maxReviewsPerShop is the lever. Start low, confirm the shops resolve correctly, then scale.
Limits, reliability and blocking
- Public shops only. Etsy shops that are closed, suspended or region-restricted cannot be read.
maxReviewsPerShopis per shop, so four shops at 500 each can return up to 2,000 rows.- Maximum 5,000 reviews per shop in a single run.
- Residential proxies are always used, with up to 3 retries per shop. The proxy field in the input is informational only.
- Etsy paginates review feeds, and very large shops may not expose their entire history โ you get as deep as the site allows.
- Image URLs point at Etsy's CDN and can change over time; download them promptly if you need the files.
- Not every review has text, a photo or a seller reply โ those fields come back empty rather than guessed.
- Default run options are 4 GB memory and a 1-hour timeout; raise the timeout for multi-shop runs at high limits.
Is it legal to scrape Etsy reviews?
This Actor collects only publicly published reviews โ the same content any visitor sees on a shop page without logging in. It does not log in, access private order data, or bypass any protection.
Reviews are written by real people, and buyer names, avatars and photos are personal data under GDPR, the UK GDPR, CCPA/CPRA and comparable regimes. If you store or process this data, make sure you have a lawful basis, keep it secure, honour deletion requests, and do not use buyer identities for unsolicited marketing. Review text and photos remain the property of their authors โ quote responsibly and attribute where you republish. You are responsible for ensuring your use complies with Etsy's terms and applicable law.
โ Frequently asked questions
Do I need an Etsy account or API key?
No. The Actor reads public shop review pages without any credentials.
Can I paste just the shop name instead of a URL?
Yes. HereafterLA and https://www.etsy.com/shop/HereafterLA both work, and you can mix formats in the same list.
How many reviews can I collect from one shop?
Up to 5,000 per shop per run, subject to how many the shop actually has and how deep Etsy paginates.
Does it return review photos?
Yes โ appreciation_image holds the buyer's attached photo, and product_details.image holds listing imagery. Both are URLs, not files.
Can I see the seller's reply to a review?
Yes, in the response field. It is empty when the seller has not replied โ which is exactly what makes "low rating + no reply" such a useful filter.
Can I scrape reviews for a single product rather than a whole shop?
The Actor works at shop level, but every row includes listing_title and product_details.product_url, so filtering the export down to one product takes one step.
Why did I get fewer reviews than I asked for?
The shop had fewer reviews available than your limit, or Etsy stopped paginating. Both are normal; the run still finishes successfully.
Do I need to configure proxies?
No. Residential proxies are always used and cannot be turned off โ that is what keeps success rates high on Etsy.
Which export format should I use?
CSV or Excel for spreadsheet analysis (Apify flattens product_details for you), JSON when you want the nested product and shop structure intact.
Can I run this automatically every week?
Yes. Save your input as a Task, attach a Schedule, and deduplicate on receipt_id between runs to isolate new reviews.
๐ Related scrapers
- Shein Search Products Scraper โ product, price and listing data from Shein search results.
- Google Search Results Scraper with Local Businesses โ organic results plus local business listings for keyword and SEO research.
- Apartments.com Scraper โ rental listings with rent ranges and location data.
Browse the full collection on the ScraperForge profile.
๐ฌ Feedback
Found a bug, need an extra field, or want a variant tailored to your workflow? Open an issue on the Issues tab of this Actor โ feature requests that make it better for everyone are welcome.