Etsy Scraper: Listings, Prices & Shops avatar

Etsy Scraper: Listings, Prices & Shops

Pricing

from $1.50 / 1,000 listings

Go to Apify Store
Etsy Scraper: Listings, Prices & Shops

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

The Mine Works

Maintained by Community

Actor 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.

Browse all The Mine Works actors

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"
}
FieldDescription
🏷️ titleListing title
💰 price, currencyCurrent price as a sortable number, and its currency
🔻 original_price, on_salePre-discount price and whether the item is reduced
🏪 shop_name, shop_idSeller shop, with Etsy's "Ad ・ By" prefix stripped
📣 is_adWhether the listing was a promoted result
🖼️ imageListing image URL
🔗 listing_urlClean 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

EventPriceYou pay when
Listing$0.0015An Etsy listing lands in your dataset
Actor start$0.005 per GB of memory, once per runThe 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

  1. Run once with the input you want repeated, then click Save as a task.
  2. Turn on Monitor mode so later runs return only newly listed items.
  3. 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