Etsy Scraper: Prices, Sale Prices, Shop Ratings & Star Sellers avatar

Etsy Scraper: Prices, Sale Prices, Shop Ratings & Star Sellers

Pricing

from $2.25 / 1,000 listing scrapeds

Go to Apify Store
Etsy Scraper: Prices, Sale Prices, Shop Ratings & Star Sellers

Etsy Scraper: Prices, Sale Prices, Shop Ratings & Star Sellers

Scrape Etsy search results for any keyword, or category pages, into one flat table: price, original price, discount, shop, shop rating and review count, Star Seller, Bestseller and Popular now badges, free shipping, ad flag and rank. No login.

Pricing

from $2.25 / 1,000 listing scrapeds

Rating

0.0

(0)

Developer

Atlas Dataworks

Atlas Dataworks

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Security

Limited permissions

Share

Etsy Scraper: prices, sale prices, shop ratings and Star Sellers for any keyword or category

Scrape Etsy listing data from etsy.com search results or category pages into one flat table: price, original price and discount, currency, shop name and id, shop rating and review count, Star Seller, Bestseller and Popular now badges, free shipping, ad flag and rank. Type a keyword or paste a category URL; no login, no proxy setup. $3.00 per 1,000 listings, and you pay only for listings delivered.

What does this Etsy scraper do?

  • Searches Etsy by keyword (ceramic mug, personalized necklace), up to 1,000 listings per keyword in Etsy's relevance order, about 60 per page.
  • Reads Etsy category pages you paste from your browser (https://www.etsy.com/c/...), up to 1,000 listings per URL, about 48 to 64 per page. The URL's own filters and sort order are kept; only the page number changes.
  • Gets past Etsy's bot protection for you: every run goes through residential IPs and a real, fingerprinted browser, included in the price.
  • Removes duplicates. Etsy shows some listings both as an ad and as an organic result, and a listing can turn up under two keywords or categories. The max you set counts unique listings, and you are charged once per listing.
  • Leaves ads out by default. Include them with one switch and they come flagged sponsored: true.

Who uses it

  • Etsy sellers. See who ranks first for the keyword your buyers type, at what price and discount, and which shops are Star Sellers with free shipping.
  • Price and discount monitoring. Schedule a daily run on a keyword or category and track price, original price and discount over time.
  • Product and niche research. Pull a whole category with shop ratings and review counts to size demand before you make or source a product.
  • AI agents. Call it as an MCP tool and get typed JSON back (see below).

How much does it cost to scrape Etsy?

Pay per event: $0.003 per listing delivered (product-scraped), plus Apify's platform rows (about $0.00005 per run start and per result). You do not pay for run time, proxies or the browser.

What you scrapeListingsCost
One keyword, first results (the prefilled run)40$0.12
One keyword or category, 500 listings500$1.50
1,000 listings from any mix of keywords and categories1,000$3.00
Ten keywords, 300 listings each3,000$9.00

The table shows the Free-plan price. On Apify's paid plans each listing costs less: $2.75 per 1,000 on Bronze, $2.50 on Silver, $2.25 on Gold and above.

To cap a run, set Max cost per run in the run options: the run delivers what fits and stops, and never charges past it.

How to scrape Etsy listings

  1. Click Try for free (or Start). The input is prefilled with the keyword ceramic mug and 40 listings, so one click returns data.
  2. Type your own keywords, one per line. Or open Etsy in your browser, go to the category you want, set any filters, and paste the URL.
  3. Run it, then download the results as JSON, CSV, Excel, XML or HTML, or read them through the Apify API, a schedule, or an integration (Make, Zapier, n8n, Google Sheets, webhooks).

Input

FieldWhat it does
searchQueriesKeywords to search on Etsy, one per line, e.g. ceramic mug.
categoryUrlsEtsy category URLs copied from your browser, e.g. https://www.etsy.com/c/jewelry/necklaces. Listing and shop pages are not accepted; for a search, use searchQueries.
maxItemsPerQueryMost unique listings per keyword or URL, 1 to 1,000.
includeSponsoredInclude Etsy Ads placements, always flagged sponsored: true. Default off.

Example input:

{
"searchQueries": ["ceramic mug", "personalized necklace"],
"categoryUrls": [{ "url": "https://www.etsy.com/c/art-and-collectibles/prints" }],
"maxItemsPerQuery": 200
}

Output

One record per unique listing (a real row from a run on 2026-10-30):

{
"listingId": "1095910732",
"url": "https://www.etsy.com/listing/1095910732/family-birthstone-necklace-personalized",
"title": "Family Birthstone Necklace, Personalized Initial Leaf Charm Necklace",
"imageUrl": "https://i.etsystatic.com/17285845/r/il/9dec06/8592277692/il_fullxfull.8592277692_6rr2.jpg",
"price": 36.4,
"wasPrice": 56,
"discountPct": 35,
"currency": "USD",
"shopRating": 4.78,
"shopReviewCount": 5644,
"shopName": "BedrockBijoux",
"shopId": "17285845",
"starSeller": false,
"freeShipping": true,
"sponsored": false,
"badge": null,
"position": 1,
"page": 1,
"source": "url:https://www.etsy.com/c/jewelry/necklaces",
"scrapedAt": "2026-10-30T07:04:54.108Z"
}
  • price is what a signed-out US visitor sees, the sale price when there is one. wasPrice is the struck-through price, filled only when it is above price; discountPct is the percentage Etsy prints.
  • shopRating and shopReviewCount are the shop's stars and review total, which is what Etsy shows on a category card (one necklace from a large shop read 753460 reviews). Etsy cards carry no per-listing rating.
  • badge is Etsy's own signal as a search card prints it (Bestseller, Popular now, Etsy's Pick), so you can see what is selling for a keyword without opening each listing: 32 of 40 rows carried one in our test on 2026-11-04. null when the card shows none.
  • position and page are the rank as Etsy ordered the results. source is search:<keyword> or url:<category URL>.
  • On search results Etsy prints large review totals rounded (16.9k), so shopReviewCount from a keyword reads 16900; category pages give the exact number.
  • Unknown values are null, never 0: a listing with no rating shown is not a listing rated 0.

Each run also writes a summary to the key-value store under OUTPUT: priceCompleteness (share of listings that came back with a price), degradedSources (any keyword or URL that failed, so an empty result is told apart from a failed one), rejectedUrls (pasted URLs that are not Etsy category pages), pagesFetched and counts per keyword and URL.

Why this Etsy scraper

  • Measured. Price completeness is reported on every run. In our test run on the platform (2026-11-04): five keywords plus one category at 100 listings each, 600 unique listings over 22 pages in under 5 minutes, 100% priced, no keyword or URL degraded.
  • Unique listings, charged once. Ad copies of organic listings, and repeats across pages and URLs, are removed before delivery and before charging.
  • Same schema as our Amazon and Walmart Actors. Field names match where they overlap (price, wasPrice, discountPct, position, sponsored), so one pipeline reads all three.

Use it from an AI agent (MCP) or the API

Add it to Claude, Cursor or any MCP client through Apify's MCP server, with only this actor loaded:

  • Claude Code: claude mcp add --transport http apify "https://mcp.apify.com/?tools=atlasdataworks/etsy-scraper"
  • Cursor, Claude Desktop and other clients: add this to the client's MCP config:
{ "mcpServers": { "apify": { "url": "https://mcp.apify.com/?tools=atlasdataworks/etsy-scraper" } } }

On first use a browser window opens to sign in to Apify (OAuth), so no token goes into the config. Runs are billed to your Apify account at the prices above. Then ask in plain words, for example:

"Search Etsy for 'personalized necklace' and list the top 100 with their sale price, discount and whether the shop is a Star Seller."

From code, one HTTP call runs it and returns the listings:

curl -X POST "https://api.apify.com/v2/acts/atlasdataworks~etsy-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"searchQueries": ["ceramic mug"], "maxItemsPerQuery": 40}'

FAQ

Is it legal to scrape Etsy? This actor reads only public search and category pages that anyone can open without signing in, and collects listing data and the shop's public business name, not personal data: no owner names, avatars, review text or contact details. Whether your use is allowed depends on your jurisdiction and purpose; check with a lawyer if you are unsure.

Can I search by keyword? Yes: put keywords in searchQueries. Results come in Etsy's default relevance order as a signed-out US visitor sees them. For your own filters (price range, shipping country, sort), set them on a category page in your browser and paste that URL.

Does it return listing detail, variations or reviews? Not yet: this actor reads search and category results. Listing detail is the next feature. Review text is not collected: it carries reviewer names, and this actor collects no personal data.

Which Etsy site and currency? etsy.com as a US visitor sees it, prices in USD.

Do I need a proxy, cookies or an Etsy account? No. Residential access is included in the price.

Can I monitor prices on a schedule? Yes. Save your input as a task and add an Apify schedule; each run is a new dataset you can compare with the last.

Something broke or a field is missing. Open an issue on the actor's Issues tab. Etsy changes its pages; reports get fixed.

Also from Atlas DataWorks

Limits

  • Search and category results only: no listing detail, variations or reviews yet (see the FAQ).
  • Up to 1,000 listings per keyword or URL, and at most 20 result pages (Etsy's own cap on a search); for more, use narrower keywords or split by subcategory or filters.
  • etsy.com only; prices are what a signed-out US visitor sees at run time.