Etsy Search Scraper
Pricing
from $0.50 / 1,000 search results
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
Maintained by CommunityActor 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
| Field | Example |
|---|---|
title | handthrown pottery mug |
productId | 519688604 |
url | https://www.etsy.com/listing/519688604/handthrown-pottery-mug |
isSponsored | false |
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
- Open the Actor in Apify Console.
- Enter one search phrase per line under Search keywords.
- Optional: shop ID, pages, ship-to location, max results.
- 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.
| Event | When it fires | Price |
|---|---|---|
apify-actor-start | Once when the run starts | $0.001 |
apify-default-dataset-item | Once per dataset row (one listing) | $0.0005 ($0.50 / 1,000) |
| Job | Rows | You 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 listings | 700 | $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
| Field | Required | Default | Notes |
|---|---|---|---|
keywords | yes | — | One phrase per line, max 1,000 |
storeId | no | all shops | Numeric shop ID. 0 or empty searches every shop |
pages | no | 1 | 1–10 result pages per keyword |
maxResults | no | all | Hard cap across every keyword |
geoLocation | no | — | ZIP 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, andthumbnailUrlare 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/activatepip install -r requirements.txtcp .env.example .envapify run --input-file=apify_input.json --purge
Changelog
See CHANGELOG.md.