Etsy Scraper - Listings, Shops & Search Results
Pricing
from $3.50 / 1,000 results
Etsy Scraper - Listings, Shops & Search Results
Scrape Etsy product listings, shop profiles, and search results. Get price, sales, reviews, photos, variants, shop info. 3 input modes.
Pricing
from $3.50 / 1,000 results
Rating
0.0
(0)
Developer
Actor stats
1
Bookmarked
39
Total users
24
Monthly active users
20 days ago
Last modified
Categories
Share
Etsy Scraper โ Listings, Shops & Search Results
Etsy Scraper extracts product listings, shop profiles, and search results from etsy.com without a login. Three input modes ship together so you can mix bulk listing scrapes, shop deep-dives, and keyword discovery in a single actor run.
What this Etsy Scraper returns
| Record type | What you get |
|---|---|
listing | title, full description, price low/high, currency, availability, variant count, rating, review count, ordered image URLs, category, breadcrumbs, shop name, shop ID, source URL |
shop | shop title, description, owner, location, slogan, logo, aggregate rating, total review count, total listings on the shop page, source URL |
searchSummary | search query, page number, total result count Etsy reports for the query, source URL |
Every record is flat. No nested wrappers. Pipe directly into a spreadsheet or database.
Warnings (404 listings, removed shops, anti-bot blocks) are written to the run's key-value store at WARNINGS so you can audit run health, without triggering a result charge. Open the run's key-value store tab to download.
Input modes
Mix any combination in a single run.
- Search queries โ give a list of free-text searches and the actor walks
page=1..Nper query, summarizing total hits and feeding the listings it sees into the listing detail phase whenincludeListingDetailsis enabled. - Shop URLs or names โ full Etsy shop URLs (
https://www.etsy.com/shop/HunchbackLeather) or bare names. Returns the shop record plus, by default, every listing visible on the shop's front page. - Listing URLs or IDs โ full Etsy listing URLs or bare numeric IDs (e.g.
1529402955). Returns the full product record.
Use maxResults as a hard cap across all three modes. Use maxPagesPerQuery to control search depth.
Pricing
Pay only for what you get back: $0.0035 per successful record ($3.50 per 1,000). No actor-start fee.
You are charged ONLY for listing, shop, and searchSummary records that land in the default dataset. 404s, anti-bot warnings, and unfetchable shops are routed to the run's key-value store as a WARNINGS blob โ never billed. Etsy returns roughly six listing cards per mobile search page, so a single search query at maxPagesPerQuery=10 produces around 60 listing records plus 10 search-summary rows.
Why this Etsy Scraper
- 3 input modes in one actor. Most Etsy actors handle search OR shops OR listings. This one does all three so you do not bounce between multiple actors and datasets.
- Real product data. Pulls from Etsy's JSON-LD Product / Organization / ItemList / BreadcrumbList / FAQPage blocks, the same structured data Google indexes, so the field shape is stable across page redesigns.
- No login required. Bryan's actor portfolio policy: zero cookie-required scrapers. This Etsy Scraper never asks for your Etsy account, sessionid, or any credential.
- Anti-bot ready. Etsy fronts everything behind DataDome. This scraper ships with the iOS Safari + curl_cffi
safari17_0impersonation profile and an Apify RESIDENTIAL US proxy that is the only proxy class DataDome lets through on product, shop, and search pages. A built-in circuit breaker pauses the run instead of burning proxy bandwidth when DataDome enters a sustained block state. - Cheaper. $3.50 per 1,000 records flat. The dominant competitor charges roughly $5โ$7 per 1,000 plus a $0.05 actor-start fee on every run.
Output examples
Listing record
{"recordType":"listing","listingId":"1529402955","title":"Handmade Full Grain Leather Wallet - Personalizable Men's Bifold Wallet","priceLow":154.0,"priceHigh":194.0,"priceCurrency":"USD","availability":"https://schema.org/InStock","variantCount":25,"ratingValue":5.0,"reviewCount":467,"images":["https://i.etsystatic.com/.../il_fullxfull.jpg","โฆ"],"category":"Wallets & Money Clips","breadcrumbs":["Clothing & Accessories","Wallets & Money Clips","Bifold Wallets"],"shopId":"34829689","shopName":"HunchbackLeather","shopUrl":"https://www.etsy.com/shop/HunchbackLeather","sourceUrl":"https://www.etsy.com/listing/1529402955","scrapedAt":"2026-05-19T18:42:11Z"}
Shop record
{"recordType":"shop","shopId":"34829689","shopName":"HunchbackLeather","title":"HunchbackLeather","description":"Handcrafted leather goods, made by a single artisan in California.","shopOwner":"Eric","shopLocation":"San Francisco, United States","shopRating":4.93,"shopReviewCount":2178,"shopLogo":"https://i.etsystatic.com/iusa/โฆ/iusa_400x400.jpg","totalShopListings":84,"sourceUrl":"https://www.etsy.com/shop/HunchbackLeather","scrapedAt":"2026-05-19T18:42:11Z"}
Search summary record
{"recordType":"searchSummary","searchQuery":"handmade leather wallet","searchPage":1,"searchTotalResults":80032,"sourceUrl":"https://www.etsy.com/search?q=handmade+leather+wallet&page=1","scrapedAt":"2026-05-19T18:42:11Z"}
Common Etsy use cases this actor covers
- Etsy market research โ pull every Etsy listing for a niche query, with price ranges and ratings, into a single Etsy dataset.
- Etsy competitor monitoring โ run a daily Etsy shop scrape across a list of competitor shops, track their listings, prices, and review counts over time.
- Etsy product Python pipelines โ feed the Etsy listing JSON straight into Python with the Apify SDK. The actor's output schema makes the Etsy data CSV-clean.
- Etsy SEO tools โ walk Etsy search results to map title patterns and tag usage across top-ranking listings.
- Etsy review analysis โ combine the shop record's
shopReviewCountwith the listing record'sreviewCountfor a quick reputation snapshot.
Tips
- For deep searches, raise
maxPagesPerQueryto 30+ and rely onmaxResultsas your wallet cap. includeListingDetails: falseis roughly 6ร cheaper if you only need shop or search-summary rows.- Etsy shop names are case-sensitive in the URL path; the actor preserves whatever capitalization you pass.
- Concurrency tuning.
detailConcurrencydefaults to 5 โ the sweet spot in our benchmarks. 8โ10 will not be meaningfully faster (Etsy's mobile search page returns only ~6 listings per page, so the search-page walk becomes the bottleneck) and may increase anti-bot signals. Lower it to 1โ2 if you ever see warnings spike. - Runtime budget. Set
maxRuntimeSecondsif you want the actor to stop cleanly at a deadline regardless of how many results have been collected. Useful for daily cron-style jobs.
Performance
In our v0.2.2 benchmark:
- ~2.4 results per second in steady state on residential US proxy (vs ~0.4/sec on v0.1.x).
- 8-item prefill run completes in ~12 s โ well inside Apify's 5-minute daily-auto-test envelope.
- 100% required-field coverage on 175 listings across the QA matrix.
- Per-run warnings ride in the run's key-value store with no per-warning charge.
The full v0.2.2 launch QA report is at qa/v02/QA_REPORT.md.
Limitations
- The mobile layout that DataDome allows through paginates roughly six listings per search page. Plan
maxPagesPerQueryaccordingly. - Etsy hides exact subscriber counts on the public web. The actor returns whatever Etsy renders.
- Sold listings still return data but with
availability: OutOfStock.
Bug reports & feature requests
Open an issue on the Apify Console actor page or DM the maintainer. The actor ships with documented ground-truth listings so reproducing a problem is straightforward.
