Price & Stock Comparison API: Compare and Buy (2026)
Data APIs return offers. Learn how to compare live prices and stock across retailers, then buy the winning SKU in one flow.
Price comparison APIs return offers. Most do not place the cheaper in-stock order. A price and stock comparison API can mean a read-only feed, or it can mean search plus checkout so your app buys the winning offer at Amazon, Walmart, or Target.
- What a price and stock comparison API actually returns
- Data-only APIs vs APIs that can also purchase
- How Zinc search plus Create Order works
- What Zinc is not (Keepa, PriceAPI, history)
- A practical compare-then-buy workflow
- Limits and mistakes
- FAQ
What a price and stock comparison API actually returns
The job sounds simple: given a product, list current prices and availability at more than one retailer.
In practice the payload needs at least:
- A normalized product (title, identifiers, URL)
- Per-retailer price and currency
- Stock state (in stock, out of stock, unknown)
- A buy URL you can hand to checkout
- A timestamp, because "real time" is a range, not a promise
Some APIs add years of history, MAP monitoring, or thousands of long-tail stores. That is price intelligence. It is a different product from "find the cheapest in-stock unit and order it."
Official retailer APIs rarely give a third party both sides. Best Buy's Products API exposes catalog, pricing, and store availability for Best Buy's own assortment. The Commerce API that actually purchases is invite-only. Amazon SP-API pricing is for sellers repricing their SKUs, not for shopping the public catalog. See Amazon API and Walmart API.
Data-only APIs vs APIs that can also purchase
For dashboards, repricing, or insurance replacement-cost math, data APIs like PriceAPI and ShopSavvy are the right tool.
| API | What it claims | History / warehouse | Can it purchase the cheaper offer? |
|---|---|---|---|
| PriceAPI | Ecommerce price tracking and comparison data | Built for monitoring over time | No. Data only |
| PricesAPI | URL or text in; matched products and per-merchant offers. Free tier: 1,000 calls/month. Cold search 7 to 30s on their site | Cached when warm; not a Keepa-style multi-year warehouse | No |
| ShopSavvy Data API | Product details, offers across "tens of thousands of retailers," history, scheduled refreshes | Yes. History billed per day of data | No. The retail analytics product is monitoring, not checkout |
| retailerapi.com | One lookup by UPC/ASIN/URL: current price, sellers, history. 1,000 lookups/month free | Yes, price history in the response | No |
| Rye Product Data API | Live lookup by merchant URL. Rye publishes 91% reliability vs 55.5% on a test of the top 450 US stores | Short cache (minutes), not a historical warehouse | Rye has a separate checkout-intent API. Data lookup itself does not buy |
| Best Buy APIs | Products, categories, stores, open-box. Pricing "near real-time" for Best Buy's catalog | Catalog includes historical products | Commerce API is invite-only and Best Buy only |
| Zinc | Search and details across 50+ retailers, then Create Order | Live offer at order time, not years of ticks | Yes, on supported retailers |
ShopSavvy, PricesAPI, and retailerapi publish those plan numbers on their marketing pages. Treat them as vendor figures and re-check pricing before you commit.
Rye is the closest data+buy cousin: lookup, then POST /api/v1/checkout-intents. Zinc's split is the same shape: search or details, then Create Order. Coverage differs. Zinc is a purchasing API for Amazon, Walmart, Target, Best Buy, and the rest of its retailer list. It is not trying to index 70,000 stores.
If you only need a spreadsheet of competitor prices, buy ShopSavvy or PriceAPI. If the next line of code is place_order, you need execution.
How Zinc search plus Create Order works
Zinc's comparison path is two calls you already see in AI shopping agents:
GET /search?q=...to rank live offers across retailers (beta). For one retailer, useGET /products/search?query=...&retailer=amazon(retaileris required;amazon,walmart,bestbuy,etsy, or a Shopify domain).POST /orderswith the winning product URL, address,max_price, andidempotency_key
Search returns structured offers you can rank by price and availability. Confirm the live listing with GET /products/{product_id}?retailer=... before you spend. Create Order is the purchase. The spend cap is max_price on the order, not a search parameter. Orders are async; webhooks report order.placed, order.failed, order.tracking_received, order.delivered.
curl "https://api.zinc.com/search?q=usb-c%20hub" \
-H "Authorization: Bearer <your_api_key>"Pick an in-stock URL, then:
curl https://api.zinc.com/orders \
-H "Authorization: Bearer <your_api_key>" \
-H "Content-Type: application/json" \
-d '{
"idempotency_key": "hub-compare-2026-08-31",
"products": [{"url": "https://www.walmart.com/ip/example", "quantity": 1}],
"shipping_address": {
"first_name": "Jordan",
"last_name": "Lee",
"address_line1": "120 Market Street",
"city": "Austin",
"state": "TX",
"postal_code": "78701",
"country": "US",
"phone_number": "5125550142"
},
"max_price": 4000
}'max_price is the all-in cap in cents. A search snippet that said $32 does not bind the retailer. If Walmart's total with tax is $41, the order fails instead of overspending.
Agents can run the same loop through the Universal Checkout skill instead of raw HTTP.
What Zinc is not (Keepa, PriceAPI, history)
Zinc is not a historical price-intelligence warehouse. Keepa, PriceAPI, ShopSavvy history endpoints, and retailerapi exist to answer "what did this ASIN do for the last 18 months?" Zinc answers "what can I buy right now, and can I check out?"
Do not load Zinc search into a time-series database and call it Keepa. You will miss seller mix, Buy Box charts, and backfill. Do not load Keepa into checkout and call it a purchasing API. You will still have a human on amazon.com.
A clean split:
| Question | Tool |
|---|---|
| Is $79 a real low or a fake sale? | Keepa / PriceAPI / ShopSavvy history |
| Who is cheapest and in stock among Amazon, Walmart, Target today? | Zinc search, or a data API you already trust |
| Buy that offer and get tracking | Zinc Create Order |
| MAP violations across 8,000 stores | ShopSavvy / PriceAPI style warehouse |
Scraping each PDP yourself recreates the worst of both: brittle HTML plus no checkout. That tradeoff is in web scraping vs ecommerce API.
A practical compare-then-buy workflow
- Fix the identity. Use a UPC, ASIN, or a specific model string. "OLED TV" is not comparable. "Sony Bravia 65-inch XR65X90L" is.
- Search two or three retailers you can actually fulfill. Zinc's Amazon, Walmart, Target, and Best Buy coverage matters more than a 70,000-store index you cannot check out on.
- Drop out-of-stock and third-party noise. A $1 cheaper marketplace seller with a 3-week SLA is not a win if your SLA is two-day.
- Re-read the winner. Call
GET /products/{product_id}?retailer=...(or Rye/ShopSavvy lookup) so the price you send tomax_priceis minutes old, not this morning's search cache. - Order once. Same
idempotency_keyon retries. A replay returnsalready_existswith the original order id. Store that id against your SKU and customer. - Handle the miss. If
order.failedbecause of stock or price, take the second-best URL or notify an operator.
For replenishment, persist the last winning retailer. For a one-off buy, re-rank every time. Prices move.
Limits and mistakes
- Calling a data API a purchasing API. ShopSavvy and PricesAPI will give you the Walmart URL. You still need something that can check out as a shopper.
- Best Buy Products API as a buy button. Catalog and store hours are public. Commerce is invite-only and Best Buy-only.
- Ranking on list price. Shipping, tax, and seller can invert the winner. Cap the total with
max_price. - Assuming stock is a boolean you can cache all day. Treat availability as stale within minutes. Rye's own write-up exists because cached "in stock" breaks agent checkout.
- Expecting Zinc to replace Keepa. If the ticket is "18 months of Amazon price ticks," buy Keepa or PriceAPI.
- Retry storms. Two workers both seeing "Walmart $28" without one idempotency key is two orders.
FAQ
What API can I use for real-time product price and stock comparison?
For data across many retailers, ShopSavvy, PricesAPI, PriceAPI, and retailerapi are built for that query. For comparison and purchase at Amazon, Walmart, and Target, use Zinc GET /search to rank live offers, then Create Order on the winner.
Does Zinc store historical prices like Keepa or PriceAPI?
No. Zinc reads live listings to buy them. Historical intelligence is Keepa, PriceAPI, or ShopSavvy's history endpoints.
Can Best Buy's API compare Amazon and Walmart?
No. Best Buy's public APIs cover Best Buy's catalog and stores. Cross-retailer comparison needs a multi-retailer data API or Zinc search. Best Buy purchase through their Commerce API is invite-only.
How do I buy the cheaper in-stock offer automatically?
Rank in-stock offers, set max_price to your approved total, send Create Order with an idempotency_key, and subscribe to order.placed / order.failed. Do not trust a search hit from this morning.
Can an agent compare retailers and check out?
Yes. Install the Universal Checkout skill, pass the query and cap, require a shown total, then place the order. Setup: agent skills.
Final recommendation
Use a warehouse API when the artifact is a chart. Use Zinc when the artifact is a tracking number.
Start with docs, integrations, and pricing. Get a key at app.zinc.com.
Paste this into Cursor or Claude Code after installing the Universal Checkout skill. The agent ranks live in-stock offers and only orders the winner under your cap.



