Etsy Scraper
Pricing
from $1.32 / 1,000 saved records
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
Maintained by CommunityActor 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 lowmaxItems, and keep details enabled. - Listing lookup: provide a public
/listing/…URL instartUrls. - Shop catalog: provide a public
/shop/…URL instartUrlsto 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.
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
maxItemsvalue 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 osfrom apify_client import ApifyClientclient = 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().itemsprint(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.
Related Actors
- Amazon Products & Search Scraper
- eBay Scraper
- Walmart Scraper
- Google Shopping Scraper
- AliExpress Scraper
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.