Etsy Scraper
Etsy Shop Profile and Listings Scraper
Scrapes shop profiles and product listings from Etsy. Returns sales counts, ratings, review totals, owner details, social links, shop sections and featured listings with prices, as structured JSON.
Etsy Scraper Features
- Takes shop URLs directly, or a search query when you don't have a list yet
- Returns 15 fields per shop, including lifetime sales count and review totals
- Captures featured listings with title, price and URL in one record
- Extracts social links and shop sections as JSON arrays
- Runs over residential proxy, so ordinary rate limiting is not your problem
- Caps output with
maxItems
What can you do with Etsy shop data?
- Market researchers — Size a niche by pulling every shop for a search term and summing sales counts.
- Competitive analysts — Track a rival shop's review count and listing count over time to infer growth.
- Sourcing teams — Find makers in a category, with location and contact surface, without clicking through hundreds of pages.
- Brand protection — Sweep search results for shops selling against your marks.
- Print-on-demand sellers — Compare pricing across the shops ranking for your keywords.
How Etsy Scraper Works
- You supply either a list of shop URLs in
startUrls, or asearchQueryto discover them. - If a search query is used, the scraper collects shop URLs from the search results first.
- Each shop page is opened over a residential proxy and parsed into the field set below.
- Records stream to the dataset as they are parsed, stopping at
maxItems.
Input
By shop URL, when you already know the shops:
{
"startUrls": [
{ "url": "https://www.etsy.com/shop/PotteryHouseStudio" },
{ "url": "https://www.etsy.com/shop/AnotherMaker" }
],
"maxItems": 50
}
By search, when you're mapping a category:
{
"searchQuery": "handmade pottery",
"maxItems": 100
}
| Field | Type | Default | Description |
|---|---|---|---|
startUrls |
array | — | Etsy shop URLs or search result URLs. Leave empty to use searchQuery |
searchQuery |
string | handmade pottery |
Search term, used when startUrls is empty |
maxItems |
integer | 10 |
Maximum records to scrape |
startUrls wins when both are supplied.
Etsy Scraper Output Fields
{
"shop_name": "PotteryHouseStudio",
"shop_url": "https://www.etsy.com/shop/PotteryHouseStudio",
"title": "Pottery House Studio",
"sales_count": "14203",
"rating": "4.9",
"review_count": "3187",
"owner_name": "Marta",
"location": "Portugal",
"listing_count": "112",
"social_links": "[\"https://instagram.com/potteryhouse\"]",
"shop_sections": "[\"Mugs\",\"Bowls\",\"Vases\"]",
"listings": "[{\"title\":\"Stoneware Mug\",\"price\":\"$34.00\",\"url\":\"https://etsy.com/listing/123\"}]"
}
| Field | Type | Description |
|---|---|---|
shop_name |
string | Etsy shop name / handle |
shop_url |
string | Full URL of the shop page |
title |
string | Shop title or display name |
sales_count |
string | Total sales reported by the shop |
rating |
string | Average star rating |
review_count |
string | Total number of reviews |
owner_name |
string | Shop owner name |
location |
string | Shop location / country |
description |
string | Shop announcement or about text |
social_links |
string | JSON array of social media URLs listed on the shop page |
shop_sections |
string | JSON array of shop section names |
listing_count |
string | Number of active listings |
listings |
string | JSON array of featured listings — title, price, url |
last_updated |
string | Shop last-updated date, if shown |
scraped_at |
string | ISO timestamp of extraction |
FAQ
Does the Etsy Scraper need an Etsy account or API key?
No. It reads public shop pages.
Are listings all of a shop's products?
No — it's the featured set shown on the shop page, not the full catalogue. Use listing_count for the true total.
Why are social_links, shop_sections and listings strings rather than arrays?
They are JSON-encoded strings so the dataset stays flat and exports cleanly to CSV. Parse them on the way in if you want objects.
Can I scrape a shop's reviews individually?
Not with this actor. You get the aggregate rating and review count per shop, not each review.
What happens if a shop hides its sales count?
The field comes back empty for that shop. Etsy lets sellers hide it, and nothing is invented to fill the gap.
Need More Features?
Need full catalogue pulls or per-review extraction? Open an issue on the actor.
Why Use Etsy Scraper?
- Two entry points — Feed it known shop URLs or discover them from a search term; you don't need a shop list to start.
- Sales counts included — The single most useful field for sizing a seller, and the one aggregators usually charge for.
- Pay per shop — No subscription. A one-off category survey costs what those records cost and then stops.