curl --request POST \
--url https://api.scrapeunblocker.com/marketplace/etsy-product \
--header 'x-scrapeunblocker-key: <api-key>'import requests
url = "https://api.scrapeunblocker.com/marketplace/etsy-product"
headers = {"x-scrapeunblocker-key": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {'x-scrapeunblocker-key': '<api-key>'}};
fetch('https://api.scrapeunblocker.com/marketplace/etsy-product', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Scrape one Etsy listing's full detail
Fetches one Etsy listing (by listing_id or url) and returns it as JSON: listingId, title, price (the lowest price when variations differ, priceMax the highest), originalPrice / onSale / discountPercent / saleEnds during a sale, currency and shopperRegion, availability and quantityAvailable, rating and reviewCount, reviewSummary (item quality, shipping and service scores, recommend percentage, review tags and categories), the first reviews, shop (name, id, owner, location, rating, review count, sales, years on Etsy, Star Seller), variations (each menu with its options and their prices), description, materials, highlights, category, shipping (cost, origin, ships from, estimated delivery, processing time, returns), images and video.
Prices, shipping cost and VAT follow the shopper location Etsy assigns to the request, which can differ from proxy_country: currency and shopperRegion say which one a response used (e.g. EUR / BE), so read them before comparing prices. Shop review and sales counts are Etsy’s rounded figures (“4.7k sales” is 4700). Companion to /marketplace/etsy-search.
curl --request POST \
--url https://api.scrapeunblocker.com/marketplace/etsy-product \
--header 'x-scrapeunblocker-key: <api-key>'import requests
url = "https://api.scrapeunblocker.com/marketplace/etsy-product"
headers = {"x-scrapeunblocker-key": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {'x-scrapeunblocker-key': '<api-key>'}};
fetch('https://api.scrapeunblocker.com/marketplace/etsy-product', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
Your ScrapeUnblocker API key. Apply on every request.
Query Parameters
Etsy listing number, e.g. '1702915637' (the number in etsy.com/listing/1702915637/...).
Instead of listing_id: an etsy.com listing link, e.g. https://www.etsy.com/listing/1702915637/solstice-mug.
Proxy country the request is sent from (ISO-2). Defaults to US. Etsy prices in the currency of the shopper location it assigns, which can differ from this country; currency and shopperRegion say which one a response used.
Response
JSON with the full listing record under product.

