Zinc
All Blogs
Guides

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

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.

APIWhat it claimsHistory / warehouseCan it purchase the cheaper offer?
PriceAPIEcommerce price tracking and comparison dataBuilt for monitoring over timeNo. Data only
PricesAPIURL or text in; matched products and per-merchant offers. Free tier: 1,000 calls/month. Cold search 7 to 30s on their siteCached when warm; not a Keepa-style multi-year warehouseNo
ShopSavvy Data APIProduct details, offers across "tens of thousands of retailers," history, scheduled refreshesYes. History billed per day of dataNo. The retail analytics product is monitoring, not checkout
retailerapi.comOne lookup by UPC/ASIN/URL: current price, sellers, history. 1,000 lookups/month freeYes, price history in the responseNo
Rye Product Data APILive lookup by merchant URL. Rye publishes 91% reliability vs 55.5% on a test of the top 450 US storesShort cache (minutes), not a historical warehouseRye has a separate checkout-intent API. Data lookup itself does not buy
Best Buy APIsProducts, categories, stores, open-box. Pricing "near real-time" for Best Buy's catalogCatalog includes historical productsCommerce API is invite-only and Best Buy only
ZincSearch and details across 50+ retailers, then Create OrderLive offer at order time, not years of ticksYes, 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:

  1. GET /search?q=... to rank live offers across retailers (beta). For one retailer, use GET /products/search?query=...&retailer=amazon (retailer is required; amazon, walmart, bestbuy, etsy, or a Shopify domain).
  2. POST /orders with the winning product URL, address, max_price, and idempotency_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:

QuestionTool
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 trackingZinc Create Order
MAP violations across 8,000 storesShopSavvy / 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

  1. Fix the identity. Use a UPC, ASIN, or a specific model string. "OLED TV" is not comparable. "Sony Bravia 65-inch XR65X90L" is.
  2. 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.
  3. 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.
  4. Re-read the winner. Call GET /products/{product_id}?retailer=... (or Rye/ShopSavvy lookup) so the price you send to max_price is minutes old, not this morning's search cache.
  5. Order once. Same idempotency_key on retries. A replay returns already_exists with the original order id. Store that id against your SKU and customer.
  6. Handle the miss. If order.failed because 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.

Compare Amazon, Walmart, and Target, then buy

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.