etsy-search

The listings on an Etsy search results page: listing id, title, the listing's link without its tracking keys, the price as shown, its currency code, star rating, the shop's review count, shop name, image, whether it ships free, and whether it carries the Bestseller badge. query is the search; page reads a later results page; limit caps the rows (a page holds up to 64). A few seconds; when the page cannot be read, a second source answers page 1 in about 3 minutes.

stagedetsy.comWASM module11 fields2 units · 1 record per row on fallbackfresh 10 min
‹ Recipes
…json
POST api.crawl4ai.com/recipes/…

$ crawl recipe

              
Live · your key · counts against your quota✓ 200 OK
# Hit Run - the rows render here as a table, with the cost

Fields

11 columns on every row. null means the site does not state it.
fieldtypemeaning
listing_idstringEtsy's id of the listing (digits, as a string).
titlestringThe listing's title.
urlstringThe listing's page, https://www.etsy.com/listing/<id>/<name>, without tracking keys.
pricestringThe price charged, written as Etsy shows it with the currency symbol ("$34.99"); a sale's old price is left out.
currencystringThe currency code of the price ("USD"); Etsy picks it from where the visitor is.
ratingnumberThe star rating, 0 to 5.
reviewsintegerHow many reviews the shop has. The page rounds it ("16.8k" gives 16800); the second source gives the exact count.
shopstringThe shop's name.
imagestringThe listing's first photo; the second source gives the full-size copy.
free_shippingbooleantrue when Etsy says shipping is free; null on the second source when it shows no shipping line.
bestsellerbooleantrue when the card carries Etsy's Bestseller badge; null on the second source.

null means the site does not state it.

listing_idstringEtsy's id of the listing (digits, as a string).
titlestringThe listing's title.
urlstringThe listing's page, https://www.etsy.com/listing/<id>/<name>, without tracking keys.
pricestringThe price charged, written as Etsy shows it with the currency symbol ("$34.99"); a sale's old price is left out.
currencystringThe currency code of the price ("USD"); Etsy picks it from where the visitor is.
ratingnumberThe star rating, 0 to 5.
reviewsintegerHow many reviews the shop has. The page rounds it ("16.8k" gives 16800); the second source gives the exact count.
shopstringThe shop's name.
imagestringThe listing's first photo; the second source gives the full-size copy.
free_shippingbooleantrue when Etsy says shipping is free; null on the second source when it shows no shipping line.
bestsellerbooleantrue when the card carries Etsy's Bestseller badge; null on the second source.

How it behaves

Cost. 2 units · 1 record per row on fallback. A failed run costs 0.

Freshness 10 min. The same input within 10 min is served from cache at 0 units.

Questions about this recipeQuestions

Short answers. The API reference has the long ones.

Call POST /recipes/etsy-search with your key and query and page and limit. You get rows with the 11 fields above. The recipe is tested against the live site every 6 hours.

Need more from Etsy?

Extra fields, higher volume, or a private copy with a freshness SLA. We build it on Enterprise.

Request a change

For developers

Get a free API key and run your first crawl.

1,000 credits every month. No credit card. Your self-hosted setup keeps working.

For teams

Talk to us about volume, regions and an SLA.

A 30-minute call with the team that writes the crawler. DPA on request, invoice billing, your choice of US, EU or Singapore.