Apify E-commerce Scraping Tool Alternative: Same Input
An alternative to Apify's E-commerce Scraping Tool that takes the same input JSON: what stays, what's added, how sites and pricing differ, and a checklist.
Published · Updated · By Omar Eldeeb
E-commerce Product Scraper Pro is an alternative to Apify's E-commerce Scraping Tool that takes the same input: all 38 field names, types and options, so your input JSON runs after you change the actor ID. It adds monitor mode, per-input caps, variants and a proxy-country option. It supports fewer sites, and its pricing differs: cheaper per product, more expensive on residential and browser pages.
I built E-commerce Product Scraper Pro. This page tries to give a fair account of when switching makes sense and when it doesn't. Facts about the E-commerce Scraping Tool come from its Store page, its input schema and its public pricing record, all checked on 2026-10-20. Apify maintains it, and its public actor record on the Apify API showed 848 users in the last 30 days.
What stays the same
The input. Every field of the E-commerce Scraping Tool's input schema exists in the alternative with the same name, type and options: detailsUrls, listingUrls, keyword, marketplaces, scrapeMode, the AI summary fields, the review, seller and influencer sections, the Google Shopping ("search engine") section and the food-delivery section. The internal disableFallbacks flag is accepted and ignored.
One exception as of today: the E-commerce Scraping Tool's build of 2026-10-20 added www.walmart.com.mx and www.bodegaaurrera.com.mx to its marketplaces and marketplacesReviews options. The alternative's input schema doesn't list those two yet, so an input that selects them won't validate there.
The main output fields. Product rows keep the field names the E-commerce Scraping Tool documents: url, inputUrl, name, image, offers (price, priceCurrency), brand, description, additionalProperties, aiSummary and keyword, plus the review, seller and influencer keys. The compatibility was checked against that tool's documented dataset views and samples, not field by field on its live output, so check your own integration against a sample run (script below).
What's added on top
| Addition | What it does |
|---|---|
maxItemsPerStartUrl |
A cap per input (per product URL, listing, keyword and marketplace, review input or storefront), so one large category can't use the whole run |
followPagination |
Turn off next-page following on listings (on by default) |
includeVariants |
A variants[] array with each variant's SKU, options, price and stock (on by default) |
proxyCountry |
Pin the residential exit to a country, to get prices in that market's currency |
monitorMode, onlyChanges |
Compare with the previous run: price-down, price-up, back-in-stock, out-of-stock, removed; optionally write only changes |
Every row also has flat, spreadsheet-friendly fields next to the nested ones (price, currency, originalPrice, unitPrice, inStock, stockQty, sku, gtin, images) and a recordType (product, review, seller, influencerPost, search-result, delivery). The README publishes a supported-sites table with each site's status and route.
What's different
Sites
The E-commerce Scraping Tool's Store page names eBay, Etsy, Best Buy, Home Depot, Costco, Alibaba, Argos and Mercado Livre among the marketplaces it works with. On 2026-10-19 its pricing record added an "Unblocker" proxy for "stores that block even residential proxies".
E-commerce Product Scraper Pro marks those sites unsupported: eBay, Etsy, Best Buy, Home Depot, Lowe's, Costco, Alibaba, Allegro, Newegg, Argos, Mercado Livre (Brazil) and about 30 more. Inputs for them get a status row explaining why and aren't fetched or billed beyond the run's start fee. If your work depends on those marketplaces, keep using the E-commerce Scraping Tool for them. You can split your inputs and run each actor on the sites it handles.
Sites the alternative lists as supported after its own cloud tests: Shopify and WooCommerce stores, Amazon (amazon.com and amazon.de supported, 22 other storefronts best-effort), Walmart, Target, Zalando, John Lewis, M&S, Aldi UK and Waitrose. Several more are best-effort; the table on the actor page lists each one.
Where errors go
The E-commerce Scraping Tool writes failures to a named errors dataset. The alternative writes one status row per input (successes too) to a separate dataset, linked on the run's Output tab as "Status per input". Through the API it's run["storageIds"]["datasets"]["status"]. The error field uses the same error codes as the E-commerce Scraping Tool's documented errors, and outcome, blockedBy, itemsFound, itemsDelivered and stopReason say what happened.
Pricing
Both are pay per event. Prices below are from the E-commerce Scraping Tool's public pricing record (in effect since 2026-10-19; its Store page headline says "from $1.00 / 1,000 product details") and from E-commerce Product Scraper Pro's pricing table, for Apify's FREE and GOLD plan tiers:
| Event | E-commerce Scraping Tool (FREE / GOLD) | E-commerce Product Scraper Pro (FREE / GOLD) |
|---|---|---|
| Run start | $0.0001 / $0.00007 | $0.005 / $0.005 (per GB of memory) |
| Product | $0.006 / $0.001 | $0.0048 / $0.0008 |
| Listing page | $0.0005 / $0.00026 | $0.0004 / $0.00021 |
| Review | $0.002 / $0.0007 | $0.0016 / $0.00056 |
| Seller | $0.003 / $0.001 | $0.0024 / $0.0008 |
| AI summary | $0.0075 / $0.00275 | $0.006 / $0.0022 |
| Residential proxy | $0.003 / $0.0008 flat per product | $0.018 / $0.014 per MB used to deliver the item |
| Browser rendering | $0.0006 / $0.00051 flat per product | $0.008 / $0.006 per render, plus residential MB |
| Unblocker proxy | $0.0015 / $0.001 per product | not offered (those sites are unsupported) |
| Google Shopping request | no separate event in its pricing record | $0.0045 / $0.0035 per successful request |
The E-commerce Scraping Tool also has PLATINUM and DIAMOND tiers with lower prices (for example $0.0005 per product on DIAMOND). On the alternative, those plans pay the GOLD price.
What that means in practice:
- Datacenter sites (Shopify, WooCommerce, amazon.com, Walmart, Target and others): the alternative is cheaper once the per-product saving covers its higher start fee. On FREE that's from 5 products per run: the start fee costs $0.005 − $0.0001 = $0.0049 more, and each product saves $0.0012. On GOLD it's from 25 products per run ($0.00493 ÷ $0.0002 = 24.7).
- Residential sites: usually more expensive on the alternative. Its README example is 100 amazon.co.uk products at $0.46–$0.71 on GOLD. If all 100 needed the E-commerce Scraping Tool's residential fee, they'd cost 100 × ($0.001 + $0.0008) + $0.00007 ≈ $0.18 there.
- Browser sites (Noon, Wayfair, Sephora and others): more expensive on the alternative, by its design: it bills each render and its traffic instead of a flat fee.
- Monitoring: with
onlyChanges, unchanged products are billed as "product checked" ($0.0012 FREE, $0.0002 GOLD) instead of a full product. The E-commerce Scraping Tool's input has no monitor-mode option.
The alternative doesn't charge for items that never delivered: blocked or empty pages cost nothing, and their residential traffic and renders aren't billed. Apify's free plan includes $5 of usage every month, with no credit card required. Neither actor needs your own proxies.
Python: run your existing input and check the fields you use
Paste your current input into RUN_INPUT and list the fields your code reads:
import os
from collections import Counter
from apify_client import ApifyClient
# Your existing E-commerce Scraping Tool input, unchanged
RUN_INPUT = {
"detailsUrls": [{"url": "https://www.skullcandy.com/products/crusher-540-active"}],
"listingUrls": [{"url": "https://www.deathwishcoffee.com/collections/coffee"}],
"maxProductResults": 5,
}
# The fields your integration reads today (edit to match your code)
FIELDS_I_USE = ["url", "inputUrl", "name", "image", "offers", "brand", "description", "additionalProperties"]
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("constructive_calm/ecommerce-product-scraper-pro").call(run_input=RUN_INPUT)
rows = list(client.dataset(run["defaultDatasetId"]).iterate_items())
print(run["status"], "|", len(rows), "rows |", Counter(r.get("recordType") for r in rows))
missing = {f: sum(f not in r for r in rows) for f in FIELDS_I_USE}
print("missing fields:", {f: n for f, n in missing.items() if n} or "none")
print("offers shape:", rows[0]["offers"], "| brand shape:", rows[0]["brand"])
# Per-input outcomes: a separate "status" dataset (one row per input), not an "errors" dataset
for s in client.dataset(run["storageIds"]["datasets"]["status"]).iterate_items():
print(s["inputField"], s["outcome"], s["error"], "|", (s["errorDescription"] or "")[:90])Output on 2026-10-20 (pip install apify-client, APIFY_TOKEN set):
SUCCEEDED | 5 rows | Counter({'product': 5})
missing fields: none
offers shape: {'price': 229.99, 'priceCurrency': 'USD'} | brand shape: {'slogan': 'Skullcandy US'}
detailsUrls ok None |
listingUrls ok None | 22 product(s) found on 1 page(s); 4 delivered; 18 not scraped; stopped: maxProductResultsThe input is the E-commerce Scraping Tool's own field set (detailsUrls, listingUrls, maxProductResults) and ran unchanged. To compare values, not just field names, run the same input on both actors and join the rows on url.
Migration checklist
- Check your sites against the supported-sites table on the actor page. Move unsupported marketplaces to a separate input that stays on the E-commerce Scraping Tool.
- Check your marketplace values. If your input selects
www.walmart.com.mxorwww.bodegaaurrera.com.mx, keep those on the E-commerce Scraping Tool for now. - Change the actor ID everywhere it appears: API calls, saved tasks, schedules, webhooks and integrations (Make, Zapier, n8n, Google Sheets).
apify/e-commerce-scraping-toolbecomesconstructive_calm/ecommerce-product-scraper-pro. Saved tasks belong to an actor, so create new tasks from the same input. - Run a sample on both with a small
maxProductResults, and compare the row counts, prices, currencies and stock flags for the same URLs. - Check output field mapping with the script above: the fields you read, the
offersandbrandshapes, and anyadditionalPropertieskeys you depend on. Per-site extras inadditionalPropertiesdiffer between the two. - Move error handling from the
errorsdataset to the status dataset, and decide what counts as a failure (blocked,not-found,restricted, or a zero-row run). - Set a cost cap with the run's maximum cost (
maxTotalChargeUsdin the API), and compare the charged events of the sample run with your current costs, especially on residential and browser sites. - Run both in parallel for a few days before turning the old schedule off.
Holiday season: switch before the sale, not during it
If you track prices for Black Friday (Friday, November 27, 2026) and Cyber Monday (November 30), do the migration and the side-by-side runs in early November. Changing the scraper mid-season breaks the continuity of your price history, and monitor mode needs at least one run as its baseline. Once switched, monitorMode gives you previousPrice and priceChangePct on every row. See the Black Friday price tracker for a schedule, and the holiday sales calendar for the dates.
Related guides
- Competitor price monitoring.
- Price drop alerts to email or Slack, built on monitor mode.
- Scrape product variants, one of the added options.
Do it without code
The free e-commerce price tracker builder produces a ready-to-run input with the shared field names, and shows a fixed example of the output.
Disclosure: I built E-commerce Product Scraper Pro and this site. I'm not affiliated with Apify beyond publishing actors on its Store.
Sources: E-commerce Scraping Tool on the Apify Store (marketplaces named, pricing headline), its public actor record and default build on the Apify API (pricing per event, input schema, 30-day users), checked 2026-10-20; the E-commerce Product Scraper Pro README; and an actor run on 2026-10-20.
Quick answers
Is there an alternative to Apify's E-commerce Scraping Tool?
Yes. E-commerce Product Scraper Pro (constructive_calm/ecommerce-product-scraper-pro) accepts the same 38 input fields, so an existing input JSON runs unchanged, with two new marketplace values as the exception as of 2026-10-20. It adds monitor mode, per-input caps, variants and a proxy-country option, but supports fewer sites.
Can I reuse my E-commerce Scraping Tool input JSON in another actor?
With E-commerce Product Scraper Pro, yes: the field names, types and options are the same, and the internal disableFallbacks flag is accepted and ignored. On 2026-10-20 the E-commerce Scraping Tool added www.walmart.com.mx and www.bodegaaurrera.com.mx to its marketplace lists, which the alternative's input schema doesn't list yet.
How do I switch an Apify actor in my integration?
Replace the actor ID in your API calls, schedules, tasks and integrations (for example apify/e-commerce-scraping-tool becomes constructive_calm/ecommerce-product-scraper-pro), run the same input on both actors once, and compare the rows and the fields your code reads before turning off the old one.
Is E-commerce Product Scraper Pro cheaper than the E-commerce Scraping Tool?
It depends on the sites. Per product, review and listing page it charges 20% less on every plan up to GOLD, but its run start fee is $0.005 against about $0.0001, and residential and browser pages are billed per MB and per render instead of a flat per-product fee, which usually costs more. PLATINUM and DIAMOND accounts get lower prices on the E-commerce Scraping Tool.