Etsy Search Scraper avatar

Etsy Search Scraper

Pricing

from $0.50 / 1,000 search results

Go to Apify Store
Etsy Search Scraper

Etsy Search Scraper

Search Etsy by keyword and export listing ID, title, price, shop name, thumbnail, and listing URL.

Pricing

from $0.50 / 1,000 search results

Rating

0.0

(0)

Developer

datacortex

datacortex

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 hours ago

Last modified

Categories

Share

Search Etsy by keyword and export listing ID, title, price, shop name, thumbnail, and listing URL. One dataset row per listing — ready for CSV, Excel, or JSON.

Built for Apify Console, API, MCP agents, and integrations (Make, Zapier, n8n). This Actor searches Etsy. It does not open listing-detail pages or pull reviews.

What you get

FieldExample
titlehandthrown pottery mug
productId519688604
urlhttps://www.etsy.com/listing/519688604/handthrown-pottery-mug
isSponsoredfalse

One keyword on page 1 typically returns ~40–64 listings. Extra pages add more rows.

Sample output

Live row from ceramic mug handmade:

{
"query": "ceramic mug handmade",
"type": "organic",
"productId": "519688604",
"title": "handthrown pottery mug",
"url": "https://www.etsy.com/listing/519688604/handthrown-pottery-mug",
"isSponsored": false,
"page": 1,
"position": 1
}

How to run

  1. Open the Actor in Apify Console.
  2. Enter one search phrase per line under Search keywords.
  3. Optional: shop ID, pages, ship-to location, max results.
  4. Click Start. Open the Output tab when the run finishes.

Example input

{
"keywords": ["ceramic mug handmade"],
"pages": 1,
"maxResults": 20
}

API

curl -X POST "https://api.apify.com/v2/acts/datacortex~etsy-search-scraper/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"keywords":["ceramic mug handmade"],"pages":1}'

Replace YOUR_TOKEN with an Apify API token.

Use with MCP / agents

This is a normal Apify Actor. Agents call it through Apify MCP — you do not run a separate MCP process.

Pin this Actor as a tool (after it is public):

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=datacortex/etsy-search-scraper"
}
}
}

The agent should fetch-actor-details on datacortex/etsy-search-scraper, then run it with the same JSON as Example input above. Running Actors requires an Apify token (OAuth in the client, or Authorization: Bearer <APIFY_TOKEN>).

Pricing

$0.50 per 1,000 results + $0.001 per run.

EventWhen it firesPrice
apify-actor-startOnce when the run starts$0.001
apify-default-dataset-itemOnce per dataset row (one listing)$0.0005 ($0.50 / 1,000)
JobRowsYou pay
1 keyword, 1 page (~20)20$0.001 + $0.010 = $0.011
10 keywords, 1 page~200$0.001 + $0.100 = $0.101
1 keyword, ~700 listings700$0.001 + $0.350 = $0.351

Set a max total charge per run so a long keyword list cannot overrun budget. The Actor stops when that limit is reached.

Input reference

FieldRequiredDefaultNotes
keywordsyesOne phrase per line, max 1,000
storeIdnoall shopsNumeric shop ID. 0 or empty searches every shop
pagesno11–10 result pages per keyword
maxResultsnoallHard cap across every keyword
geoLocationnoZIP or 2-letter country code, e.g. 10001 or US

Limitations

  • Search-result cards only. This Actor does not fetch full listing details, variations, or customer reviews.
  • Title, listing ID, and URL are always written when a listing card is found. price, currency, sellerName, and thumbnailUrl are included when the search HTML exposes them.
  • Duplicate listing IDs across pages are kept once. Organic listings are written before ads when an Ad / sponsored label is detected.
  • Failed keywords write one type: "error" row so you can see which term failed.

Local development

python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
apify run --input-file=apify_input.json --purge

Changelog

See CHANGELOG.md.