Etsy Search Scraper avatar

Etsy Search Scraper

Pricing

from $4.99 / 1,000 results

Go to Apify Store
Etsy Search Scraper

Etsy Search Scraper

Turn any Etsy search URL into a structured dataset — prices, ratings, sale flags, seller info, and more. Paste your filtered search URL and get results in seconds.

Pricing

from $4.99 / 1,000 results

Rating

0.0

(0)

Developer

CRW

CRW

Maintained by Community

Actor stats

1

Bookmarked

3

Total users

1

Monthly active users

2 hours ago

Last modified

Share

Extract product listings from any Etsy search — with prices, ratings, sale flags, and seller data — in minutes, no coding required.

Just paste an Etsy search URL. Get a clean dataset. Export to CSV, JSON, or connect to your workflow.


Who is this for?

E-commerce sellers & brand managers — Monitor competitor pricing, spot trending products, and benchmark your listings against the market before launching.

Market researchers & analysts — Track pricing shifts, category trends, and seller saturation across thousands of Etsy listings at scale.

Dropshippers & product sourcers — Find high-rated, low-competition products with sale pricing and review data in one sweep.

Agencies & freelancers — Deliver Etsy market reports to clients without manual copy-paste or expensive data subscriptions.


What you get

Every listing returned includes:

FieldDescription
titleProduct name
priceCurrent sale price
original_pricePre-discount price (when on sale)
discount_pctDiscount percentage (e.g. "33% off")
currencyCurrency code
free_shippingWhether free shipping is offered
ratingStar rating (0–5)
review_countNumber of reviews
shop_nameSeller shop name
shop_urlLink to the seller's shop
is_adWhether the listing is a paid ad
is_saleWhether the listing is on sale
urlDirect link to the product page
image_urlProduct thumbnail image
listing_idEtsy listing ID
shop_idEtsy shop ID
search_urlThe search URL this result came from

Sample output:

{
"listing_id": "1234567890",
"title": "Personalized Wedding Gift Box for Couple",
"price": "34.99",
"original_price": "52.00",
"discount_pct": "33% off",
"currency": "USD",
"free_shipping": true,
"rating": 4.9,
"review_count": 2847,
"shop_name": "WoodlandGiftCo",
"is_ad": false,
"is_sale": true,
"url": "https://www.etsy.com/listing/1234567890/...",
"search_url": "https://www.etsy.com/search?q=wedding+gift&order=most_relevant"
}

Getting started

Go to Etsy, type a keyword in the search box, apply your filters (category, price range, sort order — anything), then copy the full URL from your browser address bar.

Important: The URL must include a search keyword (the q= part). Browse-only or category URLs without a search term will not work. For example:

  • https://www.etsy.com/search?q=frog+mug&order=highest_reviews
  • https://www.etsy.com/search?order=highest_reviews (missing keyword)
  • frog mug (paste the URL, not the keyword itself)

2. Run the scraper

Paste the URL into the Search List input. Set how many results you want (10–1,000 per URL). Click Start.

3. Export your data

Download as CSV, Excel, or JSON — or connect directly to Google Sheets, Zapier, or your own pipeline via the Apify API.


Input

Search List (searches)

Paste one or more Etsy search URLs. Every filter you set in the browser — category, price range, sort order — is captured in the URL and respected by the scraper.

Plain URL (simplest):

https://www.etsy.com/search?q=wedding+gift
https://www.etsy.com/search/home-and-living?q=candle&min=10&max=50&order=price_asc

With per-URL result limit:

[
{ "url": "https://www.etsy.com/search?q=wedding+gift", "maxResults": 200 },
{ "url": "https://www.etsy.com/search?q=candle&min=10", "maxResults": 50 }
]

Both formats can be mixed in the same list.

Parameters

ParameterDefaultDescription
searchesrequiredList of Etsy search URLs
maxResults100Max results per URL (10–1,000)
maxSearchPages10Max pages per URL (~48 results/page)

For developers

JavaScript / Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('YOUR_ACTOR_ID').call({
searches: [
{ url: 'https://www.etsy.com/search?q=wedding+gift&order=most_relevant', maxResults: 200 },
{ url: 'https://www.etsy.com/search?q=candle&min=10&max=50', maxResults: 100 },
],
maxResults: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("YOUR_ACTOR_ID").call(run_input={
"searches": [
{ "url": "https://www.etsy.com/search?q=wedding+gift", "maxResults": 200 },
],
"maxResults": 100,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

CLI

apify call YOUR_ACTOR_ID -i '{
"searches": ["https://www.etsy.com/search?q=wedding+gift"],
"maxResults": 100
}'

Use cases

  • Price monitoring — Track competitor prices across a category weekly and alert when they drop below your threshold
  • Product research — Find best-selling items by rating + review count before launching a new product line
  • Trend detection — Identify which products have sale flags or ad placements in your niche
  • Market reports — Aggregate listings across multiple keywords to build category-level intelligence for clients
  • Inventory scouting — Find high-margin wholesale opportunities by filtering for price ranges and seller ratings

FAQ

Does this require an Etsy account or API key? No. Just paste the search URL and run.

What counts as a valid URL? A full Etsy search URL that includes a keyword — the q= parameter. Go to etsy.com, type your search term, apply any filters, then copy the URL from the address bar. Do not paste a keyword like frog mug directly — it must be a URL.

How many results can I get per search? Up to 1,000 results per URL (~48 per page, up to 10 pages by default).

Can I apply filters like price range, category, or sort order? Yes — all Etsy search filters are URL-based. Set them in your browser, copy the URL, paste it in. The scraper respects all filters.

Can I scrape multiple searches at once? Yes. Add multiple URLs to the Search List — each runs independently with its own result limit.

What happens if a listing is an ad? It's still collected, and the is_ad field is set to true so you can filter it out downstream.