Switching from Etsy Listings Scraper to Etsy Scraper
Etsy Scraper (arcadium/etsy-products) reads input written for yumitori/etsy-listings-scraper: 10 of its 14 input fields work as they are. Field list from its public input schema (build 0.1.122, 2026-10-31); prices and run results from the public Apify API, 2026-11-01.
Their fields that work as they are
| Their field | Type | Note |
|---|---|---|
queries | array | As is |
maxPages | integer | Read as 36 listings a page; maxResults wins when both are set. |
maxResults | integer | As is |
sort | string | As is |
country | string | Read as the ship-to country. |
minPrice | integer | As is |
maxPrice | integer | As is |
onSaleOnly | boolean | As is |
freeShippingOnly | boolean | As is |
includeAds | boolean | As is |
Their fields this actor does not read
digitalOnly, handmadeOnly, includeInDemand, dedupeAcrossQueries. Leave them out of the input; the actor’s own options are in the guide.
Side by side: their input, our rows
Input written for yumitori/etsy-listings-scraper, pasted unchanged:
{
"queries": [
"custom stickers"
],
"maxResults": 100,
"sort": "price-asc",
"country": "DE",
"minPrice": 5,
"maxPrice": 40,
"onSaleOnly": true,
"freeShippingOnly": true,
"includeAds": true
}One row from arcadium/etsy-products (README example; long text shortened):
{
"rowType": "listing",
"platform": "etsy",
"listingId": "962939986",
"title": "Leather Envelope Wallet for Women, Personalized Mini Card Wallet, Full Grain Crazy Horse",
"url": "https://www.etsy.com/listing/962939986",
"price": 64,
"currency": "USD",
"salePrice": 57.6,
"discountPercent": 10,
"onSale": true,
"favorites": 4979,
"rating": 4.95,
"reviewCount": 245,
"tags": [
"Envelope Wallet",
"Women's Leather"
],
"materials": [
"Full Grain Crazy Horse Leather"
],
"category": "Wallets",
"variations": [
{
"name": "Primary color",
"options": [
{
"value": "Tan",
"price": null,
"available": true
}
]
}
],
"whenMade": "2020_2026",
"shipsFromCountry": "TR",
"shipping": {
"shipsFrom": "Türkiye",
"freeShipping": true,
"deliveryEstimate": "Oct 26-Nov 2",
"deliverTo": "United States",
"returns": "Returns & exchanges accepted within 30 days."
},
"shop": {
"shopId": "28165607",
"shopName": "YukonLeatherGoods",
"sales": 6583,
"rating": 4.92,
"reviewCount": 1412,
"location": "Dover, Delaware",
"isStarSeller": true
},
"searchInput": "leather wallet",
"searchRank": 3,
"isAd": false
}Output fields: rowType, platform, listingId, url, title, description, price, currency, salePrice, discountPercent, onSale, priceUsd, quantity, isAvailable, isSoldOut, favorites, rating, reviewCount, ratingCounts, tags, materials, category, categoryPath, taxonomyId, variations, hasVariationPricing, images, whenMade, isDigital, isCustomizable, isMadeToOrder, isBestseller, shipsFromCountry, shipping, shopSection, shop, createdAt, updatedAt, isAd, searchInput, searchRank, reviewId, text, date, sellerResponse, hasPhoto, input, code, message, scrapedAt. The rows use these names, not the other actor’s.
Price
| Actor | Pricing model | Charged per | Per 1,000, Free plan | Per 1,000, lowest plan |
|---|---|---|---|---|
| arcadium/etsy-products | Pay per event | Listing | $7.20 | $5.40 |
| yumitori/etsy-listings-scraper | Pay per event, plus platform usage | Etsy listing | $8.00 | $8.00 |
Live Apify prices on 2026-11-01, in USD, for each actor’s main charged event. Start fees and platform usage are not included. Units differ: compare what one charged row contains. The Store page of each actor is the current source.
Common issues: failed or timed-out runs
- Etsy Listings Scraper timed out: 0.0% of 7,052 runs timed out.
| Actor | Runs, last 30 days | Failed | Timed out |
|---|---|---|---|
| arcadium/etsy-products | under 50 runs | - | - |
| yumitori/etsy-listings-scraper | 7,052 | 0.0% | 0.0% |
Apify’s public run statistics for each actor, last 30 days to 2026-11-01: FAILED and TIMED-OUT runs as a share of all runs. Shown from 50 runs. A failed run can also come from a bad input. Here an input that cannot be read comes back as a free error row with a code, and the other inputs still arrive.
How to switch
In the Apify Store
- Open arcadium/etsy-products and sign in to Apify.
- On the Input tab, switch the editor to JSON and paste the input you used for yumitori/etsy-listings-scraper, without the fields listed above as not read.
- Start the run. Set a maximum cost per run in the run options if you want a hard cap.
Over the API
Change the actor ID in the URL from yumitori~etsy-listings-scraper to arcadium~etsy-products; the body stays the same apart from the fields this actor does not read.
curl -X POST "https://api.apify.com/v2/acts/arcadium~etsy-products/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"queries":["custom stickers"],"maxResults":100,"sort":"price-asc","country":"DE","minPrice":5,"maxPrice":40,"onSaleOnly":true,"freeShippingOnly":true,"includeAds":true}'
In n8n
In the Apify node, change the actor to arcadium/etsy-products and keep the input JSON. With an HTTP Request node:
{
"nodes": [
{
"name": "Run arcadium/etsy-products",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4,
"position": [
0,
0
],
"parameters": {
"method": "POST",
"url": "https://api.apify.com/v2/acts/arcadium~etsy-products/run-sync-get-dataset-items",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "{\"queries\":[\"custom stickers\"],\"maxResults\":100,\"sort\":\"price-asc\",\"country\":\"DE\",\"minPrice\":5,\"maxPrice\":40,\"onSaleOnly\":true,\"freeShippingOnly\":true,\"includeAds\":true}",
"options": {
"timeout": 300000
}
}
}
],
"connections": {}
}
From an AI assistant (MCP)
Add the actor as a tool on Apify’s MCP server; an agent can pass the same input fields.
{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com/?tools=arcadium/etsy-products",
"headers": {
"Authorization": "Bearer <APIFY_TOKEN>"
}
}
}
}