Etsy Scraper — Products, Prices, Shops & Reviews avatar

Etsy Scraper — Products, Prices, Shops & Reviews

Pricing

from $0.46 / 1,000 products

Go to Apify Store
Etsy Scraper — Products, Prices, Shops & Reviews

Etsy Scraper — Products, Prices, Shops & Reviews

Scrape Etsy products by keyword, category, shop or product URL. Price, sale price, discount, shop rating, Star Seller and ad flags; optional full details: description, images, stock, variations, shipping, returns, favorites, reviews. 22 marketplaces.

Pricing

from $0.46 / 1,000 products

Rating

0.0

(0)

Developer

Unfenced Group

Unfenced Group

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Etsy Scraper

Extract Etsy product listings by keyword, category, shop or product URL: price, sale price and discount, shop name and rating, Star Seller and Bestseller badges, ad placements, and — with full details on — the description, all images, stock quantity, variations, shipping, returns, production partners, recent purchases and reviews. 22 country marketplaces in local currency. No API key or Etsy account required.


Why this scraper?

🔎 Four ways in

Search by keyword, crawl a whole category (up to about 16,000 products), read a shop's profile with its featured products, or fetch single product pages. Mix them in one run.

💰 Price and discount data

Current price, original price, discount percentage, variation price range and currency on every row, read from the marketplace you choose.

🏷️ Seller and placement signals

Star Seller, Bestseller (with its category), Etsy's Pick and Popular now badges, plus a flag for every sponsored product so you can see which shops advertise on a keyword.

📦 Full product records

With full details on: description, all images and video, stock quantity, variations, materials, dimensions, shipping cost, ships-from location, delivery estimate, returns window, shop sales, shop policies and the latest reviews.

📈 Demand signals

Recent purchases ("13 bought in the last 24 hours"), shopper cart counts where Etsy shows them, review count and review highlight tags.

🏭 Production partners

The businesses a shop names as helping to make an item — useful for supplier research and spotting print-on-demand listings.

♻️ Faster repeat runs

With full details on, product pages read in the last few days are reused when the price has not changed, so scheduled runs finish faster. Each reused row says when its page was read.

🔁 Price monitoring

Every row carries changeStatus (NEW, UNCHANGED, PRICE_DROP, PRICE_INCREASE) and the previous price from earlier runs. Schedule it and switch on Only new and changed products for a clean daily feed.


Input parameters

ParameterTypeDefaultDescription
searchQueriesarray of strings[]Keywords to search, for example "linen apron". Each keyword returns up to maxItems products.
startUrlsarray of URLs[]Etsy category (/c/…), keyword (/market/…), search (/search?q=…), shop (/shop/…) or product (/listing/…) pages. Locale URLs such as /uk/ keep their currency.
marketplacestring"us"Etsy country site for keyword searches: us, uk, ca, au, ie, nz, de, fr, nl, it, es, be, at, ch, se, dk, no, fi, pl, pt, in, sg. Sets the price currency.
maxItemsinteger100Maximum products per keyword and per start URL. 0 means no limit.
fetchDetailsbooleanfalseOpen every product page for the full record (see the second table below). Slower and charged at the with-details rate.
minPriceinteger(empty)Keep products priced at or above this amount, in the marketplace currency.
maxPriceinteger(empty)Keep products priced at or below this amount, in the marketplace currency.
onlyOnSalebooleanfalseKeep only discounted products.
freeShippingOnlybooleanfalseKeep only products that ship for free.
starSellerOnlybooleanfalseKeep only products from Star Seller shops.
excludeAdsbooleanfalseLeave out sponsored products.
onlyChangesbooleanfalseSave only products that are new or changed price since earlier runs.
detailCacheDaysinteger3With full details on, reuse a product page an earlier run in your account read within this many days, as long as the price is unchanged. 0 always reads fresh.

If you give no keyword and no URL, the actor searches "linen apron" as an example.


Output schema

Every field below is present on every record. Fields Etsy does not publish for a product are null (or [] for lists), never omitted.

Always present

FieldTypeDescription
idstringEtsy listing ID (same as listingId).
listingIdstringEtsy listing ID.
urlstringProduct page URL.
titlestringProduct title.
pricenumberCurrent price in currency.
originalPricenumberPrice before the discount (null when not on sale).
discountPercentnumberDiscount percentage (null when not on sale).
currencystringISO currency code, for example USD, GBP, EUR.
isOnSalebooleanTrue when a discount is shown.
availabilitystringInStock or OutOfStock.
freeShippingbooleanTrue when the product ships for free to the marketplace country.
isAdbooleanTrue when the product appears as a sponsored placement.
isStarSellerbooleanShop holds Etsy's Star Seller badge.
isBestsellerbooleanProduct carries the Bestseller badge.
isEtsysPickbooleanProduct carries the Etsy's Pick badge.
isPopularNowbooleanProduct carries the Popular now badge.
isDigitalDownloadbooleanProduct is a digital download.
favorites, lastListedDatenullFilled with full details on (see below).
inCartCountintegerShoppers with the item in their cart, when Etsy shows it (mostly on shop pages; null otherwise).
imageUrlstringMain image, full size.
thumbnailUrlstringThumbnail as shown in the grid.
imagesarrayImage URLs (the main image only unless full details are on).
shopNamestringShop name.
shopIdstringEtsy shop ID.
shopUrlstringShop page URL.
shopRatingnumberShop star rating.
shopReviewCountintegerNumber of shop reviews.
shipsFromRegionstringShips-from state or region, when shown.
summarystringOne-line summary: title, price, shop.
changeStatusstringNEW, UNCHANGED, PRICE_DROP or PRICE_INCREASE compared with earlier runs.
firstSeenAtstringWhen this actor first saw the product (ISO 8601).
previousPricenumberPrice at the previous run (null for new products).
priceChangenumberPrice difference since the previous run.
marketplacestringMarketplace code used for the run.
sourceModestringsearch, category, shop or listing.
searchQuerystringKeyword that found the product (null for URL sources).
sourceUrlstringPage the product was read from.
pageintegerResult page number.
positionintegerPosition within the source.
detailFetchedbooleanTrue when the product page was read.
detailCachedAtstringWhen the product page used for this row was read, if it came from an earlier run (null when read in this run).
isRepostbooleanAlways false (kept for portfolio schema compatibility).
publishDate, publishDateISO, originalPublishDate, originalUrlnullEtsy does not publish listing dates; always null.
contentHashstringStable hash of listing ID and title.
sourcestringAlways etsy.com.
scrapedAtstringTime the row was saved (ISO 8601).

With fetchDetails: true

FieldTypeDescription
descriptionTextstringFull description as plain text.
descriptionMarkdownstringFull description with paragraph breaks kept.
descriptionHtmlnullEtsy descriptions are plain text; always null.
priceMin / priceMaxnumberLowest and highest variation price.
stockQuantityintegerQuantity available.
lowStockQuantityintegerSet when Etsy shows "Only N left".
ratingnumberProduct review rating.
reviewCountintegerNumber of product reviews.
reviewsarrayLatest reviews: rating, date, text. Reviewer names are not collected.
reviewHighlightsarrayEtsy's review highlight tags, for example "Great quality".
favoritesintegerNumber of shoppers who favorited the product (null when Etsy hides the count, typically for new items).
pageLanguagestringLanguage of the product page read, normally en-US. If Etsy only served a translated page, title and description are still the seller's original text.
lastListedDatestringDate the listing was last listed or renewed (YYYY-MM-DD). Etsy renews many listings automatically, so this is not the original creation date.
imagesarrayAll image URLs, full size.
imageCountintegerNumber of images.
imageAltTextsarrayImage descriptions.
videoUrlstringProduct video URL.
categorystringEtsy category, for example Accessories < Aprons.
categoryPatharrayCategory breadcrumb.
materialsarrayMaterials listed by the seller.
dimensionsarrayWidth, height, length or depth when listed.
variationsarrayOptions per variation: name, options[].value, options[].priceText, options[].soldOut.
madeBystring"Handmade by", "Designed by" or "Vintage from" line.
isMadeToOrderbooleanItem is made to order.
productionPartnersarrayBusinesses the shop names as production partners.
purchasesRecentintegerRecent purchases Etsy shows (for example 13).
purchasesRecentPeriodstringPeriod for purchasesRecent, for example 24 hours.
bestsellerCategorystringCategory of the Bestseller badge.
shipsFromstringShips-from city and region.
shipsFromCountrystringShips-from country code.
shippingCostnumberCost to ship to the marketplace country (0 when free).
deliveryEstimatestringEstimated delivery window, for example Sep 23-28.
returnsAcceptedbooleanReturns and exchanges accepted.
returnWindowDaysintegerReturn window in days.
shopSalesintegerTotal shop sales.
shopId, shopRating, shopReviewCountAlso filled from the product page when a product URL is the source.
shopYearsOnEtsynumberYears the shop has been on Etsy (a fraction for shops under a year, e.g. 0.8).
shopLogoUrlstringShop logo.
shopPoliciesarrayShop policy texts: topic, text.

Shop start URLs add

FieldTypeDescription
shopLocationstringShop country.
shopTaglinestringShop headline.
shopBannerUrlstringShop banner image.
shopLatestActivitystringDate of the shop's latest activity.

Example record

{
"id": "1042603482",
"listingId": "1042603482",
"url": "https://www.etsy.com/listing/1042603482/japanese-apron-with-pockets-vintage",
"title": "Japanese Apron with pockets, Vintage Style Cooking Smock for Women, Small to Plus Size",
"price": 23.5,
"originalPrice": null,
"discountPercent": null,
"currency": "USD",
"isOnSale": false,
"priceMin": 23.5,
"priceMax": 27.5,
"availability": "InStock",
"stockQuantity": 654,
"lowStockQuantity": null,
"freeShipping": false,
"shippingCost": 5.98,
"shipsFrom": "Henderson, NV",
"shipsFromCountry": "US",
"shipsFromRegion": "NV",
"deliveryEstimate": "Sep 23-28",
"returnsAccepted": true,
"returnWindowDays": 30,
"isAd": false,
"isStarSeller": true,
"isBestseller": true,
"bestsellerCategory": "Aprons",
"isEtsysPick": true,
"isPopularNow": false,
"isDigitalDownload": false,
"isMadeToOrder": false,
"madeBy": "Designed by WilshireGoodsShop",
"productionPartners": [
"N.T. Atelier, China"
],
"purchasesRecent": 5,
"purchasesRecentPeriod": "24 hours",
"inCartCount": null,
"rating": 4.9,
"reviewCount": 3328,
"favorites": 51780,
"lastListedDate": "2026-09-19",
"reviewHighlights": [
"Great quality",
"As described",
"Fast shipping"
],
"reviews": [
{
"rating": 5,
"date": "2026-09-18",
"text": "This was exactly what I was wanting. Thank you so much. The quality is great. The way it fit was what I was wanting. I prefer the aprons like this from long ago."
},
{
"rating": 5,
"date": "2026-09-15",
"text": "Item was as described and arrived quickly."
}
],
"category": "Accessories < Aprons",
"categoryPath": [
"Accessories",
"Aprons"
],
"materials": [
"Cotton"
],
"dimensions": [],
"variations": [
{
"name": "Color",
"options": [
{
"value": "Black",
"priceText": "$23.50 - $27.50",
"soldOut": false
},
{
"value": "Green",
"priceText": "$23.50 - $25.00",
"soldOut": false
}
]
},
{
"name": "Size",
"options": [
{
"value": "S-See description",
"priceText": "$23.50",
"soldOut": false
},
{
"value": "M/L-See description",
"priceText": "$25.00",
"soldOut": false
}
]
}
],
"imageUrl": "https://i.etsystatic.com/24091653/r/il/8f1a48/4030105345/il_fullxfull.4030105345_n3rg.jpg",
"thumbnailUrl": "https://i.etsystatic.com/24091653/c/2668/2120/57/68/il/8f1a48/4030105345/il_340x270.4030105345_n3rg.jpg",
"images": [
"https://i.etsystatic.com/24091653/r/il/8f1a48/4030105345/il_fullxfull.4030105345_n3rg.jpg",
"https://i.etsystatic.com/24091653/r/il/521f23/4455989322/il_fullxfull.4455989322_4wf0.jpg",
"https://i.etsystatic.com/24091653/r/il/918052/3223418428/il_fullxfull.3223418428_6g6p.jpg"
],
"imageCount": 10,
"imageAltTexts": [
"May include: Olive green apron dress with a scoop neck and a tie-back waist. The dress has two large front pockets and is worn over a black t-shirt. The fabric has a slightly wrinkled texture."
],
"videoUrl": "https://v.etsystatic.com/c/video/upload/ac_none,du_15,q_auto:good/InShot_20210724_031243620_fpkgvp.mp4",
"shopName": "WilshireGoodsShop",
"shopId": "24091653",
"shopUrl": "https://www.etsy.com/shop/WilshireGoodsShop",
"shopRating": 4.9,
"shopReviewCount": 9776,
"shopSales": 40600,
"shopYearsOnEtsy": 6,
"shopLocation": null,
"shopTagline": null,
"shopLogoUrl": "https://i.etsystatic.com/24091653/r/isla/7e646e/50089861/isla_500x500.50089861_ltfa67os.jpg",
"shopBannerUrl": null,
"shopLatestActivity": null,
"shopPolicies": [
{
"topic": "Returns & Exchanges",
"text": "We accept returns within 30 days of delivery for items that are unused and clean. While we don’t offer direct exchanges, you’re welcome to return the item for a refund and place a new order for the one you prefer."
}
],
"descriptionHtml": null,
"descriptionText": "A cute Japanese pinafore apron, a durable yet aesthetic smock dress that complements your style. With its large pockets and coverall design, it makes the perfec…",
"descriptionMarkdown": "A cute Japanese pinafore apron, a durable yet aesthetic smock dress that complements your style. With its large pockets and coverall design, it makes the perfec…",
"summary": "Japanese Apron with pockets, Vintage Style Cooking Smock for Women, Small to Plus Size — 23.5 USD — by WilshireGoodsShop",
"publishDate": null,
"publishDateISO": null,
"isRepost": false,
"originalPublishDate": null,
"originalUrl": null,
"firstSeenAt": "2026-09-19T13:08:32.158Z",
"previousPrice": null,
"priceChange": null,
"changeStatus": "NEW",
"marketplace": "us",
"sourceMode": "category",
"searchQuery": null,
"sourceUrl": "https://www.etsy.com/c/home-and-living",
"page": 1,
"position": 12,
"detailFetched": true,
"contentHash": "7cb4420c71415665",
"source": "etsy.com",
"scrapedAt": "2026-09-19T13:20:15.527Z"
}

Examples

Search two keywords in the UK marketplace:

{
"searchQueries": ["linen apron", "ceramic mug"],
"marketplace": "uk",
"maxItems": 200
}

Discounted Star Seller products in a category, full details:

{
"startUrls": [{ "url": "https://www.etsy.com/c/jewelry" }],
"onlyOnSale": true,
"starSellerOnly": true,
"maxItems": 100,
"fetchDetails": true
}

A shop's profile with its featured products, and a single product:

{
"startUrls": [
{ "url": "https://www.etsy.com/shop/WilshireGoodsShop" },
{ "url": "https://www.etsy.com/listing/1042603482" }
],
"maxItems": 0
}

Daily price monitoring feed (schedule this):

{
"searchQueries": ["personalized cutting board"],
"maxItems": 300,
"onlyChanges": true
}

💰 Pricing

$0.49 per 1,000 products from search, category and shop pages. $2.19 per 1,000 products with full details (fetchDetails: true, or a product URL).

You only pay for products saved to your dataset. Failed retries are never charged. A product whose page could not be opened is saved and charged at the standard rate.

ProductsStandardWith full details
100~$0.05~$0.22
1,000~$0.49~$2.19
10,000~$4.90~$21.90
100,000~$49.00~$219.00

Flat-rate alternatives typically charge $29–$49/month regardless of usage.

Subscription tiers lower both rates by one cent per tier, down to $0.46 and $2.16 per 1,000 from the Business tier up. Use Max products per source to control your spend exactly.


Performance

Run sizeStandardWith full details
100 productsunder 1 minute3–6 minutes
1,000 products2–5 minutes30–50 minutes
10,000 products20–40 minutesseveral hours — split into runs

Known limitations

  • A shop URL returns the shop profile and the products on the shop's first page (typically 16–24). Etsy loads the rest of a shop's catalogue in the browser, so it is not reachable here.
  • Keyword pages list about 7 new products per page, so large keyword runs take more pages than category runs. For volume, use a category URL.
  • Etsy shows cart counts mainly on shop pages; on search and category rows inCartCount is usually null.
  • Etsy does not publish listing creation dates, tags or view counts on its public pages, so these are not in the output.
  • For a keyword with no real matches Etsy still fills the page with unrelated products; the actor detects this and returns nothing for that keyword rather than charging you for unrelated rows.
  • Product details and shop pages take 20–40 seconds each. They run in parallel, but large detail runs are slow.

Technical details

  • Source: etsy.com — 22 country marketplaces
  • Coverage: keyword pages, all category pages (up to 250 pages each), shop catalogues and product pages
  • Compliance: only pages Etsy's robots.txt allows for crawlers are read; a search URL is converted to the matching keyword page
  • Change tracking: a named store keeps each product's first-seen date and last price for 180 days
  • Retry: automatic retry with a fresh connection on every failed page

Rate this actor

If this scraper does its job, a short review on the Reviews tab helps other users find it. Something not working? Open an issue on the Issues tab instead — issues get fixed.


Need a custom scraper?

Unfenced Group builds Apify actors for any website — for free.

If the site you need isn't in our portfolio yet, just ask. We scope, build, and publish it at no cost to you. You only pay for results — we absorb the compute and proxy costs ourselves. Same pay-per-result pricing, same quality, same standards as every actor in this portfolio.

Get in touch: www.unfencedgroup.nl