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
Crikit
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
2 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.