Etsy Scraper: Listings, Prices & Shops
Pricing
from $1.50 / 1,000 listings
Etsy Scraper: Listings, Prices & Shops
Scrape Etsy search listings: title, price, currency, shop name and image. Handmade and vintage marketplace research. No login, no API key.
Pricing
from $1.50 / 1,000 listings
Rating
0.0
(0)
Developer
The Mine Works
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
a few seconds ago
Last modified
Categories
Share
🏆 Part of The Mine Works' 149-actor portfolio · 40,000+ runs · 200,000+ results delivered across our full distribution stack · 99.9%+ success rate
💰 $1.50 / 1,000 results.
⚡ Reads Etsy's split price markup directly: separate currency-symbol and currency-value elements, a screen-reader fallback, and correct original versus sale price detection instead of string-mangled numbers.
Scrape Etsy search listings: title, price, currency, sale price, shop name and image. No login, no API key, no browser.
✅ Title, price, currency and shop on 100% of records · ✅ Original price on discounted items · ✅ Around 55 listings per page · ✅ No listings found, no per-listing charge
Search Etsy by keyword
{"queries": ["personalized water bottle"],"maxItems": 300}
Track a niche across several search terms
{"queries": ["custom tumbler", "engraved tumbler", "personalized flask"],"maxItems": 500,"monitorMode": true}
What you get for each listing
{"listing_id": "4321268709","title": "Engraved Water Bottles With Straw, Personalized Insulated Water Bottle","price": 7.11,"currency": "USD","original_price": 9.48,"on_sale": true,"shop_name": "TheSandArtCrafts","shop_id": "53802873","is_ad": false,"image": "https://i.etsystatic.com/53802873/r/il/...","listing_url": "https://www.etsy.com/listing/4321268709"}
| Field | Description |
|---|---|
🏷️ title | Listing title |
💰 price, currency | Current price as a sortable number, and its currency |
🔻 original_price, on_sale | Pre-discount price and whether the item is reduced |
🏪 shop_name, shop_id | Seller shop, with Etsy's "Ad ・ By" prefix stripped |
📣 is_ad | Whether the listing was a promoted result |
🖼️ image | Listing image URL |
🔗 listing_url | Clean listing link |
What this does not return, and why
Rating and review count are not included. Etsy's search pages do not contain them: those figures are fetched by the browser after the page loads, so they are absent from the HTML entirely. Four different extraction approaches were tested against live pages and every one returned nothing on every listing.
Rather than ship rating columns that would be null on every row and look like a broken scraper, the fields are left out. If you need ratings, they are on the individual listing pages, not in search results.
A small fraction of rows may be skipped rather than delivered wrong. Etsy occasionally serves a card in a markup variant this actor cannot parse cleanly. Measured across two independent test batches (88 listings total), this affected roughly 1 in 90 rows. Rather than deliver a row with a missing title or price, the actor drops it and moves on, so what you receive is correct rather than complete to the last listing.
How the price is read
Etsy writes each price three different ways in the same card: a screen-reader string, a visible amount split across separate currency-symbol and currency-value elements, and a struck-through original price in a sibling element. A parser expecting $45.57 as contiguous text matches none of them, which is a common reason Etsy scrapers return empty prices.
This actor reads the split elements directly, then falls back to the screen-reader copy, and treats the higher of two prices in a card as the pre-discount original. Every run logs a field-coverage line on its first page, so if Etsy changes its markup the run says so immediately instead of quietly returning blank columns.
Common use cases
Handmade and print-on-demand market research. See what a niche actually charges before pricing your own listings.
Competitor and shop monitoring, tracking a set of search terms over time with monitor mode.
Discount tracking, using original_price and on_sale to spot genuine markdowns.
Product and keyword research for sellers deciding what to list.
Pricing
| Event | Price | You pay when |
|---|---|---|
| Listing | $0.0015 | An Etsy listing lands in your dataset |
| Actor start | $0.005 per GB of memory, once per run | The actor starts running |
$1.50 per 1,000 listings. Flat pricing, the same on every Apify plan. A search that returns nothing fires no listing charge.
Run it on a schedule
- Run once with the input you want repeated, then click Save as a task.
- Turn on Monitor mode so later runs return only newly listed items.
- In the Apify Console go to Schedules and add the saved task.
Nothing is charged just for a schedule existing.
FAQ
Do I need an Etsy account or API key? No. Everything comes from public search results.
How many listings does one page give?
Around 55. The actor pages through results up to your maxItems.
Are sponsored listings included?
Yes, and they are flagged with is_ad so you can filter them out.
Why is original_price empty on some rows? Because those listings are not discounted. The field is null rather than repeating the current price.
Is this GDPR compliant? It collects public marketplace listings and public shop names, not personal data.
Use from Claude, ChatGPT and any MCP agent
https://mcp.apify.com/?tools=themineworks/etsy-search-scraper
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('themineworks/etsy-search-scraper').call({queries: ['personalized water bottle'],maxItems: 300,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Part of the marketplace research suite
Pair this with eBay listing data for new and used price comparisons across a wider category, so you can check a product on both marketplaces before you list or reprice.
Keywords: Etsy scraper, Etsy price tracker, Etsy search API, handmade marketplace data, Etsy shop monitoring, sale price detection, vintage marketplace research, reseller price monitoring