Etsy Shop Analyzer API - Prices, Tags & Bestsellers
Pricing
from $10.00 / 1,000 listings
Etsy Shop Analyzer API - Prices, Tags & Bestsellers
Analyse any Etsy shop from its listings: price range, median and spread in USD, total favourites, how many listings Etsy flags as bestsellers, how many are digital, the categories it sells into and the SEO tags it leans on. Pay per listing, no run-start fee.
Pricing
from $10.00 / 1,000 listings
Rating
0.0
(0)
Developer
Blackcube
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
6 days ago
Last modified
Categories
Share
| Etsy Research Suite • 10 Actors, one codebase, one listing billed once | ||
| Etsy Scraper API Listings, Prices, Tags & Keywords | Etsy Product Research Tool Demand, Price & Tag Data | Etsy Keyword Research Tool Ranked Search Suggestions |
| Etsy SEO Tool Tags, Titles & Keywords That Rank | Etsy Long Tail Keywords Generator A-Z Suggestions | Etsy Competitor Research Tool Track Rival Shops |
| Etsy Shop Analyzer API ➤ You are here | Etsy Price Tracker API Monitor Prices on a Schedule | Etsy Tags Scraper All 13 Tags From Any Listing |
| Etsy Print on Demand Research Digital & POD Niches | ||
More from this account: YouTube Transcript Suite · Website Contact & Email Suite · Career Site & ATS Jobs Suite · Google News Suite · Keyword Research Suite · Shopify Store Intelligence Suite · eBay Data Suite · Amazon Reviews Suite · Reddit · Meta Ad Library · Vinted · Trustpilot Review Intelligence Suite · App Store & Google Play Reviews Suite · YouTube Comments Intelligence Suite · Telegram Channel Intelligence Suite · Business Reviews Suite · Google Trends Suite · Amazon Product Data Suite · Polymarket Order Book · Nordic Marketplaces Suite · Google Sheets Suite · TikTok Suite · Snapchat Suite · LinkedIn Public Data Suite · Instagram Suite · Contact Validation Suite · Google Maps Suite · X / Twitter
Analyse any Etsy shop from its listings: price range, median and spread in USD, total favourites, how many listings Etsy flags as bestsellers, how many are digital, the categories it sells into and the SEO tags it leans on. Pay per listing, no run-start fee.
No Etsy account. No API key. No run-start fee — a run that finds nothing costs nothing.
What you get
| Field | What it is |
|---|---|
title | The listing title, exactly as it appears on Etsy |
priceUsd | Price normalised to US dollars, on every row whatever storefront you read |
price, currency | Price in the run's locale currency (US dollars with the default en-US) |
priceUsdMin, priceUsdMax | The cheapest and dearest option in US dollars, when the price varies by size, colour or set |
soldOutOptions | Options Etsy marks unavailable, e.g. Size: XL |
favorites | How many shoppers have favourited the listing — the demand signal |
views, isBestseller, isTopRated | null unless Etsy's listing data carries them: view counts and badges sit on Etsy's search pages, which this Actor does not read |
tags | All 13 Etsy SEO tags, in the seller's own order |
materials | The materials the seller declared |
quantity | Units the seller says are available |
categoryPath | Full Etsy category path, e.g. home_and_living.kitchen_and_dining.drinkware.mugs |
shopName, shopId, shopUrl | The shop behind the listing |
sectionName | The shop's own section the listing sits in |
images, imageCount | Every full-size image URL |
description | The full listing description. Off by default: set includeDescription to true |
isDigital, isCustomizable, isMadeToOrder | Product type flags |
whenMade | Etsy's own vocabulary — made_to_order, 2020_2026, before_2006 |
shipsFromCountry | Two-letter country code |
listedAt, updatedAt | When the listing was last listed or renewed, and last edited (ISO 8601). Etsy publishes no original creation date; createdAt repeats listedAt until 2026-11-01 |
variations | Sizes, colours and personalisation options. Off by default: set includeVariations to true |
foundVia | Which search term surfaced this listing |
Every run can also return Etsy's own ranked keyword suggestions alongside the listings: set expandWithKeywords and you get the phrases Etsy suggests to shoppers, each with the rank Etsy gave it.
Four kinds of row, and only two of them cost anything
| Row | type | Charged |
|---|---|---|
| An Etsy listing | listing | yes |
| An Etsy keyword suggestion | keyword | yes |
| A shop summary aggregated from its listings | shop | free |
| The coverage report for each term | coverage | free |
| Anything that could not be served | error | free |
Pricing
| Plan tier | 1,000 listings | 1,000 keywords |
|---|---|---|
| FREE | $20.00 | $10.00 |
| BRONZE | $16.70 | $8.40 |
| SILVER | $12.70 | $6.40 |
| GOLD | $10.00 | $5.00 |
| PLATINUM | $9.30 | $4.70 |
| DIAMOND | $8.70 | $4.40 |
The Store card shows the GOLD tier. There is no run-start fee on this Actor, and no per-page or per-request charge — you pay for rows you keep and nothing else.
What is free, always: a listing that no longer resolves on Etsy, a listing excluded by
your own price / bestseller / digital filters, every error row, every shop summary, and the
coverage report. Set maxCostUsd and the run stops cleanly the moment the next row would
cross your ceiling — and still writes its coverage rows so you know where it got to.
Try it
{"mode": "shop","shopNames": ["ocpottery"],"maxItems": 200,"shopSummary": true,"includeDescription": false}
That is this Actor's default input — press Run and you get real Etsy listings straight away on a paid Apify plan. On Apify's free plan a search can come back short while our usual search route is blocked: free-plan accounts get a short preview from Etsy's own results, up to 25 listings a month, while that preview is open (see Honest limits); keyword mode works on every plan.
Worked recipes
Profile a competitor
{"mode": "shop","shopNames": ["CordovanLeather"],"maxItems": 300}
Returns every listing plus one summary row: price range and median, total favourites and their most-used tags.
Compare several rivals in one run
{"mode": "shop","shopNames": ["ShopOne", "ShopTwo", "ShopThree"],"includeDescription": false}
One summary row each, directly comparable.
Hundreds of long-tail phrases from one seed
{"mode": "keywords","keywordSeeds": ["wedding gift"],"keywordAlphabet": true,"keywordModifiers": true,"maxKeywords": 1000}
An A–Z sweep plus twenty buyer-intent shapes, each phrase carrying the rank Etsy gives it.
Honest limits
We would rather tell you these up front than have you find them out on your own money.
- How far one search term goes depends on the route. The usual route returns roughly
100 listings a term before its results for that exact phrase run out. When it comes back
short, runs started by paying Apify users read Etsy's own search pages instead: about 60
listings a page, up to 30 pages a run (on Apify's free plan, a preview of up to 25
listings a month per account while that preview is open). Switch on
expandWithKeywordsto sweep a niche properly. Every run writes a freecoveragerow saying whether it stopped because Etsy ran out (exhausted) or because it hit your own cap or the run's time limit (cappedByRun) — so you never have to guess. - Searches can come back short while our usual search route is blocked. When that
happens, runs started by paying Apify users may switch to a paid backup route; runs on
Apify's free plan get a preview of up to 25 listings a month from Etsy's own results per
account, while that preview is open, so a free-plan search may return fewer listings,
or none, beyond it. Shop runs work the same way, except that a free-plan shop run can still
return the shop's newest listings (up to ten). The free
coveragerow says when this happened, and listings that were not found are never charged. - No review text. A shop's own totals (
shopSalesDisplay,shopSales,shopAdmirers,shopRating,shopReviewCount,onEtsySince) come from the shop's own page, which a shop run reads through the backup route (paying users, or a free-plan run within its monthly preview); on any other run those shop-summary fields arenull, never guessed.shopSalesDisplayis the sales figure as Etsy prints it (8.6k);shopSalesis filled only when the page shows the exact count. The rest of the shop summary is aggregated from the listings the run actually found, and says so. etsyRankis an ordinal, not a search volume. Etsy publishes no volumes. We give you Etsy's own ordering and refuse to invent a number.- View counts and badges are mostly missing. Etsy shows them on its search pages, behind the
same wall; its public listing data sends no view count and only rarely a badge, so
views,isBestsellerandisTopRatedarenullunless Etsy sends them, never a made-up zero orfalse.
Output example
{"type": "listing","listingId": 1532623080,"url": "https://www.etsy.com/listing/1532623080","title": "Handmade Ceramic Wide Mug, 12oz-16oz | 14 Glaze Colors, Single or set, coffee bar kitchen tea lover caffeine, gift for him, gift for her","priceUsd": 55,"priceUsdMin": 55,"priceUsdMax": 225,"currency": "USD","favorites": 174,"views": null,"isBestseller": null,"quantity": 44,"soldOutOptions": [],"tags": ["handmade", "coffee", "gift", "present", "mug"],"materials": ["Ceramic", "Porcelain", "Stoneware", "Clay"],"shopName": "SwanCityCeramics","categoryPath": "home_and_living.kitchen_and_dining.drink_and_barware.drinkware.mugs","isDigital": false,"whenMade": "made_to_order","shipsFromCountry": "US","imageCount": 10,"listedAt": "2026-09-22T15:39:26.000Z","foundVia": "ceramic tumbler"}
Legal
This is an unofficial tool. It is not affiliated with, endorsed by, or connected to Etsy, Inc. in any way, and "Etsy" is a trademark of its owner, used here only to describe what the Actor reads. It collects publicly visible listing information only — the same pages any shopper can see without signing in. It does not access private data, buyer information, messages, or anything behind a login. You are responsible for using the data you collect in line with Etsy's terms and with applicable law in your jurisdiction.
Use it from n8n, MCP, the API or a schedule
Built to be called by a workflow, not only from the Store form. The Actor is vonsensey/etsy-shop-analyzer-api; every snippet below sends {}, which runs the defaults shown on the form — replace it with your own input.
n8n
Install the Apify community node (@apify/n8n-nodes-apify under Settings → Community Nodes, or search "Apify" on n8n Cloud). Add Apify → Run Actor with Actor vonsensey/etsy-shop-analyzer-api and your input JSON, then Apify → Get Dataset Items on the run's defaultDatasetId and pipe the rows anywhere. For scheduled runs, the On new Apify Event trigger fires when a run of this Actor finishes.
MCP (Claude, Cursor, VS Code, any MCP client)
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=vonsensey/etsy-shop-analyzer-api","headers": {"Authorization": "Bearer <YOUR_APIFY_TOKEN>"}}}}
Your agent then calls vonsensey/etsy-shop-analyzer-api as a tool with the same input the form takes and reads the dataset back.
REST API (one call, rows in the response)
curl -X POST "https://api.apify.com/v2/acts/vonsensey~etsy-shop-analyzer-api/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H "Content-Type: application/json" -d '{}'
Python
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("vonsensey/etsy-shop-analyzer-api").call(run_input={})for row in client.dataset(run["defaultDatasetId"]).iterate_items():print(row)
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('vonsensey/etsy-shop-analyzer-api').call({});const { items } = await client.dataset(run.defaultDatasetId).listItems();
Make, Zapier, LangChain, CrewAI
The Apify app in Make and Zapier has a Run an Actor module: pick vonsensey/etsy-shop-analyzer-api. In LangChain and CrewAI the Apify tool wrappers take the same Actor id. A daily schedule needs nothing but the Console: Schedules → Create → this Actor → cron, and the dataset fills on its own.
Run it without configuring anything — Etsy shop price and tag profile, a ready-made example you can start as-is or copy.
Use cases
- Validate a product before you make it. Pull every listing in the niche you are considering, sort by favourites, and see what the top twenty charge and which tags they use — before you buy materials.
- Price against the shops you actually compete with. Every row carries a USD price and the shop behind it, so you get a real price band instead of eyeballing the first page.
- Fix listings nobody is finding. Etsy gives every listing 13 tags and they are the biggest lever in Etsy search. Pull the tags of the listings that already rank for your term and compare them with your own.
- Watch prices and stock on a schedule. Put a watchlist on a daily run and keep the history. There is no run-start fee, so a day when nothing changed costs nothing.
Run it on a schedule
A one-off pull answers a question; a schedule answers it every day without you. Open Schedules in the Apify Console, point a cron at this Actor, and the dataset keeps filling on its own — no server, no cron box, no babysitting. Everything here is built to be re-run: you are billed per listing delivered, and the FAQ below says exactly what a scheduled run that finds nothing new costs.
FAQ
Do I need an Etsy account or an API key?
No. Give it a search term, a shop name or a listing URL and press Run. Nothing to register, no key to paste.
How many listings can I get for one search term?
A single search term returns roughly 100 listings before Etsy's results for that exact phrase run out. That is a property of the search, not a limit we impose — which is why Expand each term with Etsy's own suggestions exists: it turns one term into dozens of related Etsy-ranked queries and sweeps a whole niche instead of one page of it. A free coverage row on every run tells you which of the two stopped you.
What am I actually charged for?
Only rows you keep. A listing that no longer resolves, a listing your price or bestseller filter excludes, an error row, a shop summary and the coverage report are all free — and there is no run-start fee, so a run that finds nothing costs nothing.
Does it give me Etsy search volumes?
No, and be careful of anything that says it does — Etsy does not publish search volumes. What you get is Etsy's own suggestion ranking, the order Etsy puts phrases in when it autocompletes for a shopper. That is a real signal, and it is reported as a rank rather than dressed up as a number of searches.
Can I get Etsy reviews or a shop's total sales?
No for review text: this Actor does not return review text. A shop's own totals (sales, admirers, rating and review count, the year it opened) come in the shop summary when a shop run reads the shop's own page (paying users, or a free-plan run within its monthly preview); on other runs those fields are null, never guessed. What every run gives you is a shop profile aggregated from that shop's listings: price range and median, total favourites, categories and most-used tags.
Can I export to CSV, JSON or Excel?
Yes. Every run writes a dataset you can export in one click from the Console, or pull from the API as JSON, CSV, XLSX or JSONL.
Something wrong, or a field you need that is missing? Open an issue on the Issues tab — it is read and it gets fixed. If this saved you time, a rating on the Store page helps the next person find it.