Price scraper with offers from all merchants using EAN/GTIN avatar

Price scraper with offers from all merchants using EAN/GTIN

Pricing

$5.00 / 1,000 multi-merchant pricing scrapeds

Go to Apify Store
Price scraper with offers from all merchants using EAN/GTIN

Price scraper with offers from all merchants using EAN/GTIN

Get real-time product pricing and offer data from multiple merchants using EAN or GTIN codes. It scans e-commerce platforms, marketplaces and webshops to collect price, seller name, stock status, shipping details and product URLs. Ideal for building price comparison tools and monitoring competitors.

Pricing

$5.00 / 1,000 multi-merchant pricing scrapeds

Rating

0.0

(0)

Developer

SR

SR

Maintained by Community

Actor stats

0

Bookmarked

38

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Give it a list of EAN/GTIN barcodes. Get back every live merchant offer for each product: who sells it, a direct link to their listing, the price, the shipping cost, the total, the condition and whether it is in stock.

One barcode in, the whole competitive set out. Across 15+ country markets.

What you get

One record per product lookup, with every offer nested under offers:

{
"ean": "8720938897238",
"gl": "nl",
"found": true,
"status": "cached",
"title": "Luminize Oplaadbare Wandlamp",
"currency": "EUR",
"offers_count": 2,
"lowest_total_price": 34.95,
"highest_total_price": 39.9,
"offers": [
{
"sellerName": "bol.com",
"sellerReference": "https://www.bol.com/nl/nl/p/...",
"price": "34.95",
"shippingPrice": "0.00",
"totalPrice": "34.95",
"condition": "New",
"availability": "InStock"
}
]
}

sellerReference is the direct product URL at that merchant, so every offer is checkable and clickable.

Input

{
"products": ["8720938897238", "5702017829241"],
"country": "nl"
}

One code per line. EAN-8, UPC-A (12), EAN-13, GTIN-14, or a numeric catalog id. The type is detected automatically; anything else comes back as an error record rather than a silent miss.

Optional title injection. Add the product name from your own feed after a pipe:

8720648364181 | RAU Werkbank Modell 8185

This verifies the match and can roughly double the hit rate. The part before the pipe still has to be a valid code.

You pay for the scrape, once

This is worth understanding, because it is not how most scrapers bill.

  • First request for a product we do not hold yet — a scrape is queued. Charged, once. You are paying for the work, and you get a queued_for_scrape record telling you to come back in about two hours.
  • Repeat request while that scrape is still runningfree. You already paid for it.
  • Collecting the resultfree, however many times you collect it, and whether it comes back with offers or with none.

So one product in one country costs you exactly one charge, no matter how many times you ask for it. A ledger keyed on country + product code enforces that across runs, not just within one.

The one case where you are charged again is a product you last requested more than 48 hours ago. At that point the cached result is stale, a re-request triggers genuinely new work, and charging for it is the same first-request rule applying again.

Only charged records go to the default dataset. Everything free goes to not-charged-results. The dataset you are billed on and the dataset you are not are physically separate, so the bill is auditable line by line, and every record carries a charged flag as well.

Good for

  • Competitive price monitoring from a barcode feed
  • Finding every seller of a product in a market, with direct links
  • Repricing and margin checks against the live floor
  • Catalogue enrichment: barcode to title, currency, offer spread
  • MAP compliance: spotting who is selling below your floor

Notes

  • status tells you what happened: queued_for_scrape (free, come back), cached (charged, offers attached), scraped_no_offers (charged, nobody is offering it there).
  • charged is on every record, so the bill is reconcilable line by line.
  • lowest_total_price and highest_total_price are price plus shipping, so they compare like for like.
  • Country defaults to the Netherlands. Set country for any of the 15+ supported markets.