Etsy Shop & Listing Scraper avatar

Etsy Shop & Listing Scraper

Pricing

Pay per usage

Go to Apify Store
Etsy Shop & Listing Scraper

Etsy Shop & Listing Scraper

Scrape Etsy listings, shops, and search results. Extract prices, ratings, reviews, images, tags, materials, and shipping info. Export to JSON, CSV, Excel.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Glass Ventures

Glass Ventures

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

a day ago

Last modified

Categories

Share

Scrape product listings from Etsy shops, search results, and individual listing pages. Extract prices, ratings, reviews, images, tags, materials, descriptions, and shipping info.

What does Etsy Shop & Listing Scraper do?

Etsy Shop & Listing Scraper is a powerful data extraction tool that collects detailed product information from Etsy, the world's largest marketplace for handmade, vintage, and unique goods. It handles shop pages, search results, and individual listing URLs automatically.

The actor uses efficient HTTP-based scraping (no browser needed) to extract structured data from Etsy's server-rendered HTML and JSON-LD metadata. It handles pagination, deduplication, and anti-bot protections with session rotation and proxy support.

Whether you're researching competitors, tracking prices, or building a product database, this actor delivers clean, structured data ready for analysis.

Use Cases

  • Market researchers — Analyze pricing trends, popular materials, and product categories across Etsy's handmade marketplace
  • E-commerce sellers — Monitor competitor shops, track pricing strategies, and identify bestselling items
  • Data analysts — Build datasets of Etsy products with ratings, reviews, and engagement metrics for trend analysis
  • Developers — Integrate Etsy product data into applications, dashboards, or recommendation engines via API

Features

  • Scrape Etsy search results by keyword
  • Scrape entire Etsy shops with all listings
  • Extract individual listing details from URLs
  • JSON-LD extraction for clean structured data
  • Automatic page type detection (search, shop, listing)
  • Handles pagination across search results and shop pages
  • Deduplication to avoid scraping the same listing twice
  • Proxy support with automatic session rotation
  • Exports to JSON, CSV, Excel, or connect via API

How much will it cost?

ResultsEstimated Cost
100~$0.50
1,000~$3.00
10,000~$25.00
Cost ComponentPer 1,000 Results
Platform compute~$0.50
Proxy (residential)~$2.50
Total~$3.00

How to use

  1. Go to the Etsy Shop & Listing Scraper page on Apify Store
  2. Click "Start" or "Try for free"
  3. Enter Etsy URLs (shop pages, search URLs, or listing URLs) or search terms
  4. Set the maximum number of items to scrape
  5. Click "Start" and wait for the results

Input parameters

ParameterTypeDescriptionDefault
startUrlsarrayEtsy URLs to scrape (shops, listings, search pages)-
searchTermsarraySearch queries to run on Etsy-
maxItemsnumberMax results to return (0 = unlimited)100
maxConcurrencynumberParallel requests (lower = less blocking)10
debugModebooleanEnable verbose loggingfalse
proxyConfigobjectProxy settings (residential recommended)Apify Proxy

Output

The actor produces a dataset with the following fields:

{
"url": "https://www.etsy.com/listing/123456789/handmade-silver-ring",
"listingId": "123456789",
"title": "Handmade Silver Ring - Sterling Silver Band",
"price": 45.99,
"currency": "USD",
"originalPrice": null,
"seller": "SilverCraftShop",
"shopUrl": "https://www.etsy.com/shop/SilverCraftShop",
"rating": 4.8,
"reviewCount": 1523,
"images": [
"https://i.etsystatic.com/12345/il_fullxfull.jpg"
],
"tags": ["silver ring", "handmade jewelry", "sterling silver"],
"materials": ["Sterling silver", "925 silver"],
"description": "Beautiful handmade sterling silver ring...",
"shippingInfo": "Free shipping",
"favoritesCount": 2847,
"category": "Jewelry > Rings > Bands",
"isAd": false,
"scrapedAt": "2026-04-23T10:30:00.000Z"
}
FieldTypeDescription
urlstringListing page URL
listingIdstringEtsy listing ID
titlestringProduct title
pricenumberCurrent price
currencystringCurrency code (USD, EUR, GBP, etc.)
originalPricenumberOriginal price before discount
sellerstringShop/seller name
shopUrlstringSeller's shop URL
ratingnumberAverage star rating (1-5)
reviewCountnumberTotal number of reviews
imagesarrayProduct image URLs
tagsarrayListing tags/keywords
materialsarrayMaterials used in the product
descriptionstringFull product description
shippingInfostringShipping details
favoritesCountnumberNumber of users who favorited
categorystringProduct category breadcrumb
isAdbooleanWhether listing was a promoted result
scrapedAtstringISO 8601 scrape timestamp

Integrations

Connect Etsy Shop & Listing Scraper with other tools:

  • Apify API — REST API for programmatic access
  • Webhooks — get notified when a run finishes
  • Zapier / Make — connect to 5,000+ apps
  • Google Sheets — export directly to spreadsheets

API Example (Node.js)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('YOUR_USERNAME/etsy-shop-scraper').call({
startUrls: [{ url: 'https://www.etsy.com/search?q=handmade+jewelry' }],
maxItems: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

API Example (Python)

from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')
run = client.actor('YOUR_USERNAME/etsy-shop-scraper').call(run_input={
'startUrls': [{'url': 'https://www.etsy.com/search?q=handmade+jewelry'}],
'maxItems': 100,
})
items = client.dataset(run['defaultDatasetId']).list_items().items

API Example (cURL)

curl "https://api.apify.com/v2/acts/YOUR_USERNAME~etsy-shop-scraper/runs" \
-X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{"startUrls": [{"url": "https://www.etsy.com/search?q=handmade+jewelry"}], "maxItems": 100}'

Tips and tricks

  • Start with a small maxItems (10-20) to test before running large scrapes
  • Use residential proxies if you encounter blocking — Etsy has moderate anti-bot protections
  • Lower maxConcurrency to 3-5 if you experience rate limiting
  • Shop URLs and search URLs automatically paginate to collect all listings
  • Individual listing URLs are scraped directly without pagination

FAQ

Q: Does this actor require login credentials? A: No. The actor scrapes publicly available Etsy listings without authentication.

Q: How fast is the scraping? A: Approximately 50-150 listings per minute depending on proxy type and concurrency settings.

Q: What should I do if I get blocked? A: Switch to residential proxies in the Proxy Configuration settings and reduce maxConcurrency to 3-5.

Q: Can I scrape an entire Etsy shop? A: Yes. Provide the shop URL (e.g., https://www.etsy.com/shop/ShopName) and the actor will paginate through all listings.

Q: What URL formats are supported? A: Shop pages (etsy.com/shop/Name), listing pages (etsy.com/listing/123456), and search pages (etsy.com/search?q=query).

Web scraping of publicly available data is generally legal based on precedents like the LinkedIn v. HiQ Labs case. This actor only accesses publicly available data. Always review and respect the target site's Terms of Service and robots.txt. For more information, see Apify's blog on web scraping legality.

Limitations

  • Only scrapes publicly visible listings (no private or draft listings)
  • Some fields may be null if Etsy changes their page structure
  • Rate limiting may slow scraping at high concurrency
  • Etsy may serve different content based on geographic location and proxy IP

Changelog

  • v0.1 (2026-04-23) — Initial release