The five operations
The process status lives at the server root, outside
/v1 and
/salespilot.
The minimal path
A recommendation (in the API,Decision: the list of products recommended for that moment) and the signal that
it was shown, tied to its decision_id. With both, it appears in your store and is measured.
Conventions that apply everywhere
- The store comes from the key, never from the body:
What CrossUp decides. Another store’s
product returns
404, like a missing one. - Ids have a prefix.
cn_,itm_,var_,dec_,sig_,vis_,ses_,spk_. Treat them as opaque. - Texts are per language:
{ language: text }objects with at least one key, and no guaranteed language. - Absent means unknown, not zero or false.
- Dates are RFC 3339 in UTC.
- Errors have a fixed shape: Errors.
- Retrying is safe where there is a stable id: the signal’s.
The contract
The source of truth isplatform-api-v1.yaml, in OpenAPI 3.1. The SDK, this
reference and the test fixtures come from it.
Quota and cache
Sixty per minute,
Retry-After, and what to cache.Versioning
What can change without notice and what can’t.