Etsy Product Listings and Shop Scraper avatar

Etsy Product Listings and Shop Scraper

Pricing

from $18.91 / 1,000 listing results

Go to Apify Store
Etsy Product Listings and Shop Scraper

Etsy Product Listings and Shop Scraper

Scrape Etsy product listings by search query, shop name or listing URL. Get title, price, sale price, currency, shop, rating, reviews, sales, tags, categories, images and description. Export to JSON, CSV or Excel.

Pricing

from $18.91 / 1,000 listing results

Rating

0.0

(0)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Share

Etsy Product Listings and Shop Scraper

Etsy Product Listings and Shop Scraper

Here is one real result, with every field the actor returns (arrays trimmed for space):

{
"listingId": "1241528786",
"listingUrl": "https://www.etsy.com/listing/1241528786/personalized-leather-rfid-wallet",
"listingTitle": "Personalized Leather RFID Wallet, Engraved Genuine Leather Custom Wallet, Anniversary Gift For Him, Husband, Boyfriend, Men, Father, Dad",
"price": 28,
"currency": "USD",
"salePrice": null,
"onSale": false,
"rating": 4.9,
"reviewCount": 7750,
"itemSales": 40152,
"shopName": "PremiumEngrave",
"shopUrl": "https://www.etsy.com/shop/PremiumEngrave",
"tags": ["Leather Wallet", "Personalized Wallet", "Engraved Wallet", "Mens Wallet", "RFID Leather Wallet", "Gift For Him"],
"categories": ["Bags & Purses", "Wallets & Money Clips", "Wallets"],
"images": ["https://i.etsystatic.com/35016605/r/il/a5f633/4007318605/il_fullxfull.4007318605_mj36.jpg"],
"imageCount": 10,
"primaryImage": "https://i.etsystatic.com/35016605/r/il/a5f633/4007318605/il_fullxfull.4007318605_mj36.jpg",
"description": "This Personalized Leather RFID Wallet is the perfect Engraved Genuine Leather Custom Wallet...",
"isDigital": false,
"freeShipping": true,
"shopLocation": "United States",
"shopFoundedYear": 2021,
"shopTotalListings": 214,
"shopSalesTotal": 40152,
"shopAnnouncement": null,
"shopPolicies": null,
"aiCategory": "Wallets",
"aiMaterials": ["Genuine Leather", "Argentinian Leather", "Nylon (RFID blocking)"],
"aiTargetBuyer": "Someone buying a personalized gift for a man",
"aiSeoKeywords": ["personalized wallet", "rfid wallet", "engraved wallet", "mens leather wallet", "anniversary gift for him"],
"source": "etsy.com",
"observedAt": "2026-08-20T03:15:00.000Z"
}

The most complete Etsy listing scraper available. Search by keyword, pull a whole shop, or pass listing URLs, and get a clean record per product with title, price, sale price, currency, rating, review count, shop sales, tags, category breadcrumb, all image URLs, description, and digital and free shipping flags. Shop level trust signals (shop sales and rating) and the seller's own tags come standard, so you can compare products and sellers, not just prices.

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Apify Coverage Output Billing

Table of contents

What it does

Give the actor a search query, a shop name, or a list of listing URLs and it returns a normalized record per product. Each record has the listing title, current price and currency, sale price when discounted, the listing rating and review count, the shop name and URL, the shop sales count, the seller's tags, the category breadcrumb, every product image URL, the full description, and flags for digital downloads and free shipping. You can filter a keyword search by minimum and maximum price and choose the sort order.

Two optional add-ons enrich each listing when you turn them on. Shop details fetches the seller's shop page to add location, the year the shop opened, total active listings, total sales, the shop announcement and policy text. The AI listing summary infers the product category, likely materials, the ideal target buyer and high intent SEO keywords. Everything is handled for you: you never configure logins, headers or anything else. Numbers are parsed, missing values are returned as null, and each record carries the listingUrl and an observedAt timestamp.

Quickstart

Open the actor, paste this into the input, and press Run. It returns leather wallet listings with prices, ratings and shops.

{
"searchQuery": "leather wallet",
"minPrice": 15,
"maxPrice": 80,
"sortBy": "Top Reviews",
"maxResults": 25
}

You can also pull a whole shop, or target exact listings by URL:

{
"shopName": "PremiumEngrave",
"shopDetails": true,
"maxResults": 50
}
{
"listingUrls": ["https://www.etsy.com/listing/1241528786/personalized-leather-rfid-wallet"]
}

Input reference

NameTypeRequiredDescriptionExample
searchQuerystringone input requiredKeyword to search Etsy for."leather wallet"
shopNamestringone input requiredAn Etsy shop name (the part after etsy.com/shop/). All of that shop's listings are collected."PremiumEngrave"
listingUrlsarray of stringsone input requiredFull Etsy listing URLs to scrape directly.["https://www.etsy.com/listing/1241528786/..."]
minPriceintegernoKeep only listings priced at or above this amount.15
maxPriceintegernoKeep only listings priced at or below this amount.80
sortBystringnoResult order for keyword searches: Relevance, Lowest Price, Highest Price, Most Recent, Top Reviews."Top Reviews"
maxResultsintegernoMaximum listings to collect per run. Free plans are capped at 10.25
shopDetailsbooleannoPaid add-on. Add shop location, founding year, total listings, total sales, announcement and policies. Default false.true
aiListingSummarybooleannoPaid add-on. Add an AI category, materials, target buyer and SEO keywords. Default false.false

Provide at least one of searchQuery, shopName or listingUrls.

Output reference

NameTypeDescription
listingIdstringEtsy listing id
listingUrlstringEtsy listing page URL
listingTitlestringListing title
pricenumberCurrent price (the original price when the listing is on sale)
currencystringCurrency code
salePricenumberDiscounted sale price when the listing is on sale
onSalebooleanWhether the listing is on sale
ratingnumberListing star rating
reviewCountintegerNumber of reviews
itemSalesintegerShop sales count
shopNamestringShop name
shopUrlstringShop page URL
tagsarrayThe seller's listing tags
categoriesarrayCategory breadcrumb
imagesarrayListing image URLs
imageCountintegerNumber of images
primaryImagestringFirst image URL
descriptionstringListing description
isDigitalbooleanWhether the item is a digital download
freeShippingbooleanWhether free shipping is offered
shopLocationstringShop location (shop details add-on)
shopFoundedYearintegerYear the shop opened (shop details add-on)
shopTotalListingsintegerActive listings in the shop (shop details add-on)
shopSalesTotalintegerTotal shop sales (shop details add-on)
shopAnnouncementstringShop announcement (shop details add-on)
shopPoliciesstringShop policy summary (shop details add-on)
aiCategorystringAI inferred product category (AI add-on)
aiMaterialsarrayAI inferred materials (AI add-on)
aiTargetBuyerstringAI inferred target buyer (AI add-on)
aiSeoKeywordsarrayAI inferred SEO keywords (AI add-on)
sourcestringData source
observedAtstringISO timestamp collected

Run via API and CLI

Start a run with the Apify API:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~etsy-scraper/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"searchQuery":"leather wallet","minPrice":15,"maxResults":25}'

Or with the Apify CLI:

apify call scrapers_lat/etsy-scraper \
--input '{"searchQuery":"leather wallet","sortBy":"Top Reviews"}'

Fetch results

Download the dataset items once the run finishes:

$curl "https://api.apify.com/v2/acts/scrapers_lat~etsy-scraper/runs/last/dataset/items?token=YOUR_TOKEN&format=json"

Swap format=json for csv or xlsx to export to a spreadsheet.

Billing and limits

This actor is billed pay per result. You are charged one primary result event per listing returned. Optional add-ons are billed separately and only when they actually return data: shop_details is charged only when the shop page yields real data, and ai_listing_summary is charged only when a usable AI summary is returned. A one time apify-actor-start event covers run initialization.

  • Failed or empty lookups are never charged. A listing that cannot be loaded is skipped and never billed.
  • Free Apify plans are capped at 10 results per run, and the paid add-ons are disabled on free plans. Upgrade for higher volumes.
  • Set a spend limit with maxTotalChargeUsd and the actor stops returning billable results once that limit is reached.

FAQ and troubleshooting

How do I search Etsy? Put a keyword in searchQuery, a shop name in shopName, or paste listing URLs in listingUrls. You can combine a search with price filters and a sort order.

Can I scrape a full shop? Yes. Set shopName to the shop's handle and the actor collects that shop's listings up to maxResults.

What are the shop trust signals? Every record includes the shop name, shop URL and the shop sales count so you can gauge seller reliability. The shop details add-on adds location, founding year, total listings and total sales.

Do I need an Etsy login or any keys? No. You only provide a search query, shop name or listing URLs.

Why is a field null? Etsy does not publish that value for that listing. Missing values are returned as null so the record shape stays consistent.

Empty result? Confirm the search query, shop name or listing URLs are correct. Listings that cannot be loaded are skipped and are not billed.

More scrapers at scrapers.lat

This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Etsy.