Etsy Listings Scraper (search, shops, listing details, prices) avatar

Etsy Listings Scraper (search, shops, listing details, prices)

Pricing

from $4.00 / 1,000 result items

Go to Apify Store
Etsy Listings Scraper (search, shops, listing details, prices)

Etsy Listings Scraper (search, shops, listing details, prices)

Etsy scraper for listings by keyword, category URL, shop or listing id: price and variant price range, currency, shop, rating and reviews, seller tags, category path, availability, ad flag. Monitor mode alerts on price and stock changes. $5 per 1,000 listings, no login, no charge for empty runs.

Pricing

from $4.00 / 1,000 result items

Rating

0.0

(0)

Developer

Viktor Dubnytskiy

Viktor Dubnytskiy

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Turn a keyword, a category/search URL, a shop name or a listing id into flat Etsy listing rows with price, currency, shop, rating and tags — no login, no browser.

What you get

Real rows from the example dataset (keyword ceramic lamp, one search page plus listing detail):

titlepricecurrencysource
Handgefertigte Keramik Tischlampe: Exotische Limetten Glasur...250 (up to 350)EURlisting — full detail: tags, category, rating 5, 21 reviews
Handmade Ocher Fabric Table Lamp with Dark Green Trim-62#191.74USDsearch, isAd: true
Raku Ceramic Pendant Light – Custom Copper Blue Green Pottery Lamp250USDsearch, isAd: true

Full row: id/listingId, title, url, price, priceMax, currency, shopId, shopName, rating, reviewCount, image, isAd, tags, category, availability, description, source, scrapedAt.

Use cases

  • Product and keyword research — pull a keyword's whole result set with prices and seller tags to see how top listings are titled and tagged.
  • Competitor and shop tracking — collect every listing of a shop, then re-run in monitor mode to catch price changes and sold-out items.
  • Catalogue and pricing datasets — export price, price range, currency, category and rating for thousands of listings into a spreadsheet or database.

Try it in 10 seconds

Hit Start/Try it — the input already works: keywords: ["ceramic lamp"], searchPages: 1, maxItems: 30, nothing required. Add fetchDetails: true to get tags, category and rating too.

To track price and stock changes over time: save as a Task, set Mode to monitor, give it a monitorStateId, and schedule it (Apify → Schedules → cron 0 9 * * * for daily) with a webhookUrl or Telegram target — each run then returns only listings whose price, availability or review count changed.

How it works

Etsy is behind DataDome, so pages are fetched through the Apify Web Unblocker tier and the server-rendered HTML is parsed directly — no browser, no login. A search page yields up to 48 listings in a single request; fetchDetails (or listingIds) opens individual listing pages for tags, category, description, review count and the variant price range. In monitor mode the run compares price, availability and review count against the previous run of the same Task and pushes only the listings that changed.

Input

FieldMeaningDefault
keywordsEtsy search queries, e.g. ceramic lamp; 48 listings per page["ceramic lamp"]
categoryUrlsCategory or search URLs, e.g. https://www.etsy.com/c/home-and-living/lightingempty
shopsShop names as they appear in etsy.com/shop/<name>, e.g. DEBARROceramicsempty
listingIdsListing ids or full listing URLs for full detail rowsempty
searchPagesPages per search query, 48 listings each1
fetchDetailsOpen every search hit's listing page for tags, category, description and review countfalse
localeAccept-Language value that decides the language of titles and categories, e.g. en-USen-US
maxItemsStop after this many pushed rows30
modescrape = every listing; monitor = only listings changed since the previous run of this Taskscrape
monitorStateIdState key for monitor mode when not running as a saved Taskempty
webhookUrlURL that receives a POST with the change summary in monitor modeempty
telegramBotToken / telegramChatIdOptional Telegram destination for monitor-mode summariesempty

Pricing

EventPrice
result$0.005 per listing ($5 per 1,000)
monitor-check$0.015 per monitor run
change$0.005 per changed listing

Charged only for listings actually pushed; blocked pages are not charged and three in a row end the run with reason blocked.

Found it useful? A short review on the Store page helps other buyers and sellers find this actor and tells us what to improve. If something is wrong, open an issue on the actor page — issues are answered within a day.

Why this actor

  • Four ways in, one row schema — keyword search, category/search URL, shop and listing id all produce the same flat row, with source saying where it came from.
  • No charge for empty runs — result events are billed per pushed row, so a run that finds nothing costs nothing in results.
  • Seller tags and full category path included on detail rows, which is what keyword research actually needs.
  • Monitor mode built in — price, availability and review-count changes with webhook or Telegram alerts, no second actor needed.
  • No login, no cookies, no API key — nothing to configure beyond the input.
  • Every run leaves a RUN_SUMMARY record in the key-value store with the reason for an empty result, so a zero-row run is diagnosable.

Limits

  • Etsy uses DataDome; the actor runs through the Apify Web Unblocker, which Apify bills per request on top of the result price. A search page yields up to 48 listings per request, while fetchDetails costs one request per listing.
  • Sales counts and "ships from" are not exposed in Etsy's server-rendered HTML and are not returned.
  • Search-page rating appears only where Etsy renders it in the card; use fetchDetails or listingIds for reliable rating and review count.
  • Review texts and buyer names are not collected.

FAQ

How do I scrape all listings of an Etsy shop? Put the shop name (the part after etsy.com/shop/) into shops and raise maxItems. Add fetchDetails: true if you also want tags, category and description for each listing.

Can I get Etsy tags and category for keyword research? Yes. Tags and the full category path come from listing pages, so either set fetchDetails: true on a keyword search or pass listing ids directly in listingIds.

How do I track Etsy price changes? Save the actor as a Task, set mode to monitor, fill in webhookUrl or the Telegram fields and schedule the Task. Each run returns only the listings whose price, availability or review count changed since the previous run.

Changelog

  • 0.1: initial release — search, category, shop and listing pages; monitor mode.

If this actor is useful, a review on its Apify Store page genuinely helps other buyers find it. Found a bug or need a field that is missing? Open a ticket on the Issues tab of the actor and it will be looked at.