Etsy Scraper

Export public Etsy listings and shops from searches, listing URLs, and shop URLs for pricing research, seller discovery, and catalog monitoring.

Data fields

FieldTypeDescription
listingIdstringValue exported as listingId.
titlestringValue exported as title.
listingUrlstringValue exported as listingUrl.
imageUrlstringValue exported as imageUrl.
shopNamestringValue exported as shopName.
shopUrlstringValue exported as shopUrl.
pricenumberValue exported as price.
currencyCodestringValue exported as currencyCode.

Input preview

searchQueriesSearch queries
startUrlsEtsy URLs
maxItemsMaximum saved records
includeDetailsInclude listing details
countryShip-to country
proxyConfigurationProxy configuration

API and agents

This actor can be run through Apify API, datasets, webhooks, schedules, and the official Apify MCP server.

How this actor works

See example inputs, outputs, API usage, and practical limits before running this actor on Apify.

Open Apify page

Export public Etsy listings and seller metadata from product searches or public Etsy URLs. This Etsy data scraper creates a structured listing dataset for assortment research, pricing comparisons, seller discovery, and catalog monitoring, with an Etsy API workflow through Apify.

What you get

  • Canonical listing IDs, titles, URLs, images, displayed prices, currencies, availability, ratings, and seller links when public
  • Public seller names and shop links on the associated listing records when Etsy exposes them
  • Source URL, query/page position, and scrape timestamp for provenance
  • Pagination, stable-ID deduplication, and a global persisted-record limit

Example input

{
  "searchQueries": ["linen apron"],
  "maxItems": 20,
  "includeDetails": true,
  "country": "US"
}

You can also provide public search, category, listing, or shop URLs:

{
  "startUrls": [{ "url": "https://www.etsy.com/market/linen_apron" }],
  "maxItems": 10
}

Input recipes

  • Search monitoring: provide one or more searchQueries, set a low maxItems, and keep details enabled.
  • Listing lookup: provide a public /listing/… URL in startUrls.
  • Shop catalog: provide a public /shop/… URL in startUrls to export its visible listings, with public seller metadata on each listing when available.

Input settings

Field Type Description
searchQueries string[] Etsy product searches to process.
startUrls request[] Public Etsy search, category, listing, or shop URLs.
maxItems integer Global cap across successfully persisted listing rows.
includeDetails boolean Request public listing pages for additional listing/shop fields.
country string Two-letter ship-to country used for localization.
proxyConfiguration object Optional Apify Proxy configuration.

At least one query or URL is required. Etsy account, messages, and other private URLs are rejected.

Output

The Actor exposes one stable default dataset of listing records. Each record includes publicly visible seller identity and shop links when Etsy exposes them.

Listings

Field Description
listingId, listingUrl Stable Etsy listing identity and canonical URL
title, imageUrl Public product title and primary image
shopName, shopUrl Public seller identity and link
price, currencyCode, availability Displayed offer data
rating, reviewCount Public aggregate rating data; not individual reviews
position, page, sourceQuery Search provenance
sourceUrl, scrapedAt Requested source and extraction timestamp

Conditional fields are omitted when Etsy does not expose them; the Actor does not invent unsupported values.

Tips and limits

  • Start with a low maxItems value to verify your target and expected fields.
  • Enable detail enrichment only when you need fields beyond public result cards.
  • Etsy can vary fields by target and locale and may challenge automated requests. Partial output already saved is preserved.
  • This release does not return individual review records or private/login-only data.

Who is it for?

  • Etsy sellers comparing public prices, titles, and assortments in a niche
  • Marketplace analysts building repeatable listing datasets for research
  • Sourcing teams finding public shops and monitoring visible catalogs
  • Developers and automation teams feeding Etsy data into APIs, agents, spreadsheets, or databases

API usage

JavaScript

import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/etsy-scraper').call({
  searchQueries: ['linen apron'],
  maxItems: 20,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

import os
from apify_client import ApifyClient

client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('fetch_cat/etsy-scraper').call(run_input={
    'searchQueries': ['linen apron'],
    'maxItems': 20,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

cURL

curl -X POST "https://api.apify.com/v2/acts/fetch_cat~etsy-scraper/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"searchQueries":["linen apron"],"maxItems":20}'

MCP and agents

Add the Actor to Claude-compatible clients:

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

Or add an MCP server configuration:

{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com?tools=fetch_cat/etsy-scraper"
    }
  }
}

Example prompts:

  • “Use Etsy Scraper to export 20 linen apron listings and compare displayed prices.”
  • “Export listings from a public Etsy shop and return each listing’s source URL.”
  • “Collect a small Etsy listing dataset for a daily catalog-monitoring workflow.”

Integrations

Send Actor output to Google Sheets, n8n, Zapier, Make, webhooks, cloud storage, or your own database through Apify integrations. Use schedules for repeated monitoring and keep the input small until you confirm the target returns the fields you need.

Support

For bugs or target-specific problems, open an issue from the Actor page and include the public input URL and run ID. Do not include Etsy credentials or private account data.

Common questions

Questions and answers reused from the canonical actor README.

Does it require an Etsy login?

No. The Actor is limited to publicly visible pages and fields.

Does maxItems apply to seller data separately?

No. maxItems caps persisted listing rows in the default dataset. Seller identity is included on the associated listing when publicly visible.

Does it export customer reviews?

No. This release exports public listing rating aggregates only, not individual review records.

How can I export Etsy listings and prices to CSV or Excel?

Run the Actor with a search or public URL, then export the default listing dataset from Apify as CSV, Excel, JSON, or JSONL.

Can I scrape public Etsy shops through an API or MCP?

Yes. Use the JavaScript, Python, cURL, or MCP examples above. The same input schema applies in the Console and through API calls.