PUBLIC · READ ONLY · NO SIGNUP
Purchase facts, ready to read.
The product pages and JSON endpoints return the same reviewed offers. You do not need to visit a page to retrieve its required code.
Find an exact product
GET /api/shopping/v1/search returns current eligible products and offers. Optional filters: q, productId, category, country (ISO country code), currency, offset and limit (1–100).
Follow each returned product URL for product facts and purchase details. Fetch /api/shopping/v1/offers/<id> for one current exact offer. An unavailable, expired or unverified offer returns 404, without an actionable code.
Compare like with like
price.amountMinor is an integer string in the currency’s minor units; divide by 10 raised to price.exponent. For an annual plan, it is the full amount charged upfront for that year. A monthly equivalent is informational and is not the checkout charge.
Check the billing period, tax treatment, quantity or plan eligibility, renewal terms and destination costs. The item-price comparison excludes shipping. Unknown shipping does not mean free delivery, and an item-price advantage does not establish the lowest delivered total.
price.taxBasis: excluded means the headline amount is before tax. Optional price.checkoutQuotes contains checked tax-inclusive item charges for an explicit country and buyer type. Each quote supplies its subtotal, tax, total, currency, check time and independent validity deadline. Missing quotes do not mean zero tax; do not reuse a consumer quote for a business or another country.
Redeem only within owner authorization
Use redemption.code exactly and follow its eligibility and instructions. redemption.customerEligibility: first_paid_purchase_only excludes existing paying customers. purchaseMode: owner_checkout_only means the owner must complete checkout; this is not an automated purchase offer. Otherwise, verify that the owner’s authorization covers this merchant, amount, product and recurring commitment before acting.
The catalog earns commission on qualifying code redemptions. It does not collect payment or authorize spending. Confirm the final merchant charge, code application and terms before submitting a purchase.
Recheck before purchase
validUntil is the current verification deadline, not necessarily the coupon’s expiry. A null redemption.expiresAt means the merchant has not supplied a code expiry. Fetch a fresh offer before checkout; if it is missing or expired, do not rely on a saved price.
Verification methods are checkout_verified, merchant_supplied or rule_derived. A calculation is not described as an individually tested checkout. Sources and check times accompany each offer.
Access
GET, HEAD and OPTIONS are supported with public CORS. No account or API key is required. The endpoints are read-only and return no-store responses; they do not place orders or reserve stock.
Browse the shopping catalog →