Etsy Scraper avatar

Etsy Scraper

Pricing

from $1.32 / 1,000 saved records

Go to Apify Store
Etsy Scraper

Etsy Scraper

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

Pricing

from $1.32 / 1,000 saved records

Rating

0.0

(0)

Developer

Hanna Nosova

Hanna Nosova

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Categories

Share

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

FieldTypeDescription
searchQueriesstring[]Etsy product searches to process.
startUrlsrequest[]Public Etsy search, category, listing, or shop URLs.
maxItemsintegerGlobal cap across successfully persisted listing rows.
includeDetailsbooleanRequest public listing pages for additional listing/shop fields.
countrystringTwo-letter ship-to country used for localization.
proxyConfigurationobjectOptional 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

FieldDescription
listingId, listingUrlStable Etsy listing identity and canonical URL
title, imageUrlPublic product title and primary image
shopName, shopUrlPublic seller identity and link
price, currencyCode, availabilityDisplayed offer data
rating, reviewCountPublic aggregate rating data; not individual reviews
position, page, sourceQuerySearch provenance
sourceUrl, scrapedAtRequested source and extraction timestamp

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

Pricing

The Actor charges the result event once after each listing row is successfully stored. See the live Pricing tab for current plan-specific rates.

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.

FAQ

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.

How do I monitor Etsy listing prices over time?

Schedule repeated runs and store each export in your destination. Prices reflect what Etsy publicly displayed when each record was collected.

Why are some optional fields missing?

Etsy varies public fields by listing, shop, locale, and page type. Missing optional values are omitted rather than replaced with guesses.

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.