# Etsy Shop Products Scraper (`parseforge/etsy-scraper`) Actor

Scrape all products from any Etsy shop by name or URL. Returns title, price, image, description, and seller info. No login needed.

- **URL**: https://apify.com/parseforge/etsy-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** E-commerce, Automation, Other
- **Stats:** 102 total users, 15 monthly users, 95.4% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $112.99 / 1,000 result items

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

[![ParseForge](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner.jpg)](https://apify.com/parseforge?fpr=vmoqkp)

### Etsy Shop Products Scraper

**Scrape all products from any Etsy shop, up to a million items per run.** Every product comes with its title, price, image, description, and seller info. No login or API key. Export to CSV, JSON, Excel, or XML.

Etsy's search and shop pages are designed for browsing, not bulk data extraction. Manually copying product listings from dozens of shops is slow and error-prone. This Actor reads the public product feeds of any Etsy shop directly, returning each listing as a structured row with all key details.

| Who uses it | What they scrape Etsy for |
|---|---|
| Etsy sellers | Monitor competitor shops for pricing, new listings, and product trends. |
| Market researchers | Analyze product categories, pricing strategies, and popular items across multiple shops. |
| Dropshippers | Find trending products and suppliers by scraping product data from top Etsy shops. |
| Data analysts | Build datasets of Etsy products for machine learning or business intelligence. |

### What it does

This Actor collects all products from one or more Etsy shops by shop name or URL, and returns each product as a flat row with title, price, image, description, and more.

- 🛍️ **Multi-shop input:** Provide up to dozens of shop names or URLs in one run; each shop returns its own product list.
- 📦 **Scalable output:** Set a max item limit per run, from a preview of 10 items to up to 1,000,000 items.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

### What you can do with Etsy data

**📊 Monitor competitor shops.**

An Etsy seller runs the scraper weekly on top competitor shops to track new listings, price changes, and product descriptions.

**🔍 Research product trends.**

A market researcher scrapes 50 shops in a niche to analyze pricing, popular categories, and listing frequency.

**📦 Build a product catalog.**

A dropshipper collects product data from multiple Etsy shops to find trending items and compare suppliers.

**📈 Analyze pricing strategies.**

A data analyst scrapes hundreds of shops to build a pricing model and identify under- or over-priced products.

### Why choose this scraper

|  | What you get |
|---|---|
| **No login needed** | Scrape public Etsy shop pages without an account or API key. |
| **Full product data** | Each row includes title, price, image URL, description, and seller info. |
| **Bulk shop input** | Enter dozens of shop names at once and get all products in one dataset. |
| **Flexible export** | Download results as CSV, JSON, Excel, or XML for any workflow. |

### How it compares

No other Store actor targets Etsy the same way, so the honest comparison is with the alternatives teams actually weigh.

| | Etsy Shop Products Scraper | Build it in-house | By hand |
|---|---|---|---|
| Setup | Run it now, zero config | Days of engineering | None, but hours per pull |
| When Etsy changes | Maintained for you | You fix it | You re-learn the page |
| Proxies, retries, anti-bot | Built in | Your problem | Browser only |
| Output | Fixed JSON schema, CSV/Excel export | Whatever you build | Copy-paste |
| Cost | Pay per result | Engineering time | Analyst hours |

### Configure the run

Drive the Actor from a list of Etsy shop names or full shop URLs. The scraper reads each shop's product feed and returns all items up to your chosen limit. The Input tab lists every parameter.

A first run with the defaults:

```json
{
  "shopNames": [
    "CaitlynMinimalist",
    "SilverRainSilver",
    "TheSilverWren",
    "Divazpublishing",
    "BrigiBre",
    "MrEastShop",
    "ArtByFameli",
    "HippoAndBunny",
    "FameliArt",
    "CraftyChicSaver",
    "BuzyHandsStudio",
    "BelakMugs",
    "ShineOnInspiration",
    "StrawberryCosmo",
    "LasagneTonic",
    "ScarvesbyJojo",
    "ModParty",
    "PlanetPups",
    "NorthwoodsCandlesCo",
    "BoholoveJewelry",
    "TuesdayMorningStudio",
    "BennyAndBetsyDesigns",
    "ByStephanieLea",
    "LetsGetMuggyShop",
    "BigBrownEyesVintage",
    "CosyhomeArtIRE",
    "LadybirdDesignsPGH"
  ],
  "maxItems": 10
}
```

A larger pull:

```json
{
  "shopNames": [
    "CaitlynMinimalist",
    "SilverRainSilver",
    "TheSilverWren",
    "Divazpublishing",
    "BrigiBre",
    "MrEastShop",
    "ArtByFameli",
    "HippoAndBunny",
    "FameliArt",
    "CraftyChicSaver",
    "BuzyHandsStudio",
    "BelakMugs",
    "ShineOnInspiration",
    "StrawberryCosmo",
    "LasagneTonic",
    "ScarvesbyJojo",
    "ModParty",
    "PlanetPups",
    "NorthwoodsCandlesCo",
    "BoholoveJewelry",
    "TuesdayMorningStudio",
    "BennyAndBetsyDesigns",
    "ByStephanieLea",
    "LetsGetMuggyShop",
    "BigBrownEyesVintage",
    "CosyhomeArtIRE",
    "LadybirdDesignsPGH"
  ],
  "maxItems": 200
}
```

### Pricing

Pay-per-result: **$0.15066 per result** collected. You pay only for the results written to your dataset.

| Results collected | Approximate cost |
|---|---|
| 100 results | $15.07 |
| 1,000 results | $150.66 |
| 10,000 results | $1506.60 |

New Apify accounts start with $5 in free credit.

### Free users

Free-plan runs return up to 10 results as a preview. [Upgrade your Apify plan](https://console.apify.com/sign-up?fpr=vmoqkp) to collect up to 1,000,000 results per run.

### Run it

1. [Create a free Apify account with $5 in credit](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the [Etsy Shop Products Scraper](https://apify.com/parseforge/etsy-scraper?fpr=vmoqkp).
3. Set your inputs and any filters, then click **Start**.
4. Export the results as CSV, Excel, JSON, or XML from the **Dataset** tab.

Run it programmatically through the [Apify API](https://docs.apify.com/api/v2) (`run-sync-get-dataset-items`) or the [ApifyClient](https://docs.apify.com/api/client/js) for JavaScript and Python.

### Use with AI agents (MCP)

Give an AI agent live access to Etsy through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

```bash
claude mcp add --transport http apify "https://mcp.apify.com/?tools=parseforge/etsy-scraper"
```

Then prompt it in plain language to run the scraper and read back the results.

### Troubleshooting

**Why am I getting no results?**

Check that the shop name or URL is correct and the shop is public. Private or deactivated shops will return no data.

**The scraper only returned a few items per shop.**

The default max items is 10 for free users. Increase the maxItems value in the input settings to scrape more products.

**Some product fields are missing.**

The scraper reads what is publicly visible on the shop page. If a field is not displayed (e.g., description hidden), it will be empty.

**The run failed with a timeout error.**

Large runs with many shops or items may need more time. Reduce the number of shops or maxItems, or upgrade to a paid plan for longer run limits.

### FAQ

| Question | Answer |
|---|---|
| Do I need an Etsy API key? | No. This scraper reads public shop pages directly, so no API key or login is required. |
| Can I scrape multiple shops at once? | Yes. Enter a list of shop names or URLs, and the Actor will process each one and return all products in a single dataset. |
| What data does each product row include? | Each row includes the product title, price, image URL, description, seller name, and other public fields from the shop page. |
| Is there a limit on how many items I can scrape? | Free users get a preview of up to 10 items. Paid users can set a max up to 1,000,000 items per run. |
| Can I scrape a specific category or search within a shop? | No. The scraper returns all products from a shop's main listing page. It does not filter by category or search term. |
| What export formats are available? | You can download results as CSV, JSON, Excel, or XML directly from the Apify platform. |
| How fast is the scraper? | Speed depends on the number of shops and items. A typical run with 10 shops and 100 items each completes in a few minutes. |
| Does it work for shops outside the US? | Yes. Etsy shops from any country are supported as long as the shop URL is publicly accessible. |

### Related actors

Browse the full [ParseForge collection](https://apify.com/parseforge?fpr=vmoqkp) for more scrapers.

🆘 **Need help?** Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ **Disclaimer.** This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Etsy, Inc. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

# Actor input Schema

## `shopNames` (type: `array`):

List of Etsy shop names or shop URLs (e.g. CaitlynMinimalist or https://www.etsy.com/shop/CaitlynMinimalist). One record is returned per shop.

## `maxItems` (type: `integer`):

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

## Actor input object example

```json
{
  "shopNames": [
    "CaitlynMinimalist",
    "SilverRainSilver",
    "TheSilverWren",
    "Divazpublishing",
    "BrigiBre",
    "MrEastShop",
    "ArtByFameli",
    "HippoAndBunny",
    "FameliArt",
    "CraftyChicSaver",
    "BuzyHandsStudio",
    "BelakMugs",
    "ShineOnInspiration",
    "StrawberryCosmo",
    "LasagneTonic",
    "ScarvesbyJojo",
    "ModParty",
    "PlanetPups",
    "NorthwoodsCandlesCo",
    "BoholoveJewelry",
    "TuesdayMorningStudio",
    "BennyAndBetsyDesigns",
    "ByStephanieLea",
    "LetsGetMuggyShop",
    "BigBrownEyesVintage",
    "CosyhomeArtIRE",
    "LadybirdDesignsPGH"
  ],
  "maxItems": 10
}
```

# Actor output Schema

## `results` (type: `string`):

Dataset with all scraped items

# 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 = {
    "shopNames": [
        "CaitlynMinimalist",
        "SilverRainSilver",
        "TheSilverWren",
        "Divazpublishing",
        "BrigiBre",
        "MrEastShop",
        "ArtByFameli",
        "HippoAndBunny",
        "FameliArt",
        "CraftyChicSaver",
        "BuzyHandsStudio",
        "BelakMugs",
        "ShineOnInspiration",
        "StrawberryCosmo",
        "LasagneTonic",
        "ScarvesbyJojo",
        "ModParty",
        "PlanetPups",
        "NorthwoodsCandlesCo",
        "BoholoveJewelry",
        "TuesdayMorningStudio",
        "BennyAndBetsyDesigns",
        "ByStephanieLea",
        "LetsGetMuggyShop",
        "BigBrownEyesVintage",
        "CosyhomeArtIRE",
        "LadybirdDesignsPGH"
    ],
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/etsy-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 = {
    "shopNames": [
        "CaitlynMinimalist",
        "SilverRainSilver",
        "TheSilverWren",
        "Divazpublishing",
        "BrigiBre",
        "MrEastShop",
        "ArtByFameli",
        "HippoAndBunny",
        "FameliArt",
        "CraftyChicSaver",
        "BuzyHandsStudio",
        "BelakMugs",
        "ShineOnInspiration",
        "StrawberryCosmo",
        "LasagneTonic",
        "ScarvesbyJojo",
        "ModParty",
        "PlanetPups",
        "NorthwoodsCandlesCo",
        "BoholoveJewelry",
        "TuesdayMorningStudio",
        "BennyAndBetsyDesigns",
        "ByStephanieLea",
        "LetsGetMuggyShop",
        "BigBrownEyesVintage",
        "CosyhomeArtIRE",
        "LadybirdDesignsPGH",
    ],
    "maxItems": 10,
}

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

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

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

```

## CLI example

```bash
echo '{
  "shopNames": [
    "CaitlynMinimalist",
    "SilverRainSilver",
    "TheSilverWren",
    "Divazpublishing",
    "BrigiBre",
    "MrEastShop",
    "ArtByFameli",
    "HippoAndBunny",
    "FameliArt",
    "CraftyChicSaver",
    "BuzyHandsStudio",
    "BelakMugs",
    "ShineOnInspiration",
    "StrawberryCosmo",
    "LasagneTonic",
    "ScarvesbyJojo",
    "ModParty",
    "PlanetPups",
    "NorthwoodsCandlesCo",
    "BoholoveJewelry",
    "TuesdayMorningStudio",
    "BennyAndBetsyDesigns",
    "ByStephanieLea",
    "LetsGetMuggyShop",
    "BigBrownEyesVintage",
    "CosyhomeArtIRE",
    "LadybirdDesignsPGH"
  ],
  "maxItems": 10
}' |
apify call parseforge/etsy-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/etsy-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/R5lM13YGBIykceodK/builds/EIaRLjjGujb4FzKjC/openapi.json
