Etsy Shop Scraper — Full Catalog Export
Pricing
from $3.00 / 1,000 results
Etsy Shop Scraper — Full Catalog Export
Export complete Etsy product catalogs from up to 50 shops per run. Get listing IDs, titles, localized prices, images, URLs, and catalog positions with exact per-shop and whole-run result caps. No proxy setup or separate user start charge.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Astrava Labs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Export the complete product catalog from one Etsy shop or up to 50 shops in one run. Get one clean row per listing with its title, localized price, image, URL, catalog position, listing ID, and shop ID—without configuring proxies or CAPTCHA handling.
Use it for competitor catalog tracking, assortment analysis, pricing research, seller discovery, or as the first stage of a larger Etsy data pipeline.
Quick start
{"shops": ["ArtFablePets","https://www.etsy.com/shop/WilshireGoodsShop"],"country": "US","maxTotalResults": 5000}
shops accepts bare shop names and full Etsy shop URLs. Duplicates and blank
values are removed before the run starts.
What you get
Each default-dataset row represents one catalog listing:
{"shop": "ArtFablePets","shop_id": 16875973,"listing_id": "1234567890","title": "Personalized pet portrait","url": "https://www.etsy.com/listing/1234567890/personalized-pet-portrait","price": 24.95,"currency": "USD","image_url": "https://i.etsystatic.com/.../il_794xN.jpg","position": 1,"scraped_at": "2026-07-18T10:00:00+00:00"}
Export the dataset as JSON, CSV, Excel, XML, RSS, or JSONL. Listing IDs can be passed directly to the companion Etsy Product Scraper for product-page details, variations, demand signals, shipping, and policies.
Inputs and cost controls
| Input | Default | Description |
|---|---|---|
shops | required | 1–50 unique Etsy shop names or URLs |
maxTotalResults | 5000 | Exact whole-run ceiling across every submitted shop |
maxListings | all | Per-shop ceiling; 0 or omitted means paginate until that catalog ends |
catalogSort | custom | Shop order, newest, price low/high, or relevance |
country | US | Localizes returned prices and currency; 32 countries supported |
The two limits work together. For example, maxListings: 100 and
maxTotalResults: 1000 means no shop can contribute more than 100 rows and the
entire batch can never save more than 1,000. Raise maxTotalResults when you
intentionally want more than the default 5,000 rows.
The actor also stops cleanly if your Apify run spending limit is reached. The
dataset and RUN_REPORT reflect the number actually persisted, including when
Apify accepts only part of the final batch.
Pricing
The price is $3 per 1,000 saved listings ($0.003 per result). There is no separate actor-start charge to the user, and proxy handling is included.
| Saved results | Result charge |
|---|---|
| 100 | $0.30 |
| 1,000 | $3.00 |
| 5,000 (default whole-run cap) | $15.00 |
You pay only for rows saved to the dataset. RUN_REPORT is stored separately
and is not a billed result.
Speed and scale
Shops run in parallel with one proxy session per active shop; pages inside a shop remain sequential for session stability. Live local measurements used the same 36-listing-per-shop workload for every concurrency comparison:
| Run shape | Time range | Listings | Successful samples |
|---|---|---|---|
| 1 shop × up to 36 listings | 4.6–14.5s | 36 | 2/2 |
| 10 shops × up to 36 listings | 6.2–8.9s | 328 | 2/2 |
| 50 shops × up to 36 listings | 8.0–10.5s | 1,720 | 2/2 |
In the 50-shop concurrency comparison, all 8 runs across 8, 16, 25, and 50 workers completed 1,720/1,720 rows with zero failed shops. Fifty workers was fastest on average at 9.29 seconds. Times vary with proxy warmup, Etsy response latency, catalog size, and pagination depth.
Sorting examples
Get the newest 25 products from each shop:
{"shops": ["ArtFablePets", "WilshireGoodsShop"],"catalogSort": "date_desc","maxListings": 25,"maxTotalResults": 50}
Get prices as shown to a visitor in Germany:
{"shops": ["ArtFablePets"],"country": "DE"}
Run status and partial results
The key-value store record RUN_REPORT preserves input order and gives each
shop an explicit status:
completed— the catalog ended normally or reachedmaxListings.capped— the shop stopped atmaxTotalResultsor the Apify spending limit.not_started— the whole-run limit was already reached before this shop began.failed— shop resolution, retry recovery, pagination safety, or storage failed.
It also includes per-shop listing/page counts, the termination reason, run totals, concurrency, proxy sessions, recoveries, and fetch outcomes. Rows saved before a later page failure remain available and are counted accurately.
API example
curl -X POST \"https://api.apify.com/v2/acts/astravalabs~etsy-shop-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"shops":["ArtFablePets"],"maxListings":100}'
For larger jobs, start the Actor asynchronously and read the default dataset after the run succeeds.
Companion Etsy actors
- Etsy Listings Scraper — discover listings in Etsy search and track ranks.
- Etsy Product Scraper — enrich listing IDs with full product details, variations, shipping, and policies.
- Etsy Reviews Scraper — export shop or listing review histories and seller responses.
- Etsy Keyword Research Tool — collect Etsy autocomplete keyword ideas.
FAQ
Does this include shop profile statistics or reviews?
No. This actor is optimized for complete product catalogs. Use the Reviews Scraper for buyer feedback and the Product Scraper for listing-level enrichment.
Why did a shop return fewer rows than maxListings?
maxListings is a ceiling, not a target. The actor stops when Etsy has no more
catalog items. Check RUN_REPORT for the exact status and reason.
Can I scrape more than 5,000 listings?
Yes. Set a higher maxTotalResults. The 5,000 default is a predictable cost
guardrail, not the technical catalog limit.
Will duplicate listings be billed twice?
Listings are deduplicated by ID within each shop before being saved.
Unofficial. Not affiliated with, endorsed by, or sponsored by Etsy, Inc. “Etsy” is a trademark of Etsy, Inc., used here descriptively.