# Etsy Review Scraper (`getdataforme/etsy-review-scraper`) Actor

The Etsy Review Scraper  is an easy scraper to extract reviews from specified Etsy shop.  The Etsy review scraper is easy to use, simply provide the shop name and the scraper will do the magic providing you the reviews from the products. etsy scraper python

- **URL**: https://apify.com/getdataforme/etsy-review-scraper.md
- **Developed by:** [GetDataForMe](https://apify.com/getdataforme) (community)
- **Categories:** E-commerce
- **Stats:** 181 total users, 7 monthly users, 96.5% runs succeeded, 8 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $5.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

![Etsy review scraper banner](https://i.ibb.co/FzkLsrG/etsy-review-scraper.png)
## Etsy Review Scraper Actor

The Etsy Review Scraper Actor enables you to extract detailed review data from any Etsy shop based on shop name keywords. This tool collects comprehensive buyer feedback, ratings, and product information, which can be downloaded in HTML, JSON, CSV, Excel, or XML formats.


### DataSet provided by this etsy crawler
| 🧾 **receipt_id**       | 👤 **buyer_login_name**     | 🙍‍♀️ **buyer_real_name**     |
|------------------------|-----------------------------|------------------------------|
| 📅 **date**             | 🏷️ **listing_title**         | 🖼️ **listing_image_url**     |
| 💬 **listing_review**   | 🛍️ **response**              | ⭐ **rating**                |


### Input Configuration

The actor accepts two simple parameters:

```json
{
    "limit": 14,                         // Number of reviews to collect
    "shop_name_keyword": "MyriadMelodies" // Target Etsy shop name
}
````

### Output Data Structure

The scraper returns clean, structured data. Here is a preview of a single review object from the resulting dataset:

```json
[
{
"receipt_id": 3466645038,
"buyer_login_name": "vickiedwards7",
"buyer_real_name": "Vickie Edwards",
"date": "2026-05-12T14:22:00.000Z",
"listing_title": "Melody Chimes - Handcrafted Wind Chime",
"listing_image_url": "https://i.etsystatic.com/il/e12345_570xN.jpg",
"listing_review": "Beautiful sound! Exceeded all expectations.",
"response": "Thank you so much for your kind words, Vickie!",
"rating": 5
}
]
```

### Key Data Points Collected

1. **Transaction Information**
   - Unique receipt ID
   - Buyer username
   - Product details

2. **Review Content**
   - Full review text
   - Star rating
   - Seller response (when available)

3. **Product Information**
   - Complete listing title
   - Product category context
   - Purchase verification

### Use Cases

#### Shop Analysis

- Track customer satisfaction
- Monitor product performance
- Analyze buying patterns
- Identify popular items

#### Market Research

- Analyze competitor reviews
- Track pricing feedback
- Study customer preferences
- Monitor market trends

#### Customer Insights

- Understand buyer preferences
- Track product satisfaction
- Identify improvement areas
- Analyze customer sentiment

#### Business Intelligence

- Generate sales insights
- Track review patterns
- Monitor brand reputation
- Analyze product feedback

### Features

1. **Comprehensive Data Collection**
   - Complete review texts
   - Verified purchase information
   - Buyer details
   - Rating data

2. **Flexible Configuration**
   - Adjustable review limits
   - Shop name targeting
   - Date range filtering
   - Rating filtering

3. **Data Processing**
   - Review aggregation
   - Rating analysis
   - Sentiment detection
   - Response tracking

### Best Practices

1. **Query Optimization**
   - Use exact shop names
   - Set appropriate limits
   - Consider rate limits
   - Respect platform guidelines

2. **Data Collection**
   - Regular updates
   - Consistent monitoring
   - Historical tracking
   - Pattern analysis

### Legal Considerations

This scraper collects publicly available Etsy data. Users should:

- Comply with Etsy's terms of service
- Handle personal data according to GDPR and local regulations
- Use data ethically and responsibly
- Seek legal counsel for specific use cases

### Technical Details

- Automatic rate limiting
- Error handling
- Data validation
- Response parsing
- Shop verification
- Review deduplication

### Output Formats

Download your data in multiple formats:

- JSON: Structured data for programming
- CSV: Spreadsheet analysis
- Excel: Business reporting
- HTML: Web presentation
- XML: System integration

### Performance Features

1. **Reliable Data Collection**
   - Automatic retry mechanism
   - Error recovery
   - Rate limit compliance
   - Data validation

2. **Efficient Processing**
   - Parallel processing
   - Memory optimization
   - Quick response times
   - Scalable architecture

### Support and Maintenance

The actor is regularly updated to ensure:

- Compatibility with Etsy's platform
- Optimal performance
- Data accuracy
- Feature enhancements

For support, customization requests, or questions, contact our team through the Apify platform.

### **Other Etsy Scrapers You Might Need**

Maximize your marketplace intelligence by combining this review crawler with our other specialized Etsy tools:

- [Etsy Data Scraper Pro](https://apify.com/getdataforme/etsy-data-scraper-pro)  – Extract complete product listings, pricing history, inventory data, and seller store metrics across the entire platform.
- [Etsy Product Search Scraper](https://apify.com/getdataforme/etsy-product-search-scraper)  – Scrape targeted search results lists, track product rankings, and monitor trending keywords across Etsy.

### **FAQ, Disclaimers, and Support**

#### **What are the most common use cases for this data?**

- Competitor Monitoring: Track customer satisfaction levels and analyze the buying patterns of competing Etsy sellers.
- Market & Trend Research: Identify popular items, analyze price points, and map out emerging customer preferences.
- Brand Reputation Management: Aggregate feedback from your own shop to run automated text sentiment detection and optimize customer service.
- Product Development: Mine user reviews to find common product bugs, defects, or improvement areas mentioned by consumers.

#### **Is it legal to scrape Etsy reviews?**

Yes. This scraper extracts publicly available data that Etsy displays openly to web visitors. It does not access private account backends or credentials. However, you must handle all personal data (such as buyer usernames) responsibly and in strict compliance with regional regulations like GDPR and CCPA.

#### **How do I optimize my scraping queries?**

For the best results, use the exact shop name rather than broad keywords. Keep your review limits realistic relative to the shop's size, and consider using historical tracking intervals (e.g., scraping once a week) to prevent redundant data downloads.

#### **Need support or a custom scraping solution?**

E-commerce websites frequently update their code structures, which can occasionally cause data fields to go missing. If you run into any issues, notice a bug, or require a customized enterprise solution tailored to a specific platform, please open a ticket in the Issues tab or contact our team via our profile page.

### Common Applications

1. **Market Analysis**
   - Product performance tracking
   - Competition monitoring
   - Price point analysis
   - Customer satisfaction metrics

2. **Customer Service**
   - Response rate tracking
   - Issue identification
   - Service improvement
   - Customer engagement

3. **Product Development**
   - Feature feedback analysis
   - Quality monitoring
   - Product improvement insights
   - Customer needs assessment

4. **Marketing Strategy**
   - Customer testimonial collection
   - Social proof gathering
   - Product positioning analysis
   - Marketing message refinement

#### Support

For any kind of custom support or inquiries feel free to reach out support@getdataforme.com

# Actor input Schema

## `shop_name_keyword` (type: `string`):

The name of the Etsy shop you want to scrape

## `limit` (type: `integer`):

Number of reviews to scrape. Default is 10.

## Actor input object example

```json
{
  "shop_name_keyword": "LingGlass",
  "limit": 10
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "shop_name_keyword": "LingGlass",
    "limit": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("getdataforme/etsy-review-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "shop_name_keyword": "LingGlass",
    "limit": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("getdataforme/etsy-review-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "shop_name_keyword": "LingGlass",
  "limit": 10
}' |
apify call getdataforme/etsy-review-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=getdataforme/etsy-review-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Etsy Review Scraper",
        "description": "The Etsy Review Scraper  is an easy scraper to extract reviews from specified Etsy shop.  The Etsy review scraper is easy to use, simply provide the shop name and the scraper will do the magic providing you the reviews from the products. etsy scraper python",
        "version": "0.0",
        "x-build-id": "YKWJXV66bUagWHAjB"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/getdataforme~etsy-review-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-getdataforme-etsy-review-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/getdataforme~etsy-review-scraper/runs": {
            "post": {
                "operationId": "runs-sync-getdataforme-etsy-review-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/getdataforme~etsy-review-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-getdataforme-etsy-review-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "shop_name_keyword"
                ],
                "properties": {
                    "shop_name_keyword": {
                        "title": "Shop Name",
                        "type": "string",
                        "description": "The name of the Etsy shop you want to scrape"
                    },
                    "limit": {
                        "title": "Review Limit",
                        "type": "integer",
                        "description": "Number of reviews to scrape. Default is 10."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
