Etsy Print on Demand Research - Digital & POD Niches avatar

Etsy Print on Demand Research - Digital & POD Niches

Pricing

from $10.00 / 1,000 listings

Go to Apify Store
Etsy Print on Demand Research - Digital & POD Niches

Etsy Print on Demand Research - Digital & POD Niches

Research the print-on-demand and digital-download side of Etsy: which designs sell, what they charge, how many favourites they hold and the exact tags they rank on. Filter to digital products only, or exclude them to see physical rivals. Pay per listing, no run-start fee.

Pricing

from $10.00 / 1,000 listings

Rating

0.0

(0)

Developer

Blackcube

Blackcube

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

6

Monthly active users

6 days ago

Last modified

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
Prices, Tags & Bestsellers
Etsy Price Tracker API
Monitor Prices on a Schedule
Etsy Tags Scraper
All 13 Tags From Any Listing
Etsy Print on Demand Research
➤ You are here

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

Research the print-on-demand and digital-download side of Etsy: which designs sell, what they charge, how many favourites they hold and the exact tags they rank on. Filter to digital products only, or exclude them to see physical rivals. 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

FieldWhat it is
titleThe listing title, exactly as it appears on Etsy
priceUsdPrice normalised to US dollars, on every row whatever storefront you read
price, currencyPrice in the run's locale currency (US dollars with the default en-US)
priceUsdMin, priceUsdMaxThe cheapest and dearest option in US dollars, when the price varies by size, colour or set
soldOutOptionsOptions Etsy marks unavailable, e.g. Size: XL
favoritesHow many shoppers have favourited the listing — the demand signal
views, isBestseller, isTopRatednull unless Etsy's listing data carries them: view counts and badges sit on Etsy's search pages, which this Actor does not read
tagsAll 13 Etsy SEO tags, in the seller's own order
materialsThe materials the seller declared
quantityUnits the seller says are available
categoryPathFull Etsy category path, e.g. home_and_living.kitchen_and_dining.drinkware.mugs
shopName, shopId, shopUrlThe shop behind the listing
sectionNameThe shop's own section the listing sits in
images, imageCountEvery full-size image URL
descriptionThe full listing description. On by default: set includeDescription to false for smaller rows
isDigital, isCustomizable, isMadeToOrderProduct type flags
whenMadeEtsy's own vocabulary — made_to_order, 2020_2026, before_2006
shipsFromCountryTwo-letter country code
listedAt, updatedAtWhen 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
variationsSizes, colours and personalisation options. Off by default: set includeVariations to true
foundViaWhich 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

RowtypeCharged
An Etsy listinglistingyes
An Etsy keyword suggestionkeywordyes
A shop summary aggregated from its listingsshopfree
The coverage report for each termcoveragefree
Anything that could not be servederrorfree

Pricing

Plan tier1,000 listings1,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": "search",
"searchTerms": [
"svg cut file"
],
"expandWithKeywords": true,
"maxItems": 25,
"maxKeywords": 5
}

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

Sweep a whole niche

{
"mode": "search",
"searchTerms": ["personalized leather wallet"],
"expandWithKeywords": true,
"maxItems": 2000
}

One term becomes dozens of Etsy-ranked queries, so you get the whole niche rather than one page of it.

One price band, no digital downloads

{
"mode": "search",
"searchTerms": ["ceramic mug"],
"excludeDigital": true,
"minPriceUsd": 25,
"maxPriceUsd": 80
}

Everything filtered out is free — you are billed only for the listings you keep.

Tags and prices only, no descriptions

{
"mode": "search",
"searchTerms": ["boho wall art"],
"includeDescription": false,
"maxItems": 500
}

A much smaller dataset when you only need the SEO and pricing columns.

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 expandWithKeywords to sweep a niche properly. Every run writes a free coverage row 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 coverage row 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 are null, never guessed. shopSalesDisplay is the sales figure as Etsy prints it (8.6k); shopSales is 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.
  • etsyRank is 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, isBestseller and isTopRated are null unless Etsy sends them, never a made-up zero or false.

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"
}

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-print-on-demand-research-tool; 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-print-on-demand-research-tool 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-print-on-demand-research-tool",
"headers": {
"Authorization": "Bearer <YOUR_APIFY_TOKEN>"
}
}
}
}

Your agent then calls vonsensey/etsy-print-on-demand-research-tool 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-print-on-demand-research-tool/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" -d '{}'

Python

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("vonsensey/etsy-print-on-demand-research-tool").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-print-on-demand-research-tool').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-print-on-demand-research-tool. 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 print on demand niche research, 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.