Etsy Scraper avatar

Etsy Scraper

Pricing

from $2.50 / 1,000 listing extracteds

Go to Apify Store
Etsy Scraper

Etsy Scraper

Search Etsy by keyword and get prices, in-cart counts, last sale time, sponsored vs organic rank, stock, discounts, shop sales and badges. Optional tags, favorites and description. No login. Pay only for results.

Pricing

from $2.50 / 1,000 listing extracteds

Rating

0.0

(0)

Developer

axly

axly

Maintained by Community

Actor stats

7

Bookmarked

140

Total users

11

Monthly active users

5 days ago

Last modified

Share

Etsy Product Scraper — Extract Listings, Prices & Seller Data

Extract Etsy product listings at scale via keyword search. No API key or Etsy login. Every listing comes with the demand signals product researchers look for: how many people have it in their cart right now, when it last sold, whether the placement is a sponsored ad or an organic result, its position in Etsy's results, stock, discount and promotion end time, shop sales and review counts, Bestseller and Star Seller badges. Switch on listing details to also get the 13 tags, materials, favorites and the full description.


What Data You Get

Every result includes:

FieldDescription
listing_id, title, urlListing identity and link
shop_name, shop_url, shop_idSeller shop
priceWhat the buyer pays now (the sale price when a promotion applies)
original_price, discount_percent, promotion_ends_atList price, discount % and when the sale ends (when discounted)
in_cart_countPeople who currently have the listing in their cart
last_sale_atWhen the listing last sold (ISO 8601, UTC)
result_typead (sponsored placement) or organic
search_positionPosition in Etsy's result list for the query (ads included)
quantity, is_sold_outStock
sales_count_estimateThe shop's total sales
review_count, avg_ratingShop review count and average rating
review_photo_count, review_video_countReviews with photos / videos for the listing
is_bestseller, is_star_sellerBadges
is_made_to_order, personalization_available, is_handmade, is_vintage, is_digitalProduct type flags
shipping, shop_locationShipping options and seller location
images, thumbnailImage URLs
currency_code, scraped_atCurrency and extraction time

With Include tags, materials, favorites & description (includeDetails) every row also gets:

FieldDescription
tagsThe listing's 13 seller tags
materialsMaterials
favorites_countNumber of favorites
descriptionFull listing description (plain text)
when_made, ships_from_countryProduction type and ship-from country
details_fetchedtrue when the details were returned

Use Cases

Dropshipping product research

Collect a niche, then filter on is_star_seller, is_bestseller and in_cart_count to build a qualified product list with verified demand signals — without manually browsing Etsy.

Competitor price monitoring

Run the same keyword search on a schedule and track price changes across competitors. Export to Google Sheets via the Apify integration.

Market trend analysis

Compare favorites_count and review_count across categories to identify emerging niches before they saturate.

Feed AI agents and dashboards

Use the Apify MCP server to connect this actor to Claude, ChatGPT, or n8n workflows for on-demand Etsy market intelligence.

Supplier qualification

Find high-volume sellers (high review_count, is_star_seller: true) for potential sourcing partnerships.


How to Use

Set your search parameters in the input and run. No configuration beyond the keywords is required to get results.

Input parameters

ParameterTypeDefaultDescription
keywordsstringrequiredSearch query, e.g. "handmade ceramic mug"
limitinteger100Maximum listings to collect (0 = as many as the run can reach, cap 100,000)
offsetinteger0Deprecated, ignored (Etsy search has no paging)
minPricenumber—Minimum price in USD
maxPricenumber—Maximum price in USD
shipTostring"US"Shipping destination country code (US, GB, CA, AU, etc.)
sortOnenum"score"score (relevance), created_desc (newest first), price_asc, price_desc; best_seller behaves like score
freeShippingbooleanfalseFree-shipping listings only
isDiscountedbooleanfalseOn-sale listings only
instantDownloadbooleanfalseDigital download listings only
includeDetailsbooleanfalseAdd tags, materials, favorites and description to every row (one extra request per listing)

Example input

{
"keywords": "personalized gift",
"limit": 500,
"minPrice": 15,
"maxPrice": 60,
"shipTo": "US",
"sortOn": "score",
"freeShipping": true,
"isDiscounted": false
}

Example Output

{
"listing_id": "4385436268",
"title": "Custom Ceramic Mug, Personalized Name Coffee Cup",
"url": "https://www.etsy.com/listing/4385436268/...",
"shop_name": "VisionCustomTee",
"price": 5.07,
"original_price": 14.5,
"discount_percent": 65,
"promotion_ends_at": "2026-10-08T04:59:59Z",
"in_cart_count": 118,
"last_sale_at": "2026-10-07T22:47:09Z",
"result_type": "ad",
"search_position": 1,
"quantity": 856,
"sales_count_estimate": 34451,
"review_count": 5759,
"avg_rating": 4.85,
"review_photo_count": 31,
"is_bestseller": true,
"is_star_seller": true,
"is_made_to_order": true,
"personalization_available": true,
"tags": ["Personalized Mug", "Custom Ceramic Mug", "Custom Coffee Mug"],
"favorites_count": 449,
"details_fetched": true,
"scraped_at": "2026-10-08T09:13:38Z"
}

tags, favorites_count and details_fetched appear when includeDetails is on. The values come from a real run; the tag list is shortened.

Checkpoint & Resume

For large runs, the actor saves its progress after each page. If a run is interrupted, re-run with the same keywords input and the actor will automatically continue from where it stopped — no duplicate data, no lost progress.


Automate with Scheduling & Webhooks

Schedule recurring runs to track price trends or monitor new listings:

  1. Open your actor run → Schedule tab
  2. Set a CRON expression, e.g. 0 8 * * 1 for every Monday at 8am
  3. Configure a webhook to POST results to your endpoint or trigger a Make.com / Zapier workflow

API trigger example:

curl -X POST "https://api.apify.com/v2/acts/axlymxp~etsy-scraper/runs" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"keywords": "handmade candle", "limit": 1000}'

Use with AI Agents (MCP)

This actor is available on Apify's MCP Server. Connect it to Claude, ChatGPT, or any MCP-compatible AI agent to enable on-demand Etsy market research inside your AI workflows.

Configure at: mcp.apify.com

Example agent prompt:

"Find the top 20 best-selling personalized jewelry listings on Etsy under $50 with free shipping."


FAQ

Does this actor work without an Etsy API key? Yes. This actor accesses Etsy's publicly available marketplace data without requiring an Etsy developer account or API key.

Can I filter by free shipping, discounts, or digital products? Yes. Use the freeShipping, isDiscounted, and instantDownload input parameters.

What countries does the data cover? Etsy is a global marketplace. Use the shipTo parameter to filter by shipping destination (US, GB, CA, AU, DE, FR, and any other ISO country code).

Does the actor resume if a run is interrupted? Yes. The actor saves a checkpoint after every batch of listings. Re-run with the same search input to continue; listings already delivered are not pushed or charged again.

How many listings can I get for one keyword? Etsy's app search answers about 36 listings per request and has no paging. The actor therefore slices the search into price bands and combines relevance, newest-first and price-order searches, removing duplicates, to reach more listings. Popular keywords can reach thousands of distinct listings per run; narrow keywords have fewer, and the run ends with a status message when Etsy has nothing more to reveal. With the default sort the first rows are Etsy's own first results, followed by the top results of each price band and then deeper rankings. search_position is Etsy's real rank for those first results and is left out for listings found through the newest-first or price-band searches.

What do in_cart_count, last_sale_at and result_type tell me? in_cart_count is how many shoppers currently have the listing in a cart, last_sale_at is when it last sold, and result_type shows whether Etsy served the result as a sponsored ad or an organic result. Together they show which products are selling right now and who is paying for placement.

Why can the same listing appear twice? Etsy can show a listing once as an ad and once as an organic result. Filter on result_type or de-duplicate on listing_id if you only want one row per listing.

What are is_star_seller and is_bestseller? is_star_seller reflects Etsy's Star Seller badge (awarded to shops with consistently high ratings and fast shipping). is_bestseller is the orange Bestseller badge on individual listings. Both are strong signals for dropshipping qualification.

Is this legal to use? This actor scrapes publicly available data from Etsy.com. Use in accordance with Etsy's Terms of Service and applicable laws.

How is this different from using the Etsy API? The official Etsy API requires developer registration and has strict rate limits. This actor does not require an API key and can extract at much higher volume for market research purposes.