🔥 Etsy Keyword Research – Demand, Supply & Gaps avatar

🔥 Etsy Keyword Research – Demand, Supply & Gaps

Pricing

from $9.00 / 1,000 keyword results

Go to Apify Store
🔥 Etsy Keyword Research – Demand, Supply & Gaps

🔥 Etsy Keyword Research – Demand, Supply & Gaps

Etsy keyword research: one seed explodes into hundreds of long-tail keywords, each scored on live demand (cart counts), supply (listing count), competition (bestseller/star-seller/promo density) and an opportunity score. Finds the low-supply, high-intent niches.

Pricing

from $9.00 / 1,000 keyword results

Rating

0.0

(0)

Developer

Yakugusa Yumitori

Yakugusa Yumitori

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

2

Monthly active users

8 days ago

Last modified

Share

Etsy Keyword Research Tool

The Etsy keyword research & SEO tool that scores keywords on Etsy's own live data. Drop in a seed and get back its whole long-tail universe of tags and niches — every keyword scored 0–100 on live demand (real shopping-cart counts + recent sales), competition (how many listings, how entrenched, how breakable), and margin (discount pressure), with a letter grade and a plain-English verdict on each.

A data-driven alternative to eRank, Everbee and Marmalead: instead of a search-volume guess, this Etsy keyword tool reads Etsy's own signals — current carts, sales in the last 90 days, bestseller saturation, whether fresh listings still rank, discount density, and which category a keyword lives in — so you see what's actually selling and actually winnable. No login, no proxies, no setup — just add a seed and run.


Quick start

{
"seeds": ["ceramic mug"],
"depth": 2,
"maxKeywords": 40
}

One seed → up to 40 scored keywords, ranked by opportunity, in a couple of minutes. Every run pulls fresh, live data — nothing is cached between runs.


What you get per keyword

Demandavg_carts (mean live shopping-cart count across the top listings), with_carts_pct, recent_sales_pct (share of top listings that sold in the last 90 days — proof the niche converts now), and a trending flag when the term is on Etsy's live trending feed.

Competitionlistings (exact number competing), bestseller_pct + starseller_pct (how entrenched the top is), and recent_listings_pct (share of top listings under a year old — if fresh listings rank, a new seller can still break in even when listings is high).

Marginon_sale_pct (how many top listings are running a discount — high = a price war eating everyone's margin).

Niche & pricecategory (which Etsy category the keyword actually lives in → where to list), category_focus_pct (how concentrated), digital_pct (digital / print-on-demand niches), avg_price, and price_tiers (the niche's common price breakpoints). All pulled free from the same call — no extra cost.

Who you're up against (niche profile)ad_density_pct (how pay-to-play the niche is — what share of the top is paid ads), personalize_pct (do buyers expect customization?), handmade_pct / vintage_pct (handmade vs. reseller/vintage-dominated), and the trust wall you'd have to clear: avg_shop_rating, median_shop_reviews (how much social proof each competitor carries), and avg_seller_sales (how established they are). Aggregated across the top listings — free, same call, niche-level only (no per-listing rows).

Scores — a 0–100 Opportunity score with an A–F grade, the three sub-scores it's built from (Demand, Competition, Margin), and a plain-English verdict like "⚠️ Proven but hard: strong demand, saturated — fresh listings rank (breakable), actively selling."


How the score works (nothing hidden)

Every score is computed from the raw Etsy numbers on the same row, so you can always check the math:

  • Demand /100 = live carts (avg_carts) + buy-intent (with_carts_pct) + recent sales (recent_sales_pct) + how high Etsy ranks the search (autosuggest_rank) + a trending bump.
  • Competition /100 = how big the niche is (listings, log-scaled) + how entrenched the top is (bestseller_pct + starseller_pct), eased when fresh listings still rank (recent_listings_pct). Higher = harder.
  • Margin /100 = 100 − on_sale_pct — the share of top listings not in a discount war.
  • Opportunity /100 = 0.45 × Demand + 0.35 × (100 − Competition) + 0.20 × Margin.

The raw fields (listings, avg_carts, recent_sales_pct, on_sale_pct, bestseller_pct, …) stay on every row — the scores just summarise them. If a number looks off, the evidence is right there next to it.

Grades: A (80+) · B (65–79) · C (50–64) · D (35–49) · F (<35).

Verdicts are kept consistent with the scores — a verdict never contradicts the numbers:

  • ✅ Strong opening — strong demand and low competition, and not a price war. The genuine gaps (rare on purpose — you'll see one only when it's real).
  • ⚠️ Proven but hard — real demand, but the niche is saturated or in a discount war. Winnable only with a clear edge.
  • ◽ Mixed — strong on one axis, ordinary on another; judge case-by-case.
  • 🚫 Skip — thin demand.

Tags add nuance: actively selling (sold <90d), fresh listings rank (breakable), heavy discounting (price war), digital/POD niche, trending now.

How accurate is it?

  • The raw data is Etsy's own numbers — listing count, live carts, recent sales, badges, price — pulled straight from Etsy. As accurate as it gets.
  • The scores are a transparent heuristic over that data (formula above) — consistent and explainable, never a black box.

What you control

KnobDefaultWhat it does
seeds1–50 seed keywords; each is expanded into its long-tail universe
depth2hops of expansion — 1 = direct suggestions, 2 = suggestions-of-suggestions (much wider), 3 explodes
maxKeywords40upper limit of keywords per seed (a cap, not a guarantee — see note below); a run is also capped at 200 total, split evenly across seeds so cost stays predictable
trendingOnlyfalseskip keyword research entirely and just return Etsy's live popular/trending feed — one row per term. For tracking what's hot. Seeds are ignored when on.

Why a run can return fewer than maxKeywords. The number is an upper bound, not a quota. A seed only expands into as many real keywords as Etsy's autosuggest actually has for it (narrow or unusual seeds have a shallow long-tail), and any keyword whose search returns no live listings is dropped rather than padded with an empty row. So a broad seed like "ceramic mug" fills the cap easily, while a thin one may come back with far fewer — that's expected, and it means every row you get is a real keyword with real data. Want more from a thin seed? Bump depth to 3 to widen the expansion, or feed a couple of related seeds in one run.


Use it for

Find the gap. Sort by opportunity — low listings + real carts + low bestseller density = an underserved niche you can actually rank in.

{ "seeds": ["dog bandana"], "depth": 2, "maxKeywords": 40 }

Break into a "saturated" niche. A high-listings keyword where recent_listings_pct is high means new listings still rank — the verdict flags it "breakable."

Spot digital plays. digital_pct: 100 keywords are print-on-demand / download niches — low fulfilment, high margin.

Avoid the price wars. on_sale_pct: 90 means everyone's discounting — thin margins ahead.

Pick the right category & price. category tells you where to list; price_tiers + avg_price tell you where the niche prices.

Plan your Etsy Ads. Etsy now lets you set an ad strategy per listing (Greater visibility / Lower click cost / Efficient spending). Use ad_density_pct (how pay-to-play the niche already is) alongside demand and competition to pick which listings are worth pushing for "Greater visibility" and which to keep on a tighter, lower-click-cost budget.

Compare seeds. Feed several seeds at once and sort all their keywords together to see which theme is the richest.


Output

The dataset holds one clean row per scored keyword (export as JSON, CSV, Excel, JSONL) — four pre-built views:

  • Opportunities — keyword, category, grade, the 0–100 scores, listings, carts, price, verdict (sorted by opportunity)
  • Demand evidence — carts, % with carts, sold-<90d %, suggest rank, trending
  • Competition evidence — listings, fresh-<1yr %, bestseller / star-seller / on-sale density, category focus, price
  • Niche profile — who you'd be up against: ad density, personalization, handmade/vintage mix, and the seller "trust wall" (avg rating, median reviews, avg sales)
  • All columns (ordered) — every column in a readable order, keyword first (use this one when exporting to CSV/Excel)

Every keyword is one clean row — no array columns, no half-empty cells.

Exporting to a spreadsheet (keyword-first): Apify's raw "All fields" CSV export lists columns alphabetically (so it opens with ad_density_pct, not keyword) — that's a platform default, not something the actor sets. For a keyword-first sheet, do either: (a) pick the "All columns (ordered)" (or Opportunities) view in the export dialog — the view defines the column order; or (b) grab OUTPUT.csv from the key-value store, which is pre-built keyword-first (verdict last) and already sorted best-opportunity first.

🔥 Trending on Etsy nowTRENDING_AND_POPULAR. Etsy's current popular searches, trending terms, trending products, and gift-guide themes — spot fresh niches to research next:

{
"popular_searches": ["gardening supplies", "modern clock", "custom quilt from baby clothes"],
"trending_terms": ["bun feet", "garden marker", "succulent ring dish", "red silk top"],
"trending_products": ["Ocean Resin Art", "Summer Picnic Basket", "Carved Wooden Spoon"],
"gift_guides": ["Personalized Gifts", "Gifts for Her", "Gifts Under $30", "Gifts for Pets"]
}

Where to find it: after a run, open the run → Storage → Key-value store → TRENDING_AND_POPULAR — it sits right next to OUTPUT.csv. It's also printed to the run log every time ("🔥 Trending on Etsy now…"), so you see it without digging. It's kept out of the keyword dataset on purpose, so your results table and CSV stay clean.

Just want the trending feed? Turn on trendingOnly and the run skips keyword research entirely — the dataset comes back as one clean row per term (kind, rank, term) under the Trending feed view, exportable to CSV/JSON.

💡 Track what's hot — set it on a schedule. A trending-only run is tiny and cheap (one start + ~40 small rows, finishes in seconds), so it's ideal to schedule daily. In Apify: open the Actor → Schedules → Create, set the input to { "trendingOnly": true } and a daily cron — every morning you'll have a fresh snapshot of Etsy's popular searches, trending terms/products and gift-guide themes, and the dataset history lets you watch terms rise and fall over time.

Sample row:

{
"keyword": "ceramic mug no handle",
"category": "Home & Living",
"grade": "C",
"opportunity": 62,
"demand_score": 75,
"competition_score": 58,
"margin_score": 69,
"verdict": "◽ Mixed: strong demand, competitive — fresh listings rank (breakable), actively selling",
"listings": 93116,
"avg_carts": 20.5,
"with_carts_pct": 94,
"recent_sales_pct": 94,
"recent_listings_pct": 56,
"bestseller_pct": 17,
"starseller_pct": 58,
"on_sale_pct": 31,
"digital_pct": 0,
"avg_price": 35.18,
"category_focus_pct": 94,
"price_tiers": [25, 50, 75],
"autosuggest_rank": 5,
"trending": false,
"ad_density_pct": 19,
"personalize_pct": 44,
"handmade_pct": 86,
"vintage_pct": 0,
"avg_shop_rating": 4.91,
"median_shop_reviews": 1485,
"avg_seller_sales": 11564,
"seed": "ceramic mug"
}

Speed & limits

Run shapeTime
1 seed, depth 1 (~17 keywords)~30–60s
1 seed, depth 2 (~40 keywords)~2–3 min

Demand numbers are live and shift as carts and sales change, so re-run periodically to track a niche over time.


Built and maintained by [Yakugusa Yumitori]. Custom data work and "can you scrape X?" challenges → logic.deploy@pm.me.

⚠️ Unofficial. Not affiliated with, endorsed by, or sponsored by Etsy, Inc. "Etsy" is a trademark of Etsy, Inc., used here for descriptive purposes only.