We tested 6 ecommerce data tools on 13 live pages
datawebot, Firecrawl, Apify, Bright Data, Zyte and Oxylabs on four real jobs, scored value by value against live pages on 10 Nov 2026. No tool won every job.
We ran six ecommerce data tools on the same 13 live pages at the same time, on 10 November 2026, and checked every value they returned against the pages themselves. No tool won every job.
- Search pages: Oxylabs was the most accurate on Amazon and Walmart search pages.
- Product pages: Bright Data and Oxylabs both got every value right.
- Shopify variants: Bright Data and datawebot were close at the top.
- Collections: no tool could reliably list a Shopify collection.
Overall, datawebot and Bright Data finished level.
datawebot is our product, so read this with that in mind. We wrote the run rules before running anything. Four scoring rules were settled after we saw the data (stock text, sale prices, rounded review counts and matching variants by the shop's own ID); each applies to every tool, and we show below how the result changes without them. We also publish where datawebot lost: on marketplace pages alone it came fourth of six, and it gave a wrong price on one Amazon product page.
What did we test?
We tested four jobs that buyers of ecommerce data do every week. Each job used real pages, chosen because they contain the traps that live pages contain:
- ads that look like results
- ratings written in German and Japanese
- a product whose only buy option was a used offer
- third-party sellers
- an automatic sale price
| Job | Pages | What we scored |
|---|---|---|
| Search rank tracking | amazon.com "Sony WH-1000XM5", amazon.de "Kaffeevollautomat", amazon.co.jp "Sony WH-1000XM5", walmart.com "Sony WH-1000XM5" | Price, currency, rating, review count and an organic (not ad) label for the top 10 organic results, plus the ad label on results that were only ads |
| Product price monitoring | Five product pages: two on amazon.com, one each on amazon.de, amazon.co.jp and walmart.com | Price, currency, in stock, seller, rating, review count |
| Shopify product variants | Brooklinen Classic Core Sheet Set (174 variants), Allbirds Men's Tree Runner (7 variants) | SKU, price, stock, colour and size of every variant; a SKU that doesn't exist in the shop counts as wrong |
| Shopify collection listing | Brooklinen sheets (50 products on the first page), Allbirds men's (140 products) | The price of every product on the page; a product that doesn't exist counts as wrong |
The six tools were datawebot, Firecrawl, Apify, Bright Data, Zyte and Oxylabs. Each was called through its own MCP server, the way an AI agent would call it. datawebot's is the ecommerce MCP server we build.
How did we score the tools?
Every value a tool returned was compared with reference data we captured ourselves, in the same window. The tools ran from 08:11 to 08:33 UTC. One Bright Data job finished at 08:42.
The rules for every tool:
- Its own capability first. Each tool used its own structured product capability for the site where it had one: a dedicated scraper, an actor, a parser or a typed extraction type. Where it had none, it used its generic JSON extraction, with the same field list for every page of a job.
- One retry. Each task got one retry after a failure.
- Values as returned. A price of 42495 stayed 42495, and a 0 stayed 0.
- No values read from page text. Where a tool returned only page text, we counted the task as unsupported rather than reading values out of the text ourselves.
- One stock rule. Where a tool gave stock only as text, such as "In Stock" or "Auf Lager", the same rule turned that text into in stock or out of stock for every tool.
| Tool | What it used |
|---|---|
| datawebot | Product search, product details, and each shop's search endpoint for collections |
| Firecrawl | Typed providers for amazon.com, walmart.com and allbirds.com; generic JSON extraction for the other pages |
| Apify | The most-used actor per site: junglee/Amazon-crawler, epctex/walmart-scraper, autofacts/shopify |
| Bright Data | Dataset scrapers for Amazon and Walmart search and product pages, and for Allbirds and Brooklinen products |
| Zyte | Automatic AI extraction (product list and product); it has no site-specific parsers |
| Oxylabs | Dedicated Amazon and Walmart parsers; generic JSON extraction for Shopify |
The reference data. We captured every page twice and parsed the result with fixed rules in code. The one exception is the Oxylabs page text described below, which our agent copied out by hand. A value counts as reference only where the two captures agree, or where only one capture has it. Where they disagreed, the value was not scored.
The captures came from three places:
- Amazon search pages: fetched twice through Zyte, once as raw HTML and once rendered in a browser, then parsed by our own code.
- Product pages and the Walmart search: one capture was Zyte raw HTML, parsed by our code. The second was Oxylabs page text, whose values our agent copied out by hand.
- Shopify pages: the shops' own product data files, plus the collection page HTML.
We spot-checked the parsers 122 times against the raw pages and found no parsing errors.
The score. Each reference value is correct, missing or wrong. A page's score is (correct − wrong) ÷ values scored, so it runs from −1 to +1. A wrong value costs as much as a correct one earns, because a wrong price in a report does more harm than a blank one. A job's score is the average of its pages, and the overall score is the average of the four jobs.
Which tool won each job?
| Tool | Search rank tracking | Product price monitoring | Shopify variants | Collection listing | Overall |
|---|---|---|---|---|---|
| datawebot | +0.69 | +0.80 | +0.79 | +0.18 | +0.61 |
| Bright Data | +0.59 | +1.00 | +0.82 | 0.00 | +0.60 |
| Oxylabs | +0.94 | +1.00 | 0.00 | +0.10 | +0.51 |
| Apify | +0.81 | +0.83 | +0.30 | 0.00 | +0.49 |
| Firecrawl | +0.46 | +0.67 | +0.50 | +0.06 | +0.42 |
| Zyte | +0.25 | +0.60 | +0.45 | +0.02 | +0.33 |
datawebot and Bright Data are level overall: 0.01 apart, and the order flips under one of our alternative scoring rules (below). They get there differently. datawebot did well on both marketplaces and Shopify stores. Bright Data was perfect on product pages and strong on Shopify variants, but has no collection scraper.
On the two marketplace jobs alone, the order is Oxylabs (+0.97), Apify (+0.82), Bright Data (+0.79), datawebot (+0.75), Firecrawl (+0.56) and Zyte (+0.42).
When a tool did return a value, how often was it right?
| Tool | Correct values out of all returned |
|---|---|
| Oxylabs | 215 of 215 |
| datawebot | 733 of 734 |
| Zyte | 439 of 445 |
| Bright Data | 754 of 778 |
| Firecrawl | 155 of 182 |
| Apify | 874 of 1,050 |
Most of Apify's wrong values come from one thing: its Shopify actor returns prices in cents.
How much the order depends on our scoring choices. Four scoring rules were settled after we saw the data. We rescored with each of them, and with the cost of wrong values, reversed:
- Rounded review counts: counts rounded the way Amazon shows them ("1.4K" for 1,440) counted as wrong instead of correct.
- Sale prices: Brooklinen's sale prices counted as wrong, with only the list price accepted.
- Stock text: stock given as text ("In Stock", "Auf Lager") left as missing instead of mapped.
- Variant ID: variants matched only by SKU, not by the shop's own variant ID. This drops Bright Data's Brooklinen result, which has no SKUs.
- Plain accuracy: wrong values cost nothing.
In all six versions, datawebot and Bright Data took the top two places, Firecrawl was fifth and Zyte last. Under plain accuracy Bright Data moves ahead of datawebot. Without variant-ID matching, Bright Data falls to +0.52 and datawebot leads clearly. Oxylabs and Apify swap third and fourth.
The job winners mostly held:
- Oxylabs won search every time.
- datawebot won collections every time.
- On product pages, Bright Data and Oxylabs tied, except that without the stock-text rule Bright Data won alone.
- On Shopify variants, Bright Data led, except that datawebot did when only list prices count or when variants must carry a SKU.
What went wrong for each tool?
The scores come from specific, repeatable errors. Here are the ones that moved the numbers.
Search rank tracking
- Oxylabs returned no wrong values on the four searches, and it puts ads in a separate list. The only exception was review counts rounded the way Amazon displays them. It missed 2 of the top 10 on amazon.com.
- Apify got Amazon values right, but it labels no ads. Its Walmart actor has no rank or ad label, and it returned nothing until we retried it with the actor's residential network option.
- datawebot returned no wrong values on amazon.de (prices in euros) or on amazon.co.jp (ratings of 4.5, exact review counts). On amazon.com it returned only 4 products, three of them without a price because Amazon showed no featured offer for them. On Walmart it gave no ratings and didn't label ads.
- Bright Data labels ads, but it cut review counts short on amazon.com (203 for 20,329). It also gave 0 stars to 9 amazon.co.jp products rated 4.1 to 4.6.
- Firecrawl's Walmart provider labelled 7 of the 8 ads correctly. On amazon.de it served a cached page about five hours old, with prices in US dollars. On amazon.co.jp it returned a 503 error, then a single result.
- Zyte returned no rating, review count or ad label on any search. All nine Walmart prices it returned were 100 times too high (19800.0 for a $198 item).
Product price monitoring
- Bright Data got all 30 values right. That includes the WH-1000XM5 page, whose only buy option was a used offer at $186.95.
- Oxylabs also got all 30 right. It gave stock as text ("In Stock", "Auf Lager"), which our stock rule mapped.
- Apify picked a different offer from the one on the amazon.co.jp page: ¥38,750 from another seller instead of ¥38,778.
- datawebot gave $199.99 for the WH-1000XM5, where the page's buy price was $186.95 (used), and no seller name. On Walmart it returned no seller, rating or review count. It also rejected the bare Walmart product URL; it worked with the full product URL from its own search.
- Firecrawl landed on the amazon.co.jp homepage on both attempts. It named Philips as the amazon.de seller instead of Amazon.
- Zyte has no seller field. On amazon.co.jp it returned the list price (¥49,500) as the price, and on amazon.de it returned 87 reviews instead of 26,533.
Shopify product variants
- Bright Data's dedicated Allbirds scraper was exactly right. Its Brooklinen scraper took about 24 minutes. It returned 168 rows covering 144 of the 174 variants, with the right prices but no SKUs and 7 wrong stock values. We almost scored it as failed: we stopped waiting after 14 minutes, and only found two days later that the job had finished.
- datawebot returned all 7 Allbirds variants correctly. For Brooklinen it returned the first 100 of 174 variants, all correct, and said there were 174. The 100-variant cap is documented, but it cost datawebot 74 variants here.
- Zyte returned all 174 Brooklinen variants with correct SKUs and prices, but no stock, colour or size.
- Apify matched all 174 Brooklinen variants with the right SKU, stock, colour and size, but returned every price in cents (15900 for $159). Its Allbirds run failed.
- Firecrawl's typed Allbirds provider was exactly right. On Brooklinen its generic extraction returned 12 variants, all Twin XL, with numbers in the SKU field: one is a real variant ID, and the other 11 don't exist in the shop.
- Oxylabs has no Shopify parser. Its generic extraction returned 1 Brooklinen variant and 7 Allbirds variants, none with a SKU.
Shopify collection listing
No tool returned a usable listing:
- datawebot returned 50 of the 140 Allbirds products correctly, but nothing for Brooklinen.
- Oxylabs and Firecrawl returned 10 Brooklinen products each, because the rendered page loads only 10 until you scroll. Two of Firecrawl's had made-up product handles.
- Zyte returned 5 Allbirds products.
- Apify's Shopify actor failed on both pages.
- Bright Data has no collection scraper.
How much did each run cost, and how long did it take?
| Tool | Calls for 13 tasks | Time | Failed or unsupported tasks | Cost as reported |
|---|---|---|---|---|
| Zyte | 15 | 2 min | 1 | $0.02 |
| Firecrawl | 19 | 6 min | 1 | 90 credits |
| datawebot | 32 | 5 min | 1 | 32 credits |
| Oxylabs | 40 | 12 min | 0 | Not reported |
| Apify | 71 | 18 min | 3 | Not reported |
| Bright Data | 58, including 2 on 12 Nov to fetch the finished Brooklinen job | 31 min | 2 | Not reported |
Apify, Bright Data and Oxylabs don't report cost through their MCP servers, so we don't quote a price for them.
Oxylabs needed extra calls because its Amazon replies ran to 65,000 to 122,000 characters, and a third to two-thirds of that was search-filter data. The first reply was cut off before any product appeared. Its MCP server also keeps no copy of a reply, so our agent copied its values out of each reply by hand. That is the one tool whose results we didn't save directly from the tool.
Which tool should you choose?
Choose by the job, not by the overall score.
- Tracking rank on Amazon and Walmart search pages: Oxylabs was the most accurate in our test. For Walmart ads, Firecrawl's typed provider labelled 7 of 8 and Oxylabs 5 of 8. Apify was close on Amazon but labels no ads.
- Monitoring prices on marketplace product pages: Bright Data and Oxylabs were both right on every value.
- Getting every variant of a Shopify product: Bright Data and datawebot were close. datawebot was exact but stops at 100 variants per product. Bright Data covered more variants but returned no SKUs and was the slowest, at about 24 minutes for one product.
- Mixing marketplaces and DTC stores in one workflow: datawebot and Bright Data both scored well across the two. Bright Data has no collection scraper.
- Listing a whole Shopify collection: none of the six did it well on 10 November 2026. Use the shop's own product data file if it is public, and check it against the page.
If you test this yourself, check sale prices against the rendered page, not only the shop's data. Brooklinen was running an automatic sale that showed $135.15 on the page for a sheet set listed at $159 in its data. Both prices count as correct in our scoring. We captured the sale evidence at about 08:50 UTC, 8 minutes after the last tool job finished.
What are the limits of this test?
This is one run per tool on one day, so treat it as a snapshot. A tool that failed once may work on another day.
- Ads. Ads change between requests, so on Amazon we could only check which tools have an ad label, not how accurate it is.
- Our captures. All of our reference captures were fetched through Zyte or Oxylabs, which are also in the test. We used them only to fetch pages, never their extraction. The two Amazon search captures both came through Zyte, so they are not independent of each other.
- Other options. Each vendor sells other products and settings that we didn't use. We used each tool's most direct option for the page in front of it.
We keep the protocol, every tool's raw and normalised output, the reference captures, the parsers and the scoring script. We can share them on request, and we will correct this post if a vendor shows that we used its tool wrongly.
Frequently asked questions
Which ecommerce data tool is the most accurate?
It depends on the job. In our 10 November 2026 test:
- Oxylabs was the most accurate on Amazon and Walmart search pages.
- Bright Data and Oxylabs were both perfect on marketplace product pages.
- Bright Data and datawebot were close on Shopify product variants.
Overall, datawebot and Bright Data were level.
How were the tools scored?
Every returned value was compared with reference data captured from the live page at the same time. A correct value adds one point, a wrong value subtracts one and a missing value counts zero. The score is that total divided by the number of values checked, from −1 to +1.
Is this test biased toward datawebot?
datawebot is our product. We fixed the run rules before running anything, settled four scoring rules after seeing the data, applied every rule to every tool in the same way, and show how the order changes when those choices are reversed. We also report where datawebot lost. It came fourth of six on marketplace pages, gave a wrong price on one Amazon product page, and does not lead overall on its own: Bright Data is level with it.
Can I see the raw results?
Yes. We keep every tool's raw output, the reference captures and the scoring script, and can share them on request.
Sources
- https://www.amazon.com/s?k=Sony+WH-1000XM5
- https://www.amazon.de/s?k=Kaffeevollautomat
- https://www.amazon.co.jp/s?k=Sony+WH-1000XM5
- https://www.walmart.com/search?q=Sony+WH-1000XM5
- https://www.amazon.com/dp/B09XS7JWHH
- https://www.amazon.com/dp/B0F3PQHWTZ
- https://www.amazon.de/dp/B07MMSHC4R
- https://www.amazon.co.jp/dp/B09Z2QYYD1
- https://www.walmart.com/ip/386006068
- https://www.brooklinen.com/products/classic-core-sheet-set
- https://www.allbirds.com/products/mens-tree-runners
- https://www.brooklinen.com/collections/sheets
- https://www.allbirds.com/collections/mens
- https://apify.com/junglee/amazon-crawler
- https://mcp.datawebot.com/setup.md
Give your agent ecommerce product data over MCP.
Every account starts with 200 free credits, with no subscription: a search costs 5 credits and a product read 1. Failed requests are free.