🔥 Etsy Listings Scraper – Live Carts & Ads
Pricing
from $8.00 / 1,000 etsy listings
🔥 Etsy Listings Scraper – Live Carts & Ads
Scrape Etsy listings by keyword with data no other scraper exposes — live cart counts, "X people bought in 24h" signals, Etsy Ads slot positions, bestseller and star-seller badges, seller velocity. Up to 1,080 per keyword, any country. No proxy or captcha needed.
Pricing
from $8.00 / 1,000 etsy listings
Rating
0.0
(0)
Developer
Yakugusa Yumitori
Maintained by CommunityActor stats
13
Bookmarked
1.2K
Total users
317
Monthly active users
0.75 hours
Issues response
11 days ago
Last modified
Categories
Share
Etsy Listings Scraper
Scrape Etsy listings by keyword and get the data the official seller dashboard quietly hides — live in-cart counts, "20+ bought in the last 24h" purchase signals, paid-ad slot positions, discount depth, made-to-order & scarcity flags, bestseller and star-seller badges, and true seller velocity.
Other Etsy scrapers force you into one search at a time and return shallow snippets. This one acts as your automated Etsy cart counter and market-research engine — batching up to 50 keywords in parallel, deduping across them, and extracting over 40 deep fields per listing in a single run. No proxy, no captcha, no setup.
⚡ Quick Start
Three keywords, ~360 listings each, sorted by current cart pressure, deduped across runs — finishes in ~30 seconds.
{"queries": ["linen apron", "ceramic mug", "leather journal"],"maxPages": 10,"sort": "carts","country": "US"}
💡 Ready-to-Run Presets
🎃 Fall & Halloween Breakouts — Seasonal Velocity
September marks the annual surge in autumn apparel, seasonal home decor, and party favors. Run an automated Etsy cart-count checker to surface high-momentum items sitting in dozens of buyer carts with verified 24-hour purchase velocity.
{"queries": ["halloween sweatshirt", "ghost mug", "fall porch decor"],"sort": "carts","includeInDemand": true,"maxPages": 5,"country": "US"}
📁 Q4 Planners & Instant POD — Zero Physical Clutter
End-of-year budget trackers, dated digital planners, and Halloween printable games. Zero physical shipping, zero inventory delays — pure digital-margin analysis.
{"queries": ["digital planner", "budget spreadsheet", "halloween printable games"],"digitalOnly": true,"sort": "score","maxPages": 5}
🎯 Early Holiday Ad-Slot Bidding — Ad-Slot Transparency
Sellers aggressively ramp sponsored bidding heading into Q4 to build sales history. Capture exact paid slot indices and isolate sponsored competitors from organic winners.
{"queries": ["custom family ornament", "personalized leather wallet"],"includeAds": true,"sort": "score","maxPages": 3}
🏷️ Thanksgiving Table Undercutters — Margin Sourcing
Identify artisan sellers discounting customized entertaining goods (wooden place cards, runners, ceramic tableware) to gauge wholesale floors and margin structures.
{"queries": ["wooden place cards", "linen table runner"],"sort": "price-asc","maxPrice": 30,"handmadeOnly": true}
🎯 Strategic Playbooks
🔍 Niche Discovery & Demand Validation
Sweep up to 20 long-tail keywords in parallel. Use it as an automated Etsy cart counter — sort by buyer interest rather than static lifetime reviews to separate real buyers from seasonal traffic lulls.
{ "sort": "carts", "handmadeOnly": true, "includeAds": false }
🎯 Competitor Ad-Slot Mapping
Extract raw adSlot position integers to map who is buying top visibility across your target search phrases.
{ "includeAds": true, "maxPages": 5, "country": "US" }
📊 Pricing Curve & Elasticity
Sort high-to-low and apply hard min/max filters to chart price clustering, average order values, and conversion ceilings across competing categories.
{ "sort": "price-desc", "minPrice": 25, "maxPrice": 150 }
🌍 Cross-Border Arbitrage
Run identical queries against localized country codes to pinpoint gaps where high-demand domestic products have zero local competition overseas.
{ "country": "GB", "maxPages": 10 }
🔘 Console Toggles & Output Mapping
Match your Console toggle switches directly to the JSON parameters and dataset columns they control:
| Console Toggle | JSON Parameter | What It Controls / Populates |
|---|---|---|
| On-sale listings only | "onSaleOnly": true | Filters to items where onSale: true; populates discountPct and discountedPrice. |
| Free-shipping listings only | "freeShippingOnly": true | Isolates rows with isFreeShipping: true to compare delivered-margin floors. |
| Digital downloads only | "digitalOnly": true | Filters for isDigital: true, removing physical-fulfillment inventory. |
| Handmade only | "handmadeOnly": true | Filters for isHandmade: true, separating artisan shops from resold goods. |
| Include sponsored (ad) listings | "includeAds": true | Captures runningAds: true and the paid adSlot position. Turn off for purely organic results. |
| Include "In demand" — bought in last 24h (slower) | "includeInDemand": true | Adds the boughtLast24h field (e.g. 20+ bought). Runs a per-listing lookup, so it's slower — off by default. |
| Dedupe across queries | "dedupeAcrossQueries": true | Default ON. When multiple keywords match the same listing, prevents duplicate rows. |
📦 What You Get On Every Listing (40+ Fields)
| Category | Extracted Fields |
|---|---|
| 🛒 Real-Time Conversion | inCartCount (live cart count), boughtLast24h (recent buyers, opt-in), lastSaleDate, isScarce, quantity |
| 🎯 Paid Placement Intel | runningAds, adSlot (exact sponsored position), isBestseller, isStarSeller, isTopRated |
| 💰 Pricing & Discounts | price, discountedPrice, discountPct, onSale, isShopWideSale, currencyCode, isFreeShipping |
| 🏪 Shop Footprint | shopId, shopName, shopUrl, shopRating, shopRatingCount, shopSales, shopSince, sellerLocation |
| 📐 Fulfillment & Specs | isHandmade, isDigital, isCustomizable, isPersonalizable, isMadeToOrder, photoCount, minProcessingDays, maxProcessingDays |
| 🔍 Search Tracking | sourceQuery — the keyword and pagination cycle that surfaced the record |
⚙️ Configuration
| Parameter | Default | Description & Boundaries |
|---|---|---|
queries | required | List of 1–50 keywords batched together in one run |
maxPages | 3 | Pages per keyword (1–30, ~36 listings/page, up to 1,080 rows) |
sort | score | score (relevance) · carts · lastsale · created · price-asc · price-desc |
country | US | 22 destination markets: US, GB, DE, FR, JP, AU, CA, +15 others |
includeInDemand | false | Adds boughtLast24h (per-listing lookup — slower) |
dedupeAcrossQueries | true | Deduplicate items found across overlapping keyword terms |
📊 Dataset Views & Exports
Results flow directly into the default dataset. Export anytime via JSON, CSV, Excel, or JSONL.
| View | What's In It |
|---|---|
| 📋 Overview | Thumbnail, title, shop, price, live cart count, 24h sales, badges |
| 🏬 Shop Intel | Shop age, lifetime sales count, review ratings, seller origin country |
| 🏷️ Pricing & Ads | Price, discount %, sitewide-sale flag, ad-slot index, cart demand |
A full execution summary (totals, duration, per-keyword counts, dedupe stats) lands automatically in the Key-Value store under SUMMARY.
🔬 Sample Record
A live production row from a necklace run showing high cart pressure and 24-hour buyer velocity:
{"listingId": 1112702820,"title": "Personalized Name Necklace, Custom 18K Gold Plated Name Necklace, Minimalist Name Necklace, Christmas Gift, Mother's Day Gift, Gift for Her","image": "https://i.etsystatic.com/32477306/r/il/913cf0/8402413868/il_fullxfull.8402413868_s4a9.jpg","shopId": 32477306,"shopName": "MuwatiUK","shopUrl": "https://www.etsy.com/shop/MuwatiUK","listingUrl": "https://www.etsy.com/listing/1112702820/personalized-name-necklace-custom-18k","price": 30.81,"discountedPrice": 13.86,"discountPct": 55,"currencyCode": "USD","onSale": true,"inCartCount": 1828,"shopRating": 4.73,"shopRatingCount": 33370,"shopSales": 204132,"shopSince": "Oct 22, 2021","sellerLocation": "Grimsby, United Kingdom","isBestseller": true,"isStarSeller": true,"isTopRated": false,"isShopWideSale": true,"isScarce": false,"isMadeToOrder": true,"isDigital": false,"isHandmade": true,"isCustomizable": false,"isPersonalizable": true,"isFreeShipping": false,"quantity": 5736,"minProcessingDays": 6,"maxProcessingDays": 8,"photoCount": 20,"lastSaleDate": "Sep 20, 2026","createDate": "Nov 23, 2021","location": null,"runningAds": false,"adSlot": null,"sourceQuery": "necklace","boughtLast24h": 20}
⏱️ Execution Benchmark & Pagination Rules
| Job Complexity | Execution Time | Expected Output |
|---|---|---|
| 1 keyword, 1 page | 1–2s | ~36 listings |
| 1 keyword, 10 pages | 6–10s | ~360 listings |
| 3 keywords in parallel, 2 pages each | ~5s | ~200 listings (deduped) |
With includeInDemand: true | +0.5–1s / listing | Appends boughtLast24h counts |
| 50 keywords, 30 pages each (max scale) | ~10–15 min | Complete niche footprint |
ℹ️ Why listings may total below
maxPages × 36: popular categories return overlapping items across pages. A 30-page sweep that mathematically totals 1,080 listings typically lands at 400–600 unique rows after deduplication. Set"dedupeAcrossQueries": falseto keep raw duplicate hits.⚠️ Hard boundaries:
maxPagescaps at 30. Deep pages (15+) may stop early if pagination runs out of matching inventory.
❓ Frequently Asked Questions
Why am I getting very few or zero results?
If you paste full listing titles or long sentences into queries, search returns tiny or empty results — Etsy's search doesn't match long, wordy strings. Use concise 2–3 word keywords shoppers actually type (e.g. "leather journal", "ghost mug") instead of a whole product title.
Why was my run aborted around $1.00 — did I lose my data?
Nothing crashed, and no data was lost. This happens when an Apify spending limit kicks in — your account's spending cap or a per-run max-cost setting. When that ceiling is hit, Apify stops the run cleanly and charges only for the results already collected.
Your results are safe: items are written to the dataset the moment they're scraped, so everything gathered before the cutoff is saved and ready to export. To run larger sweeps without interruption, raise or remove the spending limit in your Apify Console settings.
How does this work as an Etsy cart-count checker?
Instead of clicking listings one-by-one, this actor acts as an automated Etsy cart counter across thousands of listings at once — systematically reading active buyer cart pressure (inCartCount) across entire niches in seconds.
What does "Include 'In demand' — bought in last 24h (slower)" do?
Turning on includeInDemand adds the boughtLast24h field — Etsy's own "X people bought this in the last 24 hours" signal (e.g. 20) for listings that have it. Because it pulls this per listing, runs take a little longer and cost slightly more, so it's off by default. Listings without the signal simply return empty for that field.
Do I need my own proxies or a captcha solver?
No. Everything needed to run is handled for you — no proxy subscription, no captcha service, no setup. Just enter your keywords and run.
How does multi-keyword deduplication work?
With dedupeAcrossQueries: true (the default), a listing that shows up under several keywords — say both "custom name necklace" and "gold plated necklace" — is kept only once, while retaining its ranking data and the keyword it was first discovered under.
⚠️ Unofficial notice: This Actor is not affiliated with, endorsed by, or sponsored by Etsy, Inc. "Etsy" is a registered trademark of Etsy, Inc., referenced strictly for descriptive identification.