Etsy Listings Scraper
Pricing
from $1.50 / 1,000 results
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
Maintained by CommunityActor 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
| Field | Type | Notes |
|---|---|---|
listingId | string | Etsy's own listing ID — stable across runs, use it to de-duplicate |
title | string | The listing title |
price | number | 24.99, not "$24.99" |
currency | string | ISO code Etsy priced the page in, e.g. USD |
shopName | string | The shop's Etsy handle |
shopRating | number | The shop's stars out of 5, e.g. 4.8 |
shopReviewCount | number | 12403, not "12.4k" |
isBestseller | boolean | true when the card carries Etsy's Bestseller badge |
freeShipping | boolean | true when the card advertises free shipping |
imageUrl | string | The listing's card image |
listingUrl | string | Direct link to the Etsy listing |
searchTerm, sourceUrl, collectedAt | string | Provenance 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 }
| Field | Description |
|---|---|
searches | Search terms, e.g. "handmade jewelry". Required, 1–50. |
maxItems | Cap on dataset items. Default 1000. Free plans stop at 250 requests and 250 results — see below. |
concurrency | Search 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.