Etsy Scraper
Pricing
from $1.00 / 1,000 results
Etsy Scraper
Scrape product listings from Etsy search results, categories, shops, and product pages. Extract prices, ratings, reviews, seller info, badges, and product details.
Pricing
from $1.00 / 1,000 results
Rating
5.0
(15)
Developer
Crawler Bros
Actor stats
15
Bookmarked
5
Total users
3
Monthly active users
3 days ago
Last modified
Categories
Share
Scrape product listings from Etsy search results, categories, and shops. Extract prices, ratings, seller info, badges, and more from Etsy.com.
What can this scraper do?
- Search Etsy — Enter keywords and extract matching product listings with prices, ratings, and seller info
- Product details — Extract full product information from individual listing URLs (description, materials, variations, tags)
- Scrape categories — Extract all listings from Etsy category pages
- Shop products — Get all products from a specific Etsy shop
- Badge detection — Identify Star Seller, Free Shipping, Bestseller, Etsy's Pick, and ad listings
- Large result sets — Automatically uses search variants (different sort/filter combinations) to collect more unique results
- Bulk extraction — Process multiple URLs and queries in a single run
Input
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
startUrls | URL[] | No* | — | Etsy URLs to scrape (search, category, or shop pages) |
searchQueries | string[] | No* | — | Keywords to search on Etsy |
maxItems | integer | No | 100 | Maximum items per URL/query (1–1,000) |
includeDetails | boolean | No | false | Attempt to visit each product page for full details |
*At least one of startUrls or searchQueries is required.
Supported URL formats
| URL Pattern | Example |
|---|---|
| Search results | https://www.etsy.com/search?q=handmade+jewelry |
| Product listing | https://www.etsy.com/listing/1808282840/sterling-silver-ring |
| Shop page | https://www.etsy.com/shop/GlassHouseDesignsUS |
| Category page | https://www.etsy.com/c/jewelry-and-accessories |
Example input
{"startUrls": [{"url": "https://www.etsy.com/search?q=vintage+rings"}],"maxItems": 50}
{"searchQueries": ["handmade candles", "personalized gifts"],"maxItems": 100}
Output
Listing fields
| Field | Type | Description |
|---|---|---|
listingId | string | Unique Etsy listing ID |
shopId | string | Etsy shop ID |
url | string | Product page URL |
title | string | Product title |
price | string | Current price |
originalPrice | string | Original price before discount |
currency | string | Currency symbol |
discountPercent | string | Discount percentage |
imageUrl | string | Main product image URL |
shopName | string | Seller shop name |
shopUrl | string | Shop page URL |
rating | string | Average star rating |
reviewCount | string | Number of reviews |
badges | object | {starSeller, freeShipping, bestseller, etsyChoice, ad} |
scrapedAt | string | ISO 8601 timestamp |
Sample output
{"listingId": "1588968371","shopId": "10932069","url": "https://www.etsy.com/listing/1588968371/rainbow-moonstone-necklace-copper-wire","title": "Rainbow Moonstone Necklace Copper Wire Wrapped Necklace Natural Gemstone Jewelry","price": "31.18","originalPrice": "124.73","currency": "$","discountPercent": "75","imageUrl": "https://i.etsystatic.com/10932069/r/il/5d01ee/5450878877/il_300x300.5450878877_qp6p.jpg","shopName": "tanaygemsandjewels","shopUrl": "https://www.etsy.com/shop/tanaygemsandjewels","rating": "4.6","reviewCount": "19100","badges": {"starSeller": false,"freeShipping": true,"bestseller": false,"etsyChoice": false,"ad": false},"scrapedAt": "2026-03-23T07:10:18.494241+00:00"}
How it works
- URL processing — Accepts search URLs, product URLs, shop URLs, category URLs, and keyword queries
- Multi-layer extraction — Uses HTTP requests with Chrome TLS fingerprint impersonation, with browser automation as fallback
- Search flow — For keyword searches, types queries into Etsy's search bar (mimics real user behavior)
- Data extraction — Extracts listing data from JSON-LD structured data and page DOM with multiple fallback selectors
- Search variants — When more items are needed, automatically tries different sort orders and price filters to collect unique results beyond the first page
- Pagination — Automatically loads multiple pages to reach the requested number of items
- Session rotation — If a session is blocked, automatically retries with a fresh browser session
Tips for best results
- Start with a small
maxItems(10-50) to test before running large jobs - Use
searchQueriesfor the most reliable results - Each search page contains up to 64 products —
maxItems: 64gets one page of results - For larger result sets (100+), the scraper automatically uses search variants to collect more unique items
- Shop pages work well for getting a specific seller's product catalog
- Enable
includeDetailsto get full product descriptions, materials, variations, and tags - Allow some time between runs to avoid IP rate limiting
Limitations
- Etsy uses aggressive anti-bot protection; some sessions may be blocked
- The scraper automatically retries with fresh sessions (up to 5 attempts)
- Rating and review count are available on search result cards but not on shop page cards
- Product page details use an HTTP-first approach with Chrome TLS fingerprint impersonation, which works in most cases but may occasionally be blocked
- International Etsy pages (etsy.com/uk/, etsy.com/de/) are supported but results default to English
- Running too many requests in a short period from the same IP may trigger temporary blocks
Frequently Asked Questions
Do I need an Etsy account or API key? No. This scraper works without any login or API credentials.
Why does the scraper take time to start? The scraper launches a real browser and visits Etsy's homepage first to establish a valid session. This warmup step takes a few seconds but is necessary to bypass anti-bot protection.
How many products are on each Etsy search page? Etsy displays up to 64 products per search results page. For larger requests, the scraper uses search variants (different sort orders and filters) to collect more unique products.
Can I scrape a single product listing?
Yes. Provide the product URL (e.g., https://www.etsy.com/listing/1234567890/product-name) in startUrls. The scraper extracts full product details including description, materials, variations, and tags.
Can I scrape a specific Etsy shop?
Yes. Provide the shop URL (e.g., https://www.etsy.com/shop/ShopName) in startUrls.
What badges are detected? Star Seller, Free Shipping, Bestseller, Etsy's Pick, and Ad (sponsored listing) badges.
Can I search for products by keyword?
Yes. Use the searchQueries input field with an array of keywords. Each keyword generates a separate Etsy search.
Why are some fields empty?
Some fields like originalPrice and discountPercent are only populated for items on sale. Rating and review count are available on search result cards but may not appear on shop page listings.
What happens if the scraper gets blocked? The scraper automatically retries with a fresh browser session. It tries up to 5 sessions per task, first without proxy, then with residential proxy. If all attempts fail, the task is skipped and the next URL/query is processed.