You display; CrossUp picks what, for whom and at which moment. It learns from your catalog, your orders and what each shopper does, and hands back a recommendation ready to show.

What goes in

The catalog and orders arrive through the app or a connector, translated into a common model. Signals arrive from your store, with what the shopper did.

What comes out

What CrossUp returns is a recommendation: the products for that moment, in order, with title, price, stock and image. In the API that object is called Decision, and decision_id is the recommendation’s id.
If there’s nothing to recommend, the recommendation comes back empty, with a reason.

What CrossUp decides, and what stays on your side

Your key identifies your store

With the storefront key you create in the CrossUp admin (Settings → Keys for your storefront) you request the recommendations you’ll show in your store. You don’t need to say which store you are: the key already knows. That’s why nobody can request recommendations or read products from another store by changing a field in the request. A product from another store answers the same as one that doesn’t exist: 404.

What you will see

Data, not HTML. Each product in results is enough to render it without another call. This is how the POST /v1/recommendations response travels for a product page, trimmed to one result. Optional fields the catalog doesn’t have are left out.
Response
And this is how your store reads it:

The six moments

Where a recommendation shows up and what each moment needs.

How your store connects

App or connector: it depends on where your store runs.