Sandbox environment: prices, stock and coupons are synthetic test data. What this means

Which fields does a Cartroute response contain?

Every result is a product with a price_summary, a price_insight and an array of offers; each offer carries its own coupons. Money fields end in _usd and are plain numbers. The field to rank on is offer.effective_price_usd.

What is in a product?

FieldTypeDescription
idstringStable id, prd_….
slug, urlstringReadable identifier and the product's page on cart-route.com.
title, brand, category, subcategorystringDescriptive fields.
identifiersobjectgtin, mpn, model. Offers are matched across retailers on these, never on title.
rating, review_countnumberAggregate rating out of 5.
summarystringAn editorial note on buying this product, often about how its price behaves.
specsobjectDisplay-ready specifications. Only on get product.
price_summaryobjectSee below.
price_insightobjectSee below.
offersarraySorted by effective price, cheapest first.

What does price_summary tell me?

FieldDescription
best_offer_id, best_retailerThe in-stock offer with the lowest effective price (falls back to any offer if none is in stock).
best_effective_price_usdThat offer's effective price.
lowest_price_usd, highest_price_usd, spread_usdThe range of listed prices across offers.
offers_count, in_stock_count, coupons_countCounts after your filters are applied.

What does price_insight tell me?

FieldDescription
verdictgood_time_to_buy (within 1% of the 90-day low), above_recent_average (more than 5% above the 30-day average), typical_price, or insufficient_history.
reasonOne sentence with the numbers behind the verdict, suitable to quote.
low_90d_usd, high_90d_usd, avg_30d_usdComputed from the daily lowest price across retailers.
trend_30d_pct, is_at_90d_low, observationsDirection, low flag, and number of daily data points.

What is in an offer?

FieldDescription
offer_id, skuOffer id and the retailer's SKU.
retailerid, name, domain, membership_required, returns_window_days.
conditionnew or open_box. Open-box offers are separate offers, never mixed with new.
price_usdListed price.
list_price_usd, discount_from_list_pctManufacturer list price and the discount from it.
shipping_usdStandard shipping; 0 above the retailer's free-shipping threshold.
landed_price_usdPrice plus shipping, before tax.
best_couponThe applicable coupon with the largest saving that needs no special eligibility, or null.
effective_price_usdLanded price minus best_coupon.estimated_savings_usd. Rank on this.
couponsEvery applicable coupon, including ones needing eligibility. See coupons.
availabilityin_stock, stock_level (in_stock, low_stock, out_of_stock, preorder), delivery_days_min, delivery_days_max (null when pickup-only), store_pickup.
retailer_urlDirect link to the retailer.
buy_urlTracked redirect to the same place, via cart-route.com.
last_checked_at, freshness_secondsWhen the price was last observed and how long ago.

How exactly is effective price calculated?

  1. Start from price_usd.
  2. Add shipping_usd to get landed_price_usd. Tax is excluded because it depends on the delivery address.
  3. From the coupons that apply to this product and retailer, meet their minimum spend and need no eligibility, take the single largest saving. Coupons are never stacked. A percent coupon saves that share of the price; amount saves a fixed sum; shipping saves the shipping charge; gift_card saves nothing up front.
  4. Subtract it to get effective_price_usd.

The full method, with its limits, is in how Cartroute compares prices.

What is in every response envelope?

object (the response type), api_version, data_source, request_id (quote it to support), generated_at, and on metered calls credits. A replayed idempotent call adds idempotent_replay: true.