Etsy Listings Scraper avatar

Etsy Listings Scraper

Pricing

from $1.50 / 1,000 results

Go to Apify Store
Etsy Listings Scraper

Etsy Listings Scraper

Collect Etsy search listings - numeric price, currency, shop name, shop rating, shipping and badges.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

String

String

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

Etsy Listings Scraper — numeric price, shop rating and badges

This Actor scrapes Etsy search listings. Give it a search term such as handmade jewelry and the Etsy Listings Scraper returns each listing with a numeric price and its currency code, the shop name, the shop's rating and review count, and the Bestseller and free-shipping flags as booleans.

No Etsy account, login or cookies are used — this reads what a logged-out visitor sees. 12 listings per Etsy search page, up to 240 per search term.

What it returns

FieldTypeNotes
listingIdstringEtsy's own listing ID — stable across runs, use it to de-duplicate
titlestringThe listing title
pricenumber24.99, not "$24.99"
currencystringISO code Etsy priced the page in, e.g. USD
shopNamestringThe shop's Etsy handle
shopRatingnumberThe shop's stars out of 5, e.g. 4.8
shopReviewCountnumber12403, not "12.4k"
isBestsellerbooleantrue when the card carries Etsy's Bestseller badge
freeShippingbooleantrue when the card advertises free shipping
imageUrlstringThe listing's card image
listingUrlstringDirect link to the Etsy listing
searchTerm, sourceUrl, collectedAtstringProvenance for every row

shopRating and shopReviewCount describe the shop, which is what an Etsy search card shows — they are not a per-listing review score.

Input

{ "searches": ["handmade jewelry", "leather wallet"], "maxItems": 1000 }
FieldDescription
searchesSearch terms, e.g. "handmade jewelry". Required, 1–50.
maxItemsCap on dataset items. Default 1000. Free plans stop at 250 requests and 250 results — see below.
concurrencySearch pages fetched in parallel. Default 5, maximum 10.

maxItems also decides how deep each term is paged: the budget is split evenly across the search terms, in whole pages of 12, up to Etsy's own ceiling of 20 pages per search.

Use cases

  • Product and niche research before sourcing or launching a shop
  • Competitor price monitoring across a category, on numbers rather than display strings
  • Tracking which listings hold the Bestseller badge over time
  • Building a keyword-to-price-band map for a market
  • Feeding a merchandising or pricing dashboard on a schedule

Reliability

Listings are read from Etsy's server-rendered search grid, which carries strictly more than the page's schema.org block — that block is a promotional subset of the cards and omits the rating, the review count, the badges and shipping entirely. Each card is isolated before its fields are read, so a "Free shipping" filter option in the sidebar is never mistaken for a shipping promise on a listing that makes none.

Measured at 11.67 listings per request after de-duplication. A search page that cannot be read is recorded in the run's SUMMARY under failures rather than silently returning fewer rows, and a run where every page failed exits with an error.

There are no retries by design: the String Unblocker owns proxy rotation and anti-bot solver selection, so a retry loop here would only re-roll the same block.

Frequently asked questions

How do I scrape Etsy listings? Run the Etsy Listings Scraper with one or more search terms, then export the dataset as CSV, JSON or Excel. Every row carries the listing ID, title, numeric price, currency, shop name, shop rating, review count and both badge flags.

How many Etsy listings does it return per search? 12 per search page — the number Etsy server-renders — and it pages up to 20 pages, so 240 listings per search term is the ceiling. Raise maxItems to page deeper.

Does it page through results? Yes, up to 20 pages per search term. Etsy silently re-serves page 1 past its own twentieth page, so paging stops there rather than collecting duplicates.

Do I need an Etsy account, API key or cookies? No. The Etsy Listings Scraper reads public Etsy search pages as a logged-out visitor and never signs in.

Is the price a number? Yes. price is numeric (24.99) and currency carries the ISO code Etsy priced the page in, so no string cleaning is needed.

Can I scrape a single shop or a listing page? No. This Actor works from search terms and reads search results only; it does not open individual listing or shop pages.

Limitations

Search results only: no listing detail pages, so no description, variations, materials, stock level, processing time or per-listing reviews, and no shop pages. Etsy prices a page in the viewer's own currency, so currency reflects that rather than a currency you choose. Promoted listings repeat within a grid and across a search's pages; they are de-duplicated per search term, but the same listing under two different search terms is returned for each.

Free plan limit

Runs started from an Apify free plan stop at 250 requests and 250 results, and the run reports that it reached the limit. Any paid plan runs the full input and maxItems you set.

The limit exists because this Actor fetches through our own infrastructure, which Apify does not cover for free-plan runs. It binds on requests as well as results so that a large input list cannot spend those fetches for rows the run will not return.