Barcode Price Checker: UPC & EAN Price Compare
Pricing
from $2.40 / 1,000 product with offers
Barcode Price Checker: UPC & EAN Price Compare
Look up prices for any UPC, EAN or GTIN barcode across Amazon, Best Buy and Target, matched exactly, plus Walmart, eBay and any store on Google Shopping. Price comparison, MAP checks, your price position and change monitoring, with results in seconds.
Pricing
from $2.40 / 1,000 product with offers
Rating
0.0
(0)
Developer
CleanPull
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 hours ago
Last modified
Categories
Share
Paste barcodes (UPC, EAN, GTIN) and see every store's price, who is selling below your MAP, and where your own price ranks, in seconds. Amazon and Best Buy are searched by the barcode itself; Walmart, Target, eBay and any store you name come from Google Shopping, matched by model number, with each marketplace seller by name. Schedule it and get only what changed: a new seller, a price drop, a new lowest price, a seller going below MAP.
From our test runs on one barcode (UPC 027242923232, Sony WH-1000XM5): 21 offers from 16 stores in one record, lowest price and store at the top; with a $329.99 MAP, 15 sellers below it, each with its price, how far below, and a link.
What you get for each barcode
- Every offer, cheapest first: store, marketplace seller, price, was-price, condition, stock where the store states it, link, and the store's own id (Best Buy SKU, ASIN).
- The lowest price and where, the highest, and the spread between them.
- MAP violations: each seller below your minimum advertised price, by how much, with a link to the listing.
- Your price position: how many offers undercut your price.
- How each price was matched:
barcode,modelorname, with a confidence score, so you can trust a price at a glance. - Changes only, on a schedule: new and removed sellers, price drops and rises, stock changes, new lowest prices, tracked seller by seller.
Built for
- Brands and distributors enforcing MAP: a daily list of who is below MAP, with links to send to the seller or marketplace.
- Resellers and repricers: the market price of every SKU you carry, and alerts when a competitor moves.
- Buyers, deal sites and procurement: the cheapest store for a product list, from barcodes you already have.
How it finds prices
- Exact by barcode. Amazon and Best Buy are searched with the barcode, so their price belongs to the barcode's product: the same item, colour and edition.
- Any store on Google Shopping. Walmart and Target by default; add eBay, Home Depot, Lowe's, Newegg, Crutchfield, B&H Photo, or any store as named on Google Shopping. Marketplace sellers come with their names (
Walmart·Secondipity). - Matched by model number. A Google listing is kept when its title carries the product's model number (WH-1000XM5, AF101), taken from the stores' own product data. Another colour (
/Sfor/B), a bundle or add-on, a store outside the US, or a price far from the barcode-matched prices is set aside with the reason, never mixed into the lowest price or MAP. - Target and Best Buy through our data service (optional). With
serviceStores, Target and Best Buy are looked up by the barcode through a third-party web data service that CleanPull holds the account for (nothing to set up, no key in your input). A store's offer is kept only when the store's own record states the same barcode. Every barcode of the run goes in one search per store, which takes 3 to 5 minutes per run whatever the number of barcodes, so it suits scheduled runs and lists more than one-off lookups. - Honest about every source. Each product says per store whether it was found, not found or failed, so an empty answer is never a silent failure.
- Results in seconds. Products are checked in parallel and every record is complete when the run ends.
Input
| Field | Type | What it does |
|---|---|---|
products | array | UPC (12), EAN (13), GTIN-14 or EAN-8, or a product name (Google Shopping only) |
sources | array | amazon, bestbuy, google (default); target by barcode is optional (see Limits) |
serviceStores | array | Optional, off by default: target, bestbuy looked up by barcode through CleanPull's marketplace data service. Slow: 3 to 5 minutes per run (see below) |
googleStores | array | Stores to search on Google Shopping, one request each (default Walmart, Target) |
googleNameSearch | boolean | Also one unfiltered Google Shopping search (other stores, marketplace sellers); default on |
conditions | array | new (default), renewed, used, open-box (refurbished from saved inputs means renewed); offers of unknown condition are kept |
minConfidence, includeSetAside | number, boolean | Match threshold (default 0.7); also return set-aside listings with the reason |
mapPrices, myPrices | objects | {"barcode": price}: MAP violations; how many offers are cheaper than you |
monitorMode, monitorName | boolean, string | Changes only, per named watch |
changeTypes, minPriceChangePercent | array, number | new-offer, offer-removed, price-down, price-up, stock, new-lowest; minimum move |
maxRunCostUsd | number | Optional. Max cost per run: no product starts once it could pass this. For scheduled runs, which may have no spending limit of their own |
outputFormat | products, offers | One record per product, or one row per offer |
maxConcurrency, fields | integer, array | Products at once (default 5); return only these fields |
barcodes, gtins, eans and upcs are accepted as names for the product list too.
Example inputs
Prices for three products, with eBay as well:
{"products": ["027242923232", "045496590475", "017817846141"],"googleStores": ["Walmart", "Target", "eBay"]}
MAP check, daily, reporting only changes:
{"products": ["027242923232"],"mapPrices": { "027242923232": 329.99 },"monitorMode": true,"monitorName": "sony-map","changeTypes": ["new-offer", "price-down", "new-lowest"]}
Exact barcode prices only (Amazon and Best Buy), the cheapest way:
{ "products": ["027242923232"], "sources": ["amazon", "bestbuy"] }
Output
A product record (real, shortened to three of its 21 offers):
{"recordType": "product","barcode": "027242923232","title": "Sony - WH-1000XM5 Wireless Noise Cancelling Over-the-Ear Headphones - Black","brand": "Sony","model": "WH1000XM5/B","lowestPrice": 183.99,"lowestPriceStore": "Amazon","lowestPriceCondition": "unknown","lowestNewPrice": 198,"lowestNewPriceStore": "Best Buy","conditionCounts": { "new": 20, "renewed": 0, "used": 0, "open-box": 0, "unknown": 1 },"highestPrice": 399.99,"priceSpreadPercent": 117.4,"storeCount": 16,"offerCount": 21,"sources": { "amazon": "found", "bestbuy": "found", "google": "found" },"mapViolations": [],"mapUnconfirmed": [],"mapOtherCondition": [],"offers": [{"source": "amazon","store": "Amazon","price": 183.99,"condition": "unknown","conditionBasis": "none","offerType": "lowest-offer","offerCount": 19,"url": "https://www.amazon.com/dp/B0CFSD4TSQ","matchType": "barcode","confidence": 1},{"source": "bestbuy","store": "Best Buy","price": 198,"wasPrice": 398,"condition": "new","conditionBasis": "label","inStock": true,"url": "https://www.bestbuy.com/product/…/sku/6505727","matchType": "barcode","confidence": 1},{"source": "google","store": "Walmart","seller": "1ShopDirect","price": 198,"wasPrice": 287,"title": "Sony WH-1000XM5 Noise Canceling Wireless Headphones","condition": "new","conditionBasis": "unlabelled","matchType": "model","confidence": 0.94}]}
Every offer has source, store, seller, price, wasPrice, currency, condition, conditionBasis, inStock, offerType (listing, or lowest-offer when Amazon shows only its lowest marketplace offer), offerCount, title, url, storeId (SKU, ASIN, Google offer id), rating, reviews, matchType and confidence. Set-aside listings (returned in setAside with includeSetAside) carry a flag with the reason: other colour (…), other variant (/…), bundle or accessory (…), store outside the US, price far below the others (…) or price far above the others (…) (against the median), low confidence (…) or condition … (a condition not among conditions). In monitoring, changes lists each change with the store, from and to. A barcode no store has comes back as one not-found row; when every source failed, a failed row.
Condition
condition is new, renewed (refurbished, reconditioned, certified pre-owned), used, open-box or unknown, and conditionBasis says where it came from:
conditionBasis | Meaning |
|---|---|
label | The store's own condition (Best Buy's condition, Google's "Refurbished" or "Pre-owned" label, Amazon's "new offers") |
title | A condition word in the offer's title: "(Renewed)", "Refurbished", "Open Box", "Pre-Owned", "Used - Good", "Like New", also in Spanish |
listing | The store's own featured listing, sold new (Amazon's featured price, Target, a data-service record that states no condition) |
unlabelled | A Google Shopping listing with no condition label and no condition word in its title: Google labels only items that are not new |
store-listing | A Google product card shows the catalog's title; the same store's own listing on the same page, at the same price, states the condition in its title, given as conditionListingTitle |
none | Nothing states it: unknown (Amazon's lowest offer over "used & new" offers) |
A store's label that is not new wins; otherwise a condition word in the title does, so a "(Renewed)" listing is renewed even where Google shows no label; otherwise the same store's own listing at the same price (Google showed StackSocial's open-box Sony WH-1000XM5 at $184.99 under the catalog's title, with no label). unknown is never counted as new.
lowestPriceandlowestPriceStoreare the lowest of every offer kept, whatever its condition, withlowestPriceCondition;lowestNewPriceandlowestNewPriceStorecover confirmed-new offers only.conditionCountscounts the offers by condition.mapViolationslists confirmed-new offers below MAP only, each with itstitle,condition,conditionBasisandseller. Offers below MAP whose condition is unknown are inmapUnconfirmed; renewed, used and open-box ones inmapOtherCondition. A new offer far below MAP is a violation all the same: nothing is classified by price. In offer rows,belowMapis any offer below MAP andmapViolationa confirmed-new one.
Every run writes RUN_SUMMARY to the key-value store: the outcome (COMPLETE, PARTIAL, NO_CHANGES, EMPTY or FAILED), products with offers, any source failures, Google requests and charges.
Pricing
Pay per product with offers and per Google Shopping search.
| Event | Free and Bronze | Silver | Gold |
|---|---|---|---|
| Product with offers | $3.00 | $2.70 | $2.40 |
| Google Shopping request (per store searched, per product) | $4.00 | $3.60 | $3.20 |
| Product with changes (changes only) | $2.00 | $1.80 | $1.60 |
| Provider record (an exact barcode match from Target or Best Buy through the data service, delivered as an offer) | $3.00 | $2.70 | $2.40 |
| Provider search (one data-service search that answered: one store, all the run's barcodes) | $20.00 | $20.00 | $20.00 |
Prices are per 1,000. With the defaults (an unfiltered search plus Walmart and Target) a product costs about $15 per 1,000; Amazon and Best Buy alone cost $3 per 1,000. The product event is charged only for a product with offers; Google requests are charged as made, also for a barcode no store knows (one web search for its name, then the Shopping searches). Each run also has a $0.00005 start fee. With serviceStores, each store adds one provider search per run ($0.02, flat: it covers the near matches the service returns and the wait) and one provider record for each barcode it sells, delivered as an offer ($0.003): 100 barcodes on Target and Best Buy add at most $0.04 + $0.60. Near matches are not charged, and a search that failed or was blocked charges nothing. A run restarted after a platform migration never charges a record or a search again. Max cost per run counts the search fees and one record per barcode and store before any search starts; barcodes past that are not looked up through the service, with a note.
Limits
- US stores and US-dollar prices.
- Google Shopping does not look products up by barcode, so its listings are matched by model number or name, as each offer says. Products without a model number (games, toys, drinkware) are matched by name, with lower confidence.
- Amazon sometimes shows only its lowest marketplace offer ("19 used & new offers"), not a featured price: such offers are marked
lowest-offer. Over "used & new" offers the condition isunknown, so unlessusedis among the conditions it is listed but left out of the lowest price and price position; below MAP it is inmapUnconfirmed. - Google shows one price per listing; it does not list every seller of a product in one place, so smaller sellers appear when Google ranks them.
- Target's own API often refuses automated requests, so Target prices come from Google Shopping by default.
targetinsourcestries Target by barcode first, as a best effort. - Stock is known for Best Buy; Google listings do not state it.
- Through the data service, a run waits 3 to 5 minutes for Target and Best Buy, and a barcode the store does not sell costs only its share of the search fee. A store that refuses the service's crawler is reported as failed for that run.
- Nothing found: a product no source lists still gets one free
recordType: "not-found"row with areason, and the run succeeds; nothing is charged. A run near its time limit stops starting products, delivers what it checked and gives each product left a freerecordType: "unreadable"row. Only a run in which every source failed for every product fails.
Changelog
- 0.3.x, reliability (2026-10-24):
not-foundandfailedrows carry areason; input naming no product ends SUCCEEDED with a freeunreadablerow instead of FAILED; a run stops starting products before its time limit and ends with what it checked, never TIMED-OUT. Prices and events unchanged. - 0.3 (2026-10-16): Offer condition from the title too, and for a Google product card from the same store's own listing at the same price ("(Renewed)", "Open Box", "Pre-Owned"…, in English and Spanish), as
new,renewed,used,open-boxorunknown, withconditionBasis; unknown is never taken for new. New fieldslowestPriceCondition,lowestNewPrice,lowestNewPriceStore,conditionCounts,mapUnconfirmed,mapOtherCondition, andtitle,condition,conditionBasisin each MAP entry. Correctness fix:mapViolationsnow lists confirmed-new offers only; renewed, used and open-box offers below MAP moved tomapOtherCondition, unknown ones tomapUnconfirmed. A listing whose title says renewed (or used, open box) is now set aside when its condition is not amongconditions(defaultnew). Field names and inputs are unchanged:refurbishedinconditionsmeansrenewed, and saved monitors keep their offer keys. Saved monitors: an offer whose condition is newly detected (from its title or the store's own listing) may show a one-time change on the first run after the update: removed under its old key and new under its condition, or no longer counted when its condition is not amongconditions. - 0.2 (2026-10-15): Target and Best Buy by barcode through CleanPull's marketplace data service (
serviceStores, optional), one search per store for all the run's barcodes, exact barcode matches only. New events: provider record (an exact match delivered, $0.003) and provider search ($0.02 per store per run, only when the search answered). Off by default: runs without it are unchanged. - 0.1.x (2026-10-14): Max cost per run (
maxRunCostUsd), so a scheduled run stays within a budget even without a spending limit. - 0.1 (October 2026): Amazon and Best Buy by barcode; Google Shopping by store filter for any store, matched by model number or name; set-aside rules for colours, variants, bundles, foreign stores and outlier prices; MAP and own-price checks; changes-only monitoring by store; product and offer outputs.