Operated by Sourcelane✓ verified
Scrape Etsy search results, shops and product listings: prices, sales, ratings, reviews, bestseller and ad flags, variations, favorites and shop stats.
A web-scraping connector that extracts structured product, shop and listing data from Etsy search results, shop profiles and individual product pages for market research and monitoring. It captures product metadata (titles, images, pricing and sale discounts, currency, price ranges, quantity/availability), product content (full descriptions, category paths, materials, item highlights/specifications, image URLs), listing dynamics (variations with option-level pricing, favorites count, demand signals, in-cart signals), seller and shop metrics (shop name, location, total sales, admirers, ratings and review counts, years on Etsy, shop sections and listing counts, owner/staff info, announcements and recent activity), and marketplace flags/badges (sponsored ads, bestseller, Etsy’s picks, star seller, free shipping, digital download). The connector also extracts review data (overall rating, recent reviews, sub-ratings and review highlight tags), search-specific signals (search ranking position, color swatches, badge labels and total result counts for keywords), and supports multi-page crawling and per-item/per-shop record generation for downstream analysis.
Verified Oct 25, 10:11 PM
$0.002
per result
Up to 100 per call. Only pay for results returned; failed calls are refunded.
Etsy product research
Identify best-selling and trending products in a niche before launching.
Competitor analysis
Track competing shops’ sales, prices, discounts and new listings.
Price monitoring
Monitor prices and sales on keywords or shops over time.
Etsy SEO and ads research
Determine which listings rank for a keyword and which are displayed as sponsored ads.
Lead generation
Build lists of Etsy sellers in a category with sales, location and ratings.
Search mode: keywords to search on Etsy, one per line (e.g.
Shop mode: Etsy shop names or shop URLs, one per line (e.g.
Listing mode: Etsy listing URLs or numeric listing IDs, one per line (e.g.
Optional settings
| Window | Uptime | Success rate | p50 | p95 | Calls |
|---|---|---|---|---|---|
| 24h | — | — | — | — | 0 |
| 7d | — | — | — | — | 0 |
| 30d | — | — | — | — | 0 |
Call it through Sourcelane's gateway or MCP server. We run the connector, apply your agent's spend guardrails, and bill only the results returned.
Call it via Sourcelane
curl -X POST https://api.usesourcelane.com/v1/call \
-H "Authorization: Bearer sl_live_your_agent_key" \
-H "Content-Type: application/json" \
-d '{"listing":"etsy-scraper","params":{"searchQueries":["leather wallet"],"maxItems":5},"maxResults":10}'Request params
| Field | Type | Required | Description |
|---|---|---|---|
mode | string | optional | Search returns one row per product in Etsy search results. Shops returns a shop profile row plus one row per shop listing. Listing details returns the full product page for each listing URL. |
searchQueries | array | optional | Search mode: keywords to search on Etsy, one per line (e.g. 'leather wallet'). You can also paste a full Etsy search URL to reuse its filters. |
sortBy | string | optional | Search mode: order of search results. |
minPrice | integer | optional | Search mode: only include items priced at or above this amount. |
maxPrice | integer | optional | Search mode: only include items priced at or below this amount. |
freeShipping | boolean | optional | Search mode: only include items with free shipping to the US. |
onSale | boolean | optional | Search mode: only include discounted items. |
shops | array | optional | Shop mode: Etsy shop names or shop URLs, one per line (e.g. 'CaitlynMinimalist' or https://www.etsy.com/shop/CaitlynMinimalist). |
includeShopListings | boolean | optional | Shop mode: also return the shop's listings (one row each) after the shop profile row. Turn off to get only shop profiles. |
listings | array | optional | Listing mode: Etsy listing URLs or numeric listing IDs, one per line (e.g. https://www.etsy.com/listing/990762977). |
maxItems | integer | optional | Search mode: max results per keyword. Shop mode: max listings per shop. Listing mode: max listings in total. 0 = no limit. Capped at 100 per call. |
pageId | string | optional | Search mode: paste NEXT_PAGE_ID from the previous run's Key-value store to continue from the next page of results. |
Each result contains
| Field | Type | Description |
|---|---|---|
recordType | string | — |
input | string | — |
shopId | string | — |
shopName | string | — |
url | string | — |
title | string | — |
description | string | — |
location | string | — |
logoUrl | string | — |
bannerUrl | string | — |
rating | integer | — |
reviewCount | integer | — |
salesCount | integer | — |
admirersCount | integer | — |
onEtsySince | integer | — |
isStarSeller | boolean | — |
ownerName | string | — |
ownerUserId | string | — |
members | array | — |
announcement | string | — |
announcementUpdatedAt | string | — |
lastActivityAt | string | — |
totalListings | integer | — |
sections | array | — |
currency | string | — |
scrapedAt | string | — |
Pick your tool and connect in under a minute. Then just ask — for example: “Track the price of these 20 grocery items at Woolworths and Coles every week.”
Connect Claude
Web, desktop and mobile. One click, then confirm.
Adds the Sourcelane MCP server with your key as a header.
claude mcp add --transport http sourcelane https://api.usesourcelane.com/mcp \
--header "Authorization: Bearer sl_live_your_agent_key"Alternative to the connector URL: add to claude_desktop_config.json, then restart Claude.
{
"mcpServers": {
"sourcelane": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://api.usesourcelane.com/mcp",
"--header",
"Authorization:${AUTH_HEADER}"
],
"env": {
"AUTH_HEADER": "Bearer sl_live_your_agent_key"
}
}
}
}Add to ~/.cursor/mcp.json (or Windsurf's mcp_config.json).
{
"mcpServers": {
"sourcelane": {
"url": "https://api.usesourcelane.com/mcp",
"headers": {
"Authorization": "Bearer sl_live_your_agent_key"
}
}
}
}Save as .vscode/mcp.json. VS Code prompts for your key once.
{
"servers": {
"sourcelane": {
"type": "http",
"url": "https://api.usesourcelane.com/mcp",
"headers": {
"Authorization": "Bearer ${input:sourcelane-key}"
}
}
},
"inputs": [
{
"type": "promptString",
"id": "sourcelane-key",
"description": "Sourcelane agent key",
"password": true
}
]
}Create a GPT → Actions → Import from URL, then Authentication: API Key, Bearer.
https://usesourcelane.com/openapi.jsonOne POST. Pass maxResults to cap cost.
curl -X POST https://api.usesourcelane.com/v1/call \
-H "Authorization: Bearer sl_live_your_agent_key" \
-H "Content-Type: application/json" \
-d '{"listing":"etsy-scraper","params":{"searchQueries":["leather wallet"],"maxItems":5},"maxResults":10}'Wrap the REST call as a tool, or point an MCP client at the endpoint.
import requests
res = requests.post(
"https://api.usesourcelane.com/v1/call",
headers={"Authorization": "Bearer sl_live_your_agent_key"},
json={
"listing": "etsy-scraper",
"params": {"searchQueries":["leather wallet"],"maxItems":5},
"maxResults": 10,
},
timeout=300,
)
body = res.json()
print(body["receipt"]["chargedMicros"], "micro-USD for", body["receipt"]["results"], "results")
print(body["data"])—
0 reviews
Leave a review
Loading reviews…