Commerce CensusContactRequest access

Event reference

Six types. Each is derived from consecutive observations, so the log is reproducible rather than asserted.

TypeFires whenUseful for
price.changedAny observed price delta.Repricing, analytics.
price.threshold_crossedA watch condition is met.Alerts, consumer apps.
availability.changedStock state moved.Merchandising. Drives more decisions than price.
seller.changedBuy-box or primary seller flipped.Channel control. Usually precedes the price move.
policy.violatedObserved below your declared floor.Enforcement, with evidence attached.
match.degradedA mapping fell below trust.Data quality. Nobody else ships this.

Payload shape is uniform

JSON
{ "type": "price.changed",
  "event_id": "evt_01JQ8Z3M4K", "seq": 88421,
  "occurred_at": "2026-09-07T14:21:59Z",
  "product_id": "prd_8Fk2xQ", "listing_id": "lst_2c81", "seller": "bestbuy",
  "previous": { "price_minor": 31999, "observed_at": "2026-08-21T02:10:44Z" },
  "current":  { "price_minor": 19800, "observed_at": "2026-09-07T14:21:59Z" },
  "source":   { "channel": "direct_api", "confidence": 1.00 } }

match.degraded deserves a handler

It is the only warning you get that a comparison has quietly started comparing two different products. Most integrations ignore it and then wonder why a competitor appeared to slash prices.