Etsy Scraper — Listings, Prices & Best Sellers
publicrecords--etsy-search-scraperScrape Etsy search, category, or market results by keyword to collect listing titles, prices, ratings, reviews, Bestseller/Star Seller badges, ad flags, and rank for e-commerce research.
Instructions
Etsy Scraper — Listings, Prices & Best Sellers. Scrape Etsy search results by keyword, category or market page: title, price, rating, reviews, Bestseller and Star Seller badges, ad flag and search rank.
When to use: Use when you need what ranks on Etsy for a keyword, category or market page: position, price, rating, review count, Bestseller/Star Seller badges and whether the listing is an ad.
Returns: the run's dataset rows as structured JSON (one row per result), plus the run and dataset IDs for paging the full dataset.
Behavior: starts one run of the Apify Actor "publicrecords/etsy-search-scraper" through Apify's hosted MCP gateway (mcp.apify.com) with your own APIFY_TOKEN; the run uses your Apify account. Read-only: it only reads public web data and changes nothing on the source site. Docs: https://apify.com/publicrecords/etsy-search-scraper
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Order of results, as on Etsy's own sort menu. Applies to search keywords (a market phrase with a sort set runs as a keyword search). Options: relevance = Relevance (Etsy default); newest = Newest; price_asc = Price: low to high; price_desc = Price: high to low; top_reviews = Top customer reviews. | relevance |
| source | No | Optional free-text label for this run (for example the Make template that started it). Copied onto every listing row and onto RUN_SUMMARY so template runs can be filtered. Leave empty if you do not need it. | |
| queries | No | Keywords to search, one per line (e.g. ceramic mug). Each keyword lands on Etsy's /market page, then pages through Etsy's own search API — every listing on the page (rendered and lazy-loaded), in Etsy's rank order. Example: ["ceramic mug"] | |
| ship_to | No | Two-letter code, e.g. US, GB, DE. | |
| maxItems | No | Stop after this many listing rows across all inputs. Raise it (or set 0 for no cap) to get more pages. | |
| maxPages | No | Pages per input, 1–20 (Etsy's own cap). On the Standby/MCP endpoint one call stops at 240 s and says so (truncated:true with pagesDone/pagesRequested); big jobs belong in a batch run. | |
| maxPrice | No | Highest price to include, whole units. Leave empty for no maximum. | |
| minPrice | No | Leave empty for no minimum. | |
| categoryUrls | No | Etsy category pages, e.g. https://www.etsy.com/c/jewelry/necklaces (no query string). Read in Etsy's default order. | |
| fillLazyCards | No | Etsy renders 12 cards and lazy-loads the rest (48 more on page 1). On, the run fetches them the way Etsy's own page does, so you get the whole page in rank order. Off, you get the 12 rendered cards per page only (faster, fewer requests on your proxy). | |
| free_shipping | No | Only return listings with free shipping. | |
| is_discounted | No | Only return listings currently on sale. | |
| marketPhrases | No | Phrases for Etsy's /market/ pages (any phrase resolves). Example: personalized dog collar | |
| is_best_seller | No | Only return listings marked Bestseller. | |
| is_star_seller | No | Only return listings from Star Seller shops. | |
| instant_download | No | Only return digital download listings. | |
| is_handmade_only | No | Only return listings Etsy flags as handmade. | |
| maxCacheAgeHours | No | Serve a keyword from our recent snapshot of the same search when it is at most this many hours old and holds every row you asked for; otherwise fetch live. Snapshot rows say data_source "cache", stale true and as_of (when they were read live), and are charged like live rows. 0 = always fetch live. | |
| is_personalizable | No | Only return listings that offer personalization. | |
| proxyConfiguration | No | Etsy blocks datacenter IPs. Default: Apify Proxy RESIDENTIAL, included in the event prices (no separate proxy or compute charge). Your own residential proxy works too. A blocked page is never charged. | |
| max_processing_days | No | Only return listings whose processing time is at most this many days (Etsy's ready-to-ship filter). |