Etsy Reviews Scraper avatar

Etsy Reviews Scraper

Pricing

from $5.00 / 1,000 etsy review scrapeds

Go to Apify Store
Etsy Reviews Scraper

Etsy Reviews Scraper

Scrape Etsy product reviews from listing URLs and shop pages. Extract rating, review text, reviewer, date, images, listing metadata, and shop context for sentiment analysis, competitor research, and AI agents. MCP/API-ready.

Pricing

from $5.00 / 1,000 etsy review scrapeds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

31

Total users

13

Monthly active users

3 days ago

Last modified

Share

Etsy Reviews Scraper: Product Feedback

Etsy Reviews Scraper is an Apify Actor for people who need public Etsy review data from listing URLs or shop pages. It accepts Etsy product URLs or Etsy shop URLs, and each dataset record represents one real customer review. The row can include rating, review text, reviewer name, review date, review images when Etsy exposes them, listing metadata, and shop context. The outcome is a structured review dataset that works well for sentiment analysis, competitor research, and AI agent workflows, including use through Apify MCP.

Best fit and connected workflows

This Actor fits workflows that start with known Etsy listings or known Etsy shop pages and end with review-level analysis. Common routing patterns include:

  • Product feedback analysis for one or more specific Etsy listings.
  • Competitor research across similar products in a niche.
  • Review exports for spreadsheets, notebooks, or dashboards.
  • AI-agent pipelines that need one review per row with product context.
  • Sentiment workflows where review text and star rating are used together.

When you already have Etsy listing URLs, that is the most direct path. When you have only a shop page, the Actor can discover visible listings from that shop and then collect reviews from those listings.

Practical scenario

A marketplace analyst has a list of Etsy listing URLs for handmade candle products. They run the Actor with those URLs, a review cap per listing, and a total result cap. The returned rows include rating, reviewText, reviewDate, reviewerName, listingTitle, shopName, and listingUrl. From that, the analyst can compare recurring praise and complaint themes across competitors, then decide which product attributes deserve closer review in the next research pass.

Input fields

FieldTypePurposeNotes
productUrlsarray of stringsDirect Etsy listing URLs to scrape reviews fromMost direct and reliable path
shopUrlsarray of stringsEtsy shop pages used to discover listings before scrapingSlower than direct listing URLs
maxReviewsPerListingintegerCaps reviews collected from each listing1 to 500, default 25
maxResultsintegerCaps total review records saved in the run1 to 5000, default 25
sortBystringReview ordermost_recent or recommended
includeListingMetadatabooleanIncludes listing title, shop name, listing rating, and review countDefault: true
includeReviewImagesbooleanIncludes review image URLs when Etsy exposes themDefault: true

Focused input example

{
"productUrls": [
"https://www.etsy.com/listing/1071878058/charger-plate-pumpkin-set-pumpkin"
],
"maxReviewsPerListing": 10,
"maxResults": 10,
"sortBy": "most_recent",
"includeListingMetadata": true,
"includeReviewImages": true
}

Output fields

Each dataset row contains one Etsy review.

FieldTypePurpose
recordTypestringIdentifies the row as a review
reviewIdstring or nullReview identifier when Etsy exposes it
reviewUrlstring or nullsuitable-effort URL back to the review or listing anchor
ratingnumber or nullStar rating from 1 to 5
reviewTextstring or nullFull review body text
reviewDatestring or nullReview date as ISO date or displayed text
reviewerNamestring or nullPublic reviewer display name
reviewerProfileUrlstring or nullPublic reviewer profile URL when visible
reviewImagesarray or nullReview image URLs
listingIdstring or nullEtsy listing ID
listingTitlestring or nullProduct title from the listing page
listingUrlstring or nullCanonical Etsy listing URL
listingRatingnumber or nullAverage listing or shop rating context
listingReviewCountinteger or nullVisible review count context
shopNamestring or nullEtsy shop name
shopUrlstring or nullPublic Etsy shop URL
sourceUrlstringURL crawled to produce the row
scrapedAtstringISO timestamp when the row was saved
diagnosticStatusstring or nullReserved compatibility field
diagnosticMessagestring or nullReserved compatibility field

Illustrative output record

{
"recordType": "review",
"reviewId": "1234567890",
"reviewUrl": "https://www.etsy.com/listing/1071878058/charger-plate-pumpkin-set-pumpkin#review-1234567890",
"rating": 5,
"reviewText": "Beautiful quality and shipped quickly.",
"reviewDate": "2026-05-21",
"reviewerName": "Avery",
"reviewerProfileUrl": "https://www.etsy.com/people/example",
"reviewImages": [
"https://i.etsystatic.com/example.jpg"
],
"listingId": "1071878058",
"listingTitle": "Charger Plate Pumpkin Set",
"listingUrl": "https://www.etsy.com/listing/1071878058/charger-plate-pumpkin-set-pumpkin",
"listingRating": 4.8,
"listingReviewCount": 327,
"shopName": "GlassMystique",
"shopUrl": "https://www.etsy.com/shop/GlassMystique",
"sourceUrl": "https://www.etsy.com/listing/1071878058/charger-plate-pumpkin-set-pumpkin",
"scrapedAt": "2026-06-12T12:00:00.000Z",
"diagnosticStatus": null,
"diagnosticMessage": null
}

How it works

The Actor scrapes Etsy product reviews from listing pages and shop pages. The live contract indicates a Playwright-based implementation template and a memory range from 1024 MB to 4096 MB, with 2048 MB as the default. The input schema supports direct product URLs, shop URLs for discovery, review sorting, and optional listing metadata and review images.

The dataset is designed as one review per row. execution diagnostics are kept in OUTPUT and RUN_SUMMARY, while the dataset contains review records only. The live contract also includes a tested provider fallback for DataDome-protected runs, strict PPE charge reconciliation, and terminal outcomes recorded for automation.

Pricing

This Actor uses Pay per event pricing plus Apify platform usage.

  • The Actor start event is charged once when the Actor begins.
  • The primary event is charged for each Etsy review scraped record saved to the dataset.
  • Apify platform usage, such as compute and storage, is separate from event charges.
  • For current pricing details, open the live Pricing tab on the Actor page.

Example: if a run saves twenty-five reviews, the cost includes one Actor start event plus twenty-five review-scraped events, along with normal Apify platform usage for the run.

Use with AI agents (MCP)

This Actor is usable through Apify MCP. It provides a tool that extracts public Etsy review rows from listing URLs or shop pages and returns structured data that agents can pass into downstream analysis, exports, or summarization steps.

Exact Actor identity: khadinakbar/etsy-reviews-scraper

Scrape reviews from these Etsy listing URLs and return one row per review with rating, text, reviewer, date, listing context, and shop context. Keep the output as structured JSON and include only public review data.

Output interpretation is straightforward: each dataset row is one review. recordType confirms the row type, sourceUrl shows what was crawled, and scrapedAt marks when the row was saved. reviewImages contains image URLs when Etsy exposes review photos. listingTitle, shopName, and listingUrl provide the product context that agents often need for comparison or enrichment.

For provenance, use the dataset items endpoint linked in the run output. For scope, use productUrls for direct listing review extraction and shopUrls when discovery from a shop page is the right starting point. For pagination and cost guidance, set maxReviewsPerListing for per-listing sampling and maxResults for the total run cap so the review count stays aligned with the intended PPE spend.

Apify API example

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('khadinakbar/etsy-reviews-scraper').call({
productUrls: ['https://www.etsy.com/listing/1071878058/charger-plate-pumpkin-set-pumpkin'],
maxReviewsPerListing: 10,
maxResults: 10,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Best results and outcome guidance

Use direct Etsy listing URLs when you already know the products you want to research. Use shopUrls when the starting point is an Etsy shop page and you want the Actor to discover listings first.

Helpful settings:

  • Use sortBy: "most_recent" to collect recent feedback first.
  • Use includeListingMetadata: true when you want each review row to carry product context.
  • Use includeReviewImages: true when image URLs add value for UGC or quality review analysis.
  • Use maxReviewsPerListing for per-product sampling and maxResults for the full run cap.

Continue the workflow

Design note

I found that the dataset contract is intentionally narrow: recordType, sourceUrl, and scrapedAt are required, while diagnostics are reserved for OUTPUT and RUN_SUMMARY. That makes the dataset clean for review analysis and keeps terminal run details separate.

FAQ

Can I start from Etsy listing URLs?

Yes. productUrls is the most direct input for review extraction from specific Etsy products.

Can I start from Etsy shop pages?

Yes. shopUrls lets the Actor discover listings from a shop page before scraping reviews.

Does the Actor return one row per review?

Yes. The dataset schema defines one real Etsy customer review per row.

Can I use the Actor for AI agent workflows?

Yes. The Actor is MCP-ready and returns structured review rows that fit retrieval, summarization, and sentiment workflows.

Which fields are most useful for competitor research?

rating, reviewText, reviewDate, listingTitle, listingRating, listingReviewCount, and shopName are the most common starting points.

How do I control run size?

Use maxReviewsPerListing for per-listing review caps and maxResults for the total review cap across the whole run.

Responsible use

Use only public Etsy review data that is visible on listing and shop pages. Respect Etsy's terms, applicable law, and privacy expectations when storing, analyzing, or redistributing the output. Keep downstream use aligned with review analysis, research, and automation tasks that rely on public product feedback.