Playbook · Price Monitoring
Compare one product's price across every online store
Find a product on Google Shopping, then get every store that sells it with price, condition and shipping, and sort them from cheapest.
In short
Search the product with /search to get its product_id, then call /product-offers page by page. Each offer has the store name, price, condition, shipping and a link, so you can sort all stores by price.
The use case
Which store sells this product cheapest right now, and with what shipping? Google Shopping already collects offers from hundreds of stores for the same product. Reading them as data answers the question for any product in one place.
Who does this: Price comparison and deal sites, shopping extensions and apps, retailers checking competitors' prices, and procurement teams pricing items.
How to do it
Uses the Real-Time Product Search API, tested live on October 28, 2026. Two calls: /search finds the product, /product-offers lists the stores. Here, the Sony WH-1000XM5 headphones. The cURL tab shows the search call:
import requests
API_KEY = "YOUR_API_KEY"
BASE = "https://api.openwebninja.com/realtime-product-search/v2"
found = requests.get(f"{BASE}/search", headers={"x-api-key": API_KEY},
params={"q": "Sony WH-1000XM5", "country": "us", "limit": 1}).json()["data"]["products"][0]
print(found["product_title"])
d = requests.get(f"{BASE}/product-offers", headers={"x-api-key": API_KEY},
params={"product_id": found["product_id"], "country": "us", "page": 2}).json()["data"]
print(d["product_num_offers"], "offers, typical price", d["typical_price_range"])
for o in d["offers"][:5]:
print(o["store_name"], o["price"], "|", o["shipping"])Sony WH-1000XM5 Wireless Noise Canceling Headphones
943 offers, typical price None
Verizon $399.99 | Free delivery between Nov 2 – 4
Macy's $298.00 | Free delivery between Sat - Tue
Sweetwater $298.00 | Free delivery by Mon
PC Richard & Son $399.95 | Free delivery between Oct 30 – Nov 5
DoorDash - Best Buy US $228.00 | Delivery within 2h $5.99{
"status": "OK",
"request_id": "42de3767-0052-4bcf-a406-ec7fe9c300f6",
"data": {
"products": [
{
"product_id": "catalogid:17755277695162489284,productid:8123523306754565002,gpcid:11726664398501807381,headlineOfferDocid:9029274723334583158,rds:PC_11726664398501807381|PROD_PC_11726664398501807381,imageDocid:6358316805486853251,mid:576462892684740299,pvt:hg,pvf:",
"product_title": "Sony WH-1000XM5 Wireless Noise Canceling Headphones",
"price": "$228.00",
"original_price": "$398",
"product_page_url": "https://www.google.com/search?ibp=oshop&q=Sony%20WH-1000XM5&prds=catalogid:17755277695162489284,productid:8123523306754565002,gpcid:11726664398501807381,headlineOfferDocid:9029274723334583158,rds:PC_11726664398501807381|PROD_PC_11726664398501807381,imageDocid:6358316805486853251,mid:576462892684740299,pvt:hg,pvf:&gl=us&hl=en",
"on_sale": true,
"discount_percent": "42% OFF",
"product_photos": [
"https://encrypted-tbn3.gstatic.com/shopping?q=tbn:ANd9GcRvRJGKfiuEC7WdPKOYmEvxgdpQJEXOC013Wihu67GQk_9gBUEm7XeZ-iu-U8ymvhq1UDrlQ8eyJO4NF7a_VDceZE-m4Vop"
],
"store_name": "Best Buy",
"has_multiple_offers": true,
"product_rating": 4.6,
"product_num_reviews": 14,
"shipping": null
}
],
"sponsored_products": []
}
}For a whole list
Collect the offers from the first three pages, drop repeats and sort by price:
import csv
import requests
API_KEY = "YOUR_API_KEY"
BASE = "https://api.openwebninja.com/realtime-product-search/v2"
product = requests.get(f"{BASE}/search", headers={"x-api-key": API_KEY}, params={
"q": "Sony WH-1000XM5", "country": "us", "limit": 1,
}, timeout=60).json()["data"]["products"][0]
offers = {}
for page in [1, 2, 3]:
d = requests.get(f"{BASE}/product-offers", headers={"x-api-key": API_KEY}, params={
"product_id": product["product_id"], "country": "us", "page": page,
}, timeout=60).json().get("data") or {}
for o in d.get("offers") or []:
offers.setdefault(o["offer_page_url"], o) # same offer can repeat across pages
def price(o):
return float(o["price"].strip("$").replace(",", ""))
with open("prices.csv", "w", newline="") as f:
w = csv.writer(f)
w.writerow(["store", "price", "condition", "shipping"])
for o in sorted(offers.values(), key=price):
w.writerow([o["store_name"], o["price"], o.get("product_condition"), o.get("shipping")])
print(len(offers), "unique offers")store,price,condition,shipping
Secondipity,$159.99,NEW,Free delivery between Mon - Tue
Sony,$228.00,NEW,Free delivery between Thu - Fri
DoorDash - Best Buy US,$228.00,NEW,Delivery within 2h $5.99
Best Buy,$254.99,NEW,Free delivery
Walmart - Texas Depot,$292.04,NEW,Free delivery
Macy's,$298.00,NEW,Free delivery between Sat - Tue
Sweetwater,$298.00,NEW,Free delivery by Mon
B&H Photo-Video-Audio,$298.00,NEW,Free next-day delivery
Crutchfield,$298.00,NEW,Free delivery
Adorama,$298.00,NEW,Free delivery between Wed - Fri
Crutchfield,$298.00,NEW,Free delivery
BrandsMart USA,$299.99,NEW,Delivery between Oct 31 – Nov 5 $100
QVC,$349.00,NEW,Delivery $11.72
PC Richard & Son,$399.95,NEW,Free delivery between Oct 30 – Nov 5
Verizon,$399.99,NEW,Free delivery between Nov 2 – 4
Rally House,$399.99,NEW,Delivery between Oct 31 – Nov 5 $6.99
mynavyexchange.com,$399.99,NEW,Free delivery between Wed - Tue
Kohl's,$399.99,NEW,Free delivery
HSN,$399.99,NEW,Delivery $13.22
bkstr.com,$399.99,NEW,
bkstr.com,$399.99,NEW,
bkstr.com,$399.99,NEW,
bkstr.com,$399.99,NEW,
bkstr.com,$399.99,NEW,Four calls took 16 seconds and returned 24 unique offers, from $159.99 to $399.99.
Good to know
- Page 1 holds a few featured offers (3 in our runs, different stores each time); pages 2 and up hold 10 each. Read several pages for a full comparison.
- The same store can appear more than once with different listings, so remove repeats by offer link.
- Totals move between calls: product_num_offers was 943 in one call and 542 in the next, and typical_price_range was sometimes empty.
- Check the store and condition before trusting the lowest price: the cheapest offer here was $159.99 from Secondipity, against $228 from Sony itself.
Frequently asked questions
How can I find the cheapest store selling a specific product right now, including shipping?
Search the product, read the offers from /product-offers and sort by price; each offer includes the shipping text, so you can compare what you would actually pay.
Can I compare prices only from certain stores, like Walmart, Target and Best Buy?
Yes. /search takes stores=walmart,target,best buy to limit results to those stores.
Can I compare prices for the same product in another country?
Yes. Set country (for example gb or de) on both calls; offers then come from stores selling in that country.
Check the Amazon buy box and every seller's price for any ASIN
One API call per ASIN returns the buy box winner and every competing offer, with shipping, FBA status and the delivery date for your ZIP code.
Real-Time Amazon Data
Get today's Amazon deals filtered by discount, rating and category
One call returns 30 current Amazon deals with deal price, list price, discount and ASIN, filtered the way Amazon's deals page filters them.
Real-Time Amazon Data
Look up an Amazon seller and every product they sell
From a seller ID, get the seller's business name and address, rating and feedback, then page through every product they sell.
Real-Time Amazon Data
Start building with real-time web data
Every API includes a free tier. No credit card required, and the first request is a minute away.