Etsy Scraper: Public Listing and Shop Pages via API
ProxyField's Web Scraping API is an Etsy scraper you pay per page: it fetches public Etsy listing, search and shop pages for $0.50 per 1,000 successful results over plain HTTP, from $0.20 at volume, or $2.00 per 1,000 with JS rendering. Contact sales for the API, or run your own Etsy scraper on ProxyField residential proxies and start with the Easy Trial: 1 GB for $2.95, no minimum purchase.
Through the sales team on our 24/7 live chat
| Fetch | Entry | Volume, from |
|---|---|---|
| HTTP | $0.50 | $0.20 |
| JS rendering | $2.00 | $1.00 |
Billed on successful results only.
Etsy pages and the data on them
Etsy is a marketplace of independent shops, so research usually starts with a search, moves to listings and ends at shops. The Web Scraping API fetches each URL and returns the page; your parser, or the Python below, reads the fields. ProxyField sells no separate Etsy API with pre-parsed fields.
| Page | URL pattern | What a logged-out visitor sees |
|---|---|---|
| Search results | etsy.com/search?q=<query>&page=2 | Listings in ranking order, prices, sale prices, ad labels, star ratings, shop names |
| Listing page | etsy.com/listing/<id>/<slug> | Title, price, variations, shipping and processing time, stock notes, rating, review count, item details, photos |
| Shop page | etsy.com/shop/<ShopName> | Shop name, location, number of sales, star rating, active listings, sections, shop reviews |
| Category pages | etsy.com/c/<category> | Listings of a category with filters and prices |
| Reviews | on listing and shop pages | Star rating, text, date, item reviewed |
Etsy shows prices in the visitor's currency and shipping for the visitor's country, so fetch from the country whose view you need. Shop owners and reviewers are often private people: collect their names only if your purpose needs them. The API returns the page itself as HTML, Markdown or plain text, or a JSON envelope with the status code, the final URL, the headers, the cookies and the content; it has no parsed Etsy fields, so your parser reads them.
The Etsy API or a scraper?
Etsy's Open API v3 returns listings, shops and reviews as fields to registered apps with an API key, within Etsy's request limits and its API terms on how the data may be used. It suits sellers and tools that work with their own shop. For market research across other shops' listings, search rankings and what buyers see on the page, teams scrape the public pages.
| Item | Etsy Open API v3 | Web Scraping API |
|---|---|---|
| Access | API key for a registered app | ProxyField account, no Etsy key |
| Data | Fields Etsy exposes for listings, shops, reviews | Any public search, listing, shop or category page |
| Search ranking and ad labels | Not as buyers see them | Yes, as shown on the page |
| Limits | Request limits set by Etsy | Billed per 1,000 successful results |
How a request works
You send an Etsy URL and pick plain HTTP or JS rendering; the API returns the page. The API takes a POST to https://api.proxyfield.io/v1/scrape with your API key in an Authorization: Bearer <api_key> header and a JSON body: url, render (false for plain HTTP, true for JS rendering), country and output (html, markdown, text or json). country sets the country the request comes from as a two-letter code, which sets Etsy's currency and shipping; the countries it accepts: the proxy pool's 195+ countries. Parameter reference: API documentation.
# The request the Web Scraping API takes (access through Contact sales)
curl https://api.proxyfield.io/v1/scrape \
-H "Authorization: Bearer <api_key>" \
-H "Content-Type: application/json" \
-d '{"url": "https://www.etsy.com/search?q=ceramic+mug&page=2", "render": false, "country": "us", "output": "json"}'Example response (shortened; content is the page's HTML):
{
"metadata": {"id": "req_3b9d02e7f4c1a865", "api": "web_scrape", "status": "success", "billed": true},
"status_code": 200,
"final_url": "https://www.etsy.com/search?q=ceramic+mug&page=2",
"content_type": "text/html; charset=utf-8",
"content": "<!DOCTYPE html><html lang=\"en-US\">…</html>"
}A search you would send looks like https://www.etsy.com/search?q=ceramic+mug&page=2; q is the keyword and page moves through the results.
Pricing: $0.50 per 1,000 Etsy pages, from $0.20
| Mode | Price per 1,000 successful results | Use it for |
|---|---|---|
| Plain HTTP | $0.50, from $0.20 at volume | Listing, shop and search pages that carry their data in the HTML |
| JS rendering | $2.00, from $1.00 at volume | Content that loads only after the page's scripts run |
| Workload (30-day month) | Pages a month | HTTP $0.50 | HTTP $0.20 | JS $2.00 | JS $1.00 |
|---|---|---|---|---|---|
| 5,000 listings, price and rating daily | 150,000 | $75 | $30 | $300 | $150 |
| 500 shops with about 40 listings each, once a month | 20,000 | $10 | $4 | $40 | $20 |
| 200 keywords, first 5 search pages, weekly (4 runs) | 4,000 | $2 | $0.80 | $8 | $4 |
You pay only for successful results. The volume price starts at 10,000 successful results in one purchase.
Billed: a page Etsy answered with a 2xx status. Not billed: blocked requests, timeouts and errors on our side; a blocked request is retried on new IPs, and the retries are not billed. Every response says whether it was billed. A target's 404 or 410, and a sign-in page the site serves with a 200 status, count as billed results. Contact sales through the sales team on our 24/7 live chat.
Payment and balance for the API: the same crypto balance as proxies, which never expires; there is no subscription or monthly fee. All prices: pricing.
Through the sales team on our 24/7 live chat
Why Etsy blocks scrapers
Etsy screens its traffic for bots. A burst of requests from one IP, a datacenter range or a client without browser headers gets a captcha page or a 403 instead of the listing. Space requests a few seconds apart per IP, rotate residential IPs, send complete browser headers and check every page for a price before you store it. With the Web Scraping API you pay only for successful results.
What Etsy data is used for
- Product research which niches have demand, how many listings compete and at which prices.
- Pricing where your listings sit against similar items, including sales and shipping.
- Search visibility where your listings rank for the keywords buyers use.
- Shop benchmarking sales counts, ratings and assortment of shops in your niche.
- Review analysis what buyers praise and complain about in a category.
For the same work across other stores, see the ecommerce scraper and price scraping.
Scrape Etsy with Python and ProxyField proxies
Etsy listing pages have carried schema.org data (JSON-LD) with the name, price, currency and rating, so the script reads that block through a rotating residential IP.
import json
import requests
from bs4 import BeautifulSoup
proxy = "http://<login>-country-us-city-new_york:<password>@gate.proxyfield.io:7000"
url = "https://www.etsy.com/listing/1234567890/example-ceramic-mug"
resp = requests.get(url, proxies={"http": proxy, "https": proxy}, timeout=30,
headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)",
"Accept-Language": "en-US,en;q=0.9"})
soup = BeautifulSoup(resp.text, "html.parser")
found = False
for tag in soup.select('script[type="application/ld+json"]'):
data = json.loads(tag.string or "{}")
for item in data if isinstance(data, list) else [data]:
if item.get("@type") == "Product":
offer = item.get("offers") or {}
offer = offer[0] if isinstance(offer, list) else offer
rating = item.get("aggregateRating") or {}
print(item.get("name"), offer.get("price") or offer.get("lowPrice"),
offer.get("priceCurrency"), rating.get("ratingValue"), rating.get("reviewCount"))
found = True
if not found:
print("no Product data: blocked, or needs JS rendering")-
Collect listing URLs from the search pages for your keywords (
q,page). -
Fetch each listing through
gate.proxyfield.io:7000, a few seconds apart per IP. -
Read price, currency and rating from the JSON-LD; parse the HTML for shipping and variations.
-
Store each run with its date, so prices and rankings compare over time.
ProxyField residential proxies give you 412M+ residential IPs in 195+ countries, targeting by country, region (state) and city, a new IP on every request or a sticky session from 30 s to 36 h. They cost $2.95/GB for 1 GB and from $1.95/GB at volume; the traffic never expires, and all purchases are final.
Etsy's terms and the law
Etsy's terms of use restrict automated access to its site, and its API terms set their own rules for data taken through the API. Scraping public pages therefore breaches Etsy's terms, separate from whether it breaks a law. Listing photos and descriptions belong to the sellers and can be protected by copyright, and shop owners' and reviewers' names are personal data under EU and UK law. Collect facts and only the personal data you need; the full answer is in Is It Legal to Scrape eBay, Walmart, Zillow and Other Marketplaces?. This is not legal advice.
ProxyField's rule for every site: public pages only, and follow the site's terms.
More scrapers
- eBay scraper and Amazon scraper API: the other big marketplaces; Amazon on its own API at $0.60 per 1,000 successful results, from $0.30.
- Wayfair scraper and AliExpress scraper on the same Web Scraping API.
- Review scraper API: review pages from many sites.
- All scrapers: scrapers.
Etsy Scraper FAQ
24/7 support by live chat, including help with setup and integration.
What is an Etsy scraper?
ProxyField's Etsy scraper is its Web Scraping API on Etsy pages: it fetches public listing, search and shop pages for $0.50 per 1,000 successful results, from $0.20 at volume. Generally, an Etsy scraper is a script or service that collects listing prices, ratings, shop data and search rankings from etsy.com.
Can you scrape Etsy?
Technically yes: listing, search and shop pages are public and carry their data in the page. Etsy's terms restrict automated access and its bot checks block fast traffic, so a scraper has to go slowly, rotate residential IPs and collect only what you need.
How do I scrape Etsy search results for a keyword?
Fetch etsy.com/search?q=<keyword> and the following pages with &page=2, &page=3, read each listing's link, price and position, and store them with the date. Fetch the listings themselves only for the details search results lack.
Does Etsy have a public API for listing data?
Yes: Etsy's Open API v3 gives registered apps with an API key access to listings, shops and reviews, within request limits and Etsy's API terms. It is built for sellers and the tools they use, not for buyer-view research such as search rankings.
What does the Etsy API return compared with scraping?
The API returns the fields Etsy chooses to expose, such as a listing's title, price, quantity and tags, for the shops and listings you query. Scraping returns the public page as a buyer sees it, including search positions, ad labels and the shipping and currency shown for a country.
Does an Etsy scraper need an Etsy API key?
No: a scraper reads public pages, so it needs no API key and no Etsy login. An API key is needed only if you use Etsy's own Open API instead.
What Etsy data can you extract?
From listings: title, price, sale price, variations, shipping and processing time, rating and review count. From search pages: the ranking order and ad labels; from shop pages: the shop's location, sales count, rating and active listings; plus review text and dates.
What does an Etsy scraping run cost?
On ProxyField's Web Scraping API, $0.50 per 1,000 successful results over plain HTTP, from $0.20 at volume, and $2.00 per 1,000 with JS rendering. A monthly snapshot of 500 shops with about 40 listings each is 20,000 pages: $10 over plain HTTP.
Does Etsy allow data extraction?
Through its Open API, under its API terms, yes. Automated collection from the website itself is restricted by Etsy's terms of use, which a scraper breaches even on public pages; whether it breaks a law is a separate question, and this is not legal advice.
How do I avoid Etsy blocks?
Keep each IP to one request every few seconds, rotate residential IPs, send the headers a real browser sends and stop to back off when you see a captcha page or a 403. Check every page for a price before you store it, so blocked pages never become empty rows.
Show 8 more questionsShow fewer questions
How often can I scrape Etsy?
As often as your question needs and Etsy tolerates: daily for prices and rankings you actively track, weekly or monthly for market snapshots. Spreading a run over hours and many IPs is gentler on the site than one burst.
Do I need proxies to scrape Etsy?
For a few pages, no. For hundreds or thousands of listings, yes: Etsy blocks repeated requests from one IP, and datacenter IPs earlier than residential ones, so rotating residential proxies spread the run over many IPs.
What are Etsy proxies?
Proxies used to send Etsy requests from IPs and countries other than your own, for scraping or for checking what buyers in another country see. ProxyField residential proxies cost $2.95/GB for 1 GB and from $1.95/GB at volume, with targeting by country, region (state) and city.
Can I scrape Etsy reviews for research?
Yes: listing and shop pages show reviews with the star rating, text and date, page by page. For research, keep the rating, text and date and drop reviewer names unless you need them, since they are personal data.
Can I use the same scraper for Etsy and Amazon listings?
The fetching part, yes: proxies and the Web Scraping API work on any URL. The parser differs per site, so keep one parser per marketplace and map them to a shared set of fields such as title, price, rating and seller.
What do sellers use Etsy data for?
To find niches with demand and few competitors, price new listings against similar items, check where their listings rank for buyers' keywords, and learn from reviews of competing products.
How can I export Etsy data into Excel or Google Sheets for price tracking?
Have your scraper write one row per listing and date, with the URL, title, price, currency and rating, to a CSV file that Excel or Google Sheets opens. Append each daily run to the same file or table, then chart the price per listing over time.
Do I need to log in to scrape Etsy?
No: search, listing and shop pages are public, and a scraper should not sign in. Anything only visible inside an Etsy account, such as messages or orders, is out of scope.
Related pages
Collect Etsy pages with the Web Scraping API
Billed on successful results only. Contact sales for the Web Scraping API and the volume you need, or run your own scraper on residential proxies. 24/7 live chat helps with setup and integration.