# Etsy Product Scraper

Scrape product name, seller, ratings, number of reviews, price, URL, etc from Etsy.com by keywords.

- Template page: [https://www.octoparse.com/template/etsy-product-scraper](https://www.octoparse.com/template/etsy-product-scraper)
- Categories: E-Commerce
- Status: `PUBLISHED`
- Run mode: `BOTH`

## Pricing

Free.

## What is an Octoparse template?

An Octoparse template is a ready-to-use scraping workflow with predefined inputs and structured outputs. Use the exact parameter keys below; do not invent parameters.

## Overview

This ready-to-use template collects structured data from review pages.

## Output

The current workflow extracts 7 fields, including `Image_URL`, `Name`, `Number_of_reviews`, `Price`, `Product_URL`, `Rating`, `Seller`.

## Use Cases

- Use structured results for research, comparison, and monitoring.
- Collect rows without building the extraction workflow from scratch.
- Combine results with other templates for downstream enrichment.
- Review a representative result before starting a large batch.

## Why Octoparse

- **No coding required:** complete Keywords (up to 100) and start the template in local or cloud mode.
- **Flexible export:** review and export results as CSV, Excel, or JSON.

## Input

### Keywords (up to 100)

Required. Enter a list of keywords for searching on Etsy Constraints: minItems=1; maxItems=100; items.minLength=1; items.maxLength=5000.

## How to Use

## Etsy Product Scraper (by Keyword)

Collects product names, sellers, ratings, review counts, prices, product URLs, and image URLs from Etsy search results for each supplied keyword. Data source: [Etsy](https://www.etsy.com/).

### Pricing

Free of charge (no per-line fee). Octoparse plan or resource limits may still apply.

### Input

- **Keywords** (Required) – Up to 100 search terms per run.

### Output Fields

- `Name`
- `Seller`
- `Rating`
- `Number_of_reviews`
- `Price`
- `Product_URL`
- `Image_URL`

### How to Use

1. Open the template and click **Try it!**.
2. Enter your keywords (up to 100) in the **Keywords** field.
3. Choose a local or cloud run and start the task.
4. Review the collected fields, then export the data in your preferred format.

### Tips

- Start with a small set of focused keywords to verify the output before scaling up.

## Notes

If the template doesn't work well, feel free to report it to us with the parameters you were using. We also provide managed template/crawler customization services. If you're interested, please contact template@octoparse.com with your project details.

## Limitations

Results depend on what the source site exposes at run time. Fields may be empty when a source page does not provide a value. The template enforces the input limits shown above.

## Tips

Use specific, valid inputs and review a representative result before starting a large batch. Remove duplicate inputs when repeated records are not needed.

## FAQ

### What do I need to enter?

Use the exact inputs and limits listed above.

### What data does this template return?

See Output Schema below; availability can vary by source record.

### How is usage billed?

See the Pricing section above for current pricing and billing details.

## Related Templates

- [Etsy Product Scraper (by URL)](https://www.octoparse.com/template/etsy-product-scraper-by-url)
- [Etsy Product Scraper（by keywords）](https://www.octoparse.com/template/etsy_product_scraper)
- [Etsy Scraper](https://www.octoparse.com/template/etsy-scraper)
- [Etsy Shop Products Scraper](https://www.octoparse.com/template/etsy-shop-products-scraper)
- [Amazon Japan Product Scraper](https://www.octoparse.com/template/amazon-japan-product-scraper)

## Input Schema

```json
{
  "title": "Etsy Product Scraper input",
  "description": "Input parameters configured for the current published template version.",
  "type": "object",
  "schemaVersion": 1,
  "additionalProperties": false,
  "properties": {
    "keywords": {
      "title": "Keywords (up to 100)",
      "description": "Enter a list of keywords for searching on Etsy",
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 5000
      },
      "minItems": 1,
      "maxItems": 100,
      "x-octoparse": {
        "apiEnabled": true
      }
    }
  },
  "required": [
    "keywords"
  ]
}
```

## Input JSON Example

Example 1

```json
{
  "keywords": [
    "personalized gift"
  ]
}
```

Example 2

```json
{
  "keywords": [
    "fishing hats"
  ]
}
```

Example 3

```json
{
  "keywords": [
    "fishing hat"
  ]
}
```

Example 4

```json
{
  "keywords": [
    "fishing hat"
  ]
}
```


## Output Schema

```json
{
  "schemaVersion": 1,
  "type": "object",
  "properties": {
    "Image_URL": {
      "type": "string",
      "description": ""
    },
    "Name": {
      "type": "string",
      "description": ""
    },
    "Number_of_reviews": {
      "type": "string",
      "description": ""
    },
    "Price": {
      "type": "string",
      "description": ""
    },
    "Product_URL": {
      "type": "string",
      "description": ""
    },
    "Rating": {
      "type": "string",
      "description": ""
    },
    "Seller": {
      "type": "string",
      "description": ""
    }
  },
  "title": "Etsy Product Scraper output",
  "description": "Initial output fields derived from the current published implementation. Field descriptions are maintained by Data Center; production field names and types should be refreshed from recent successful runs.",
  "additionalProperties": false
}
```

## Output Example

Example 1

```json
{
  "Image_URL": "https://i.etsystatic.com/8416122/r/il/a2fc83/7586862721/il_300x300.7586862721_b60q.jpg",
  "Name": "\n                    Boho Wedding Vow Booklets, Personalized, Tooled floral Leather, Luxury His Her Vow Books\n                ",
  "Number_of_reviews": "",
  "Price": "14.02",
  "Product_URL": "https://www.etsy.com/listing/4430502705/boho-wedding-vow-booklets-personalized?click_key=fcc6c042313385e12a9a1911e69df53963daf3ed%3A4430502705&click_sum=1f3ea9f8&ref=hp_daily_deals-1&sr_prefetch=1&pf_from=home_non_recs&pro=1&sts=1",
  "Rating": "",
  "Seller": ""
}
```

Example 2

```json
{
  "Image_URL": "https://i.etsystatic.com/15744265/r/il/9327a2/4240755012/il_300x300.4240755012_5pvc.jpg",
  "Name": "\n                    Plush minky name blankets and accessories\n                ",
  "Number_of_reviews": "",
  "Price": "16.50",
  "Product_URL": "https://www.etsy.com/listing/1322816113/plush-minky-name-blankets-and-sets-for?click_key=2fac310952eaed67e864324113ece25e5ec45012%3A1322816113&click_sum=bb26848b&ref=hp_daily_deals-1&sr_prefetch=1&pf_from=home_non_recs&pro=1&sts=1",
  "Rating": "",
  "Seller": ""
}
```

Example 3

```json
{
  "Image_URL": "https://i.etsystatic.com/15744265/r/il/9327a2/4240755012/il_300x300.4240755012_5pvc.jpg",
  "Name": "\n                    Plush minky name blankets and accessories\n                ",
  "Number_of_reviews": "",
  "Price": "16.50",
  "Product_URL": "https://www.etsy.com/listing/1322816113/plush-minky-name-blankets-and-sets-for?click_key=aeeccd39fc5e9b5cd219f34948b49b7aeb92d2df%3A1322816113&click_sum=a143c290&ref=hp_daily_deals-1&sr_prefetch=1&pf_from=home_non_recs&pro=1&sts=1",
  "Rating": "",
  "Seller": ""
}
```

Example 4

```json
{
  "Image_URL": "https://i.etsystatic.com/15744265/r/il/9327a2/4240755012/il_300x300.4240755012_5pvc.jpg",
  "Name": "\n                    Plush minky name blankets and accessories\n                ",
  "Number_of_reviews": "",
  "Price": "16.50",
  "Product_URL": "https://www.etsy.com/listing/1322816113/plush-minky-name-blankets-and-sets-for?click_key=4597d20c4498b9ba7ec55b2a158bf6b8396077ed%3A1322816113&click_sum=8257c8d6&ref=hp_daily_deals-1&sr_prefetch=1&pf_from=home_non_recs&pro=1&sts=1",
  "Rating": "",
  "Seller": ""
}
```

## API

`POST https://openapi.octoparse.com/api/agentTools/executeTask`

This is the OpenAPI Agent Tools `executeTask` endpoint. Authenticate with a Bearer token.

Request body:

`templateName` is the template slug; `parameters` is a JSON object string whose keys match Input Schema; `taskName`, `idempotencyKey`, and `maxCollectedRows` are optional.

Obtain a token:

```http
POST https://openapi.octoparse.com/token
Content-Type: application/json

{
  "username": "YOUR_USERNAME",
  "password": "YOUR_PASSWORD",
  "grant_type": "password"
}
```

Use `data.access_token` as `Authorization: Bearer <token>`. After starting, poll `getTaskStatus` and export with `exportData`.

```json
{
  "templateName": "etsy-product-scraper",
  "taskName": "Etsy Product Scraper",
  "parameters": "{\"keywords\":[\"personalized gift\"]}"
}
```

## Python Example

```python
import json
import requests

OPENAPI_BASE = "https://openapi.octoparse.com"
ACCESS_TOKEN = "YOUR_ACCESS_TOKEN"

parameters = json.loads("{\"keywords\":[\"personalized gift\"]}")

response = requests.post(
    f"{OPENAPI_BASE}/api/agentTools/executeTask",
    headers={
        "Authorization": f"Bearer {ACCESS_TOKEN}",
        "Content-Type": "application/json",
    },
    json={
        "templateName": "etsy-product-scraper",
        "taskName": "Etsy Product Scraper",
        "parameters": json.dumps(parameters, ensure_ascii=False),
    },
    timeout=60,
)
print(response.status_code)
print(response.json())
```

## HTTP/cURL Example

```bash
curl -X POST "https://openapi.octoparse.com/api/agentTools/executeTask" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  --data-binary @- <<'JSON'
{
  "templateName": "etsy-product-scraper",
  "taskName": "Etsy Product Scraper",
  "parameters": "{\"keywords\":[\"personalized gift\"]}"
}
JSON
```

## MCP Setup

Connect an MCP-compatible AI client to `https://mcp.octoparse.com` using browser OAuth or an Octoparse API key. Find `etsy-product-scraper`, inspect its inputs, create a cloud task with the exact Input Schema keys, and export JSON results.

## Machine-readable Resources

- [Template contract](https://www.octoparse.com/templates/etsy-product-scraper.json)
- [Manifest](https://www.octoparse.com/templates/etsy-product-scraper-manifest.json)
