# Etsy Data Scraper Pro (`getdataforme/etsy-data-scraper-pro`) Actor

Etsy Data Scraper Pro extracts detailed Etsy listing and shop data including prices, ratings, seller details, shipping info, bestseller badges, reviews, and images. Supports keyword search, custom Etsy URLs, country filtering, and scalable JSON export for analytics and automation.

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

## Pricing

from $10.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 Categories Scraper Pro — Extract Etsy Product Data, Prices & Trends

Looking to scale your Etsy business or conduct advanced market research? **Etsy Categories Scraper Pro** helps you extract Etsy product data, pricing intelligence, seller insights, and marketplace trends — without writing a single line of code.

Whether you are an Etsy seller optimizing your products, a marketer tracking trends, or a developer building e-commerce dashboards, this Actor delivers clean, structured, export-ready Etsy datasets at scale.

---

## 🚀 Why Choose Etsy Categories Scraper Pro?

Stop spending hours manually browsing Etsy listings. This Actor transforms Etsy marketplace data into a powerful, actionable dataset you can use for:

* Product research
* Competitor analysis
* Pricing intelligence
* Trend discovery
* Seller monitoring
* E-commerce automation

Built for speed, scalability, and reliability using Python Scrapy.

---

## ✨ Key Features

* **Keyword-Based Etsy Scraping**
  Search Etsy products using category keywords or niche terms.

* **Custom Search URL Support**
  Use direct Etsy search URLs for advanced filtering and custom searches.

* **Marketplace Country Support**
  Scrape listings from multiple Etsy marketplaces:

  * United States (`US`)
  * Canada (`CA`)
  * United Kingdom (`GB`)
  * Germany (`DE`)

* **Location-Based Product Filtering**
  Filter Etsy listings using Etsy location query IDs.

* **Rich Product Metadata Extraction**
  Collect detailed listing, seller, shipping, and review information.

* **Product Image Extraction**
  Download main listing images and gallery image URLs.

* **Scalable & Fast Architecture**
  Built with Python Scrapy for high-performance crawling.

* **Structured JSON Output**
  Export-ready datasets compatible with CSV, Excel, JSON, XML, and APIs.

* **Configurable Scraping Limits**
  Control exactly how many products you want to scrape.

---

## 📥 Input Parameters

| Parameter       | Type    | Required | Description                                            | Example                                         |
| --------------- | ------- | -------- | ------------------------------------------------------ | ----------------------------------------------- |
| `Category`      | string  | No       | Etsy keyword or category search term                   | `"crochet bouquet"`                             |
| `LocationQuery` | string  | No       | Etsy location query ID for regional filtering          | `"2921044"`                                     |
| `Country`       | string  | No       | Marketplace country (`US`, `CA`, `GB`, `DE`)           | `"US"`                                          |
| `SearchUrl`     | string  | No       | Direct Etsy search URL. Overrides keyword search       | `"https://www.etsy.com/search?q=handmade+gift"` |
| `item_limit`    | integer | No       | Maximum items to scrape. Use `0` for unlimited results | `50`                                            |

---

## 📌 Example Input

### Keyword-Based Search

```json
{
  "Category": "crochet flower bouquet",
  "Country": "US",
  "item_limit": 20
}
````

### Custom Search URL

```json
{
  "SearchUrl": "https://www.etsy.com/search?q=handmade+mug",
  "Country": "CA",
  "item_limit": 30
}
```

### Location-Based Search

```json
{
  "Category": "ceramic mug",
  "LocationQuery": "2921044",
  "Country": "US",
  "item_limit": 15
}
```

***

## 📤 Example Output

```json
{
  "listing_id": 1436931928,
  "shop_id": 41548668,
  "user_id": 761173241,
  "title": "Handmade Crochet Lily Bouquet - White, Purple, Pink, Yellow - Unique Gift for Her",
  "shop_name": "LenStudioCrochet",
  "shop_url": "https://www.etsy.com/shop/LenStudioCrochet",
  "shop_average_rating": "4.74",
  "shop_total_rating_count": "3749",
  "price_formatted_short": "$58.71",
  "url": "https://www.etsy.com/listing/1436931928/handmade-crochet-lily-bouquet-white",
  "origin_country_id": 219,
  "seller_location": "Hong Kong",
  "min_processing_days": 1,
  "max_processing_days": 1,
  "are_returns_accepted": true,
  "are_exchanges_accepted": true,
  "return_deadline_in_days": 30,
  "free_shipping_countries": ["ANY"],
  "ships_to_regions": ["ANY"],
  "is_bestseller": true,
  "is_top_rated": false,
  "is_handmade": true,
  "is_personalizable": false,
  "has_variations": true,
  "accepts_gift_card": true,
  "is_download": false,
  "is_vintage": false,
  "is_sold_out": false,
  "in_cart_count": 42,
  "listing_review_photo_count": 79,
  "listing_review_video_count": 5,
  "image": "https://i.etsystatic.com/example.jpg",
  "image_urls": [
    "https://i.etsystatic.com/example1.jpg",
    "https://i.etsystatic.com/example2.jpg"
  ]
}
```

***

## 📊 Extracted Data Fields

| Field                         | Description                     |
| ----------------------------- | ------------------------------- |
| `listing_id`                  | Etsy listing ID                 |
| `shop_id`                     | Etsy shop ID                    |
| `user_id`                     | Seller user ID                  |
| `title`                       | Product title                   |
| `shop_name`                   | Etsy shop name                  |
| `shop_url`                    | Direct Etsy shop URL            |
| `shop_average_rating`         | Average shop rating             |
| `shop_total_rating_count`     | Total shop review count         |
| `price_formatted_short`       | Product price                   |
| `url`                         | Product listing URL             |
| `origin_country_id`           | Seller country ID               |
| `origin_postal_code`          | Seller postal code              |
| `seller_location`             | Seller location                 |
| `min_processing_days`         | Minimum processing time         |
| `max_processing_days`         | Maximum processing time         |
| `are_returns_accepted`        | Return policy status            |
| `are_exchanges_accepted`      | Exchange policy status          |
| `return_deadline_in_days`     | Return deadline                 |
| `free_shipping_countries`     | Free shipping countries         |
| `ships_to_regions`            | Shipping regions                |
| `is_bestseller`               | Bestseller badge                |
| `is_top_rated`                | Top-rated seller status         |
| `is_handmade`                 | Handmade item flag              |
| `is_personalizable`           | Personalization support         |
| `has_variations`              | Product variations available    |
| `has_variations_with_pricing` | Variation pricing support       |
| `accepts_gift_card`           | Gift card support               |
| `is_download`                 | Digital download flag           |
| `is_vintage`                  | Vintage item flag               |
| `is_sold_out`                 | Sold out status                 |
| `is_vacation`                 | Shop vacation mode              |
| `in_cart_count`               | Number of carts containing item |
| `listing_review_photo_count`  | Review photo count              |
| `listing_review_video_count`  | Review video count              |
| `free_shipping_data`          | Free shipping metadata          |
| `image`                       | Main listing image              |
| `image170`                    | Thumbnail image                 |
| `image_urls`                  | Gallery image URLs              |
| `actor_id`                    | Apify Actor ID                  |
| `run_id`                      | Apify Run ID                    |

***

## 🎯 Popular Use Cases

### E-commerce Product Research

Discover trending Etsy products, pricing strategies, and successful niches.

### Competitor Analysis

Monitor competing Etsy shops, bestseller listings, ratings, and pricing structures.

### Market Trend Analysis

Analyze handmade, vintage, and personalized product trends across Etsy marketplaces.

### Lead Generation & Seller Discovery

Find top-performing Etsy sellers and product categories.

### Data Pipelines & Dashboards

Use structured JSON output to build custom analytics dashboards or automate workflows.

***

## ⚡ How to Start Scraping Etsy

### 1. Configure Your Search Input

Choose one of the following:

- Add a `Category` keyword
- OR provide a direct `SearchUrl`

Example:

```json
{
  "Category": "crochet flower bouquet"
}
```

***

### 2. Set Marketplace & Scraping Limits

Choose your Etsy marketplace country and define how many products to scrape.

Example:

```json
{
  "Country": "US",
  "item_limit": 20
}
```

Optional:

- Add `LocationQuery` for regional filtering.

***

### 3. Run the Actor & Export Your Data

Start the Actor and export your Etsy dataset in:

- JSON
- CSV
- Excel
- XML

Perfect for:

- Product research
- Analytics dashboards
- Trend analysis
- Competitive intelligence

***

## 📝 Notes

- `SearchUrl` overrides keyword-based searches.
- Data availability may vary depending on Etsy platform updates and listing privacy settings.
- Large scraping jobs may benefit from residential proxies for maximum reliability.

***

## 🛠 Support

Need help, feature requests, or custom scraper development?

- Email: <support@getdataforme.com>
- Subject: `custom support`
- Contact Form: <https://getdataforme.com/contact/>

We’re happy to help you get the most out of Etsy Categories Scraper Pro.

# Actor input Schema

## `Category` (type: `string`):

The category Search Keyword for the spider.

## `locationQuery` (type: `integer`):

The location query specific location for the spider for eg. locationQuery=2921044.

## `Country` (type: `string`):

The country for the spider.

## `SearchUrl` (type: `string`):

The search url this is optional for the spider.

## `item_limit` (type: `integer`):

Maximum items to scrape per actor run. Set to 0 for no limit.

## `proxyConfiguration` (type: `object`):

Specifies proxy servers that will be used by the scraper in order to hide its origin.

## Actor input object example

```json
{
  "Category": "",
  "locationQuery": 0,
  "Country": "US",
  "SearchUrl": "",
  "item_limit": 10,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# 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 = {
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("getdataforme/etsy-data-scraper-pro").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 = { "proxyConfiguration": { "useApifyProxy": False } }

# Run the Actor and wait for it to finish
run = client.actor("getdataforme/etsy-data-scraper-pro").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 '{
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call getdataforme/etsy-data-scraper-pro --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Etsy Data Scraper Pro",
        "description": "Etsy Data Scraper Pro extracts detailed Etsy listing and shop data including prices, ratings, seller details, shipping info, bestseller badges, reviews, and images. Supports keyword search, custom Etsy URLs, country filtering, and scalable JSON export for analytics and automation.",
        "version": "0.2",
        "x-build-id": "Rbfe6MbYrbZYYcV9I"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/getdataforme~etsy-data-scraper-pro/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-getdataforme-etsy-data-scraper-pro",
                "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-data-scraper-pro/runs": {
            "post": {
                "operationId": "runs-sync-getdataforme-etsy-data-scraper-pro",
                "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-data-scraper-pro/run-sync": {
            "post": {
                "operationId": "run-sync-getdataforme-etsy-data-scraper-pro",
                "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",
                "properties": {
                    "Category": {
                        "title": "Category keyword",
                        "type": "string",
                        "description": "The category Search Keyword for the spider.",
                        "default": ""
                    },
                    "locationQuery": {
                        "title": "Location ID for specific location",
                        "type": "integer",
                        "description": "The location query specific location for the spider for eg. locationQuery=2921044.",
                        "default": 0
                    },
                    "Country": {
                        "title": "Country",
                        "enum": [
                            "CA",
                            "GB",
                            "DE",
                            "US"
                        ],
                        "type": "string",
                        "description": "The country for the spider.",
                        "default": "US"
                    },
                    "SearchUrl": {
                        "title": "Search Url",
                        "type": "string",
                        "description": "The search url this is optional for the spider.",
                        "default": ""
                    },
                    "item_limit": {
                        "title": "Item limit",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum items to scrape per actor run. Set to 0 for no limit.",
                        "default": 10
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Specifies proxy servers that will be used by the scraper in order to hide its origin."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
