Nosto CAPI
6 min
nosto is an onsite personalization engine it learns from what shoppers browse and buy, then renders product recommendations into your pages this destination sends that behaviour to nosto server side, over nosto's graphql api — unaffected by ad blockers, and able to report an order even when checkout happens on a domain your storefront does not control getting started you need a nosto apps token , created in nosto under settings > authentication tokens the token is scoped to one nosto account if you also use the nosto tag # destination, the token must come from the same account as the account id configured there — that is what lets both write to a single visitor session instead of two connecting to the nosto cdp destination in chord, add the nosto destination enter your api token connect it to your back end site read the deduplication note below before connecting it alongside the nosto tag using alongside the nosto tag destination the nosto tag # destination does the same job in the browser, and also renders nosto's recommendations the two are designed to run together the tag establishes nosto's visitor session, chord forwards that session identifier, and this destination updates the same session rather than creating a second one browsing, cart and identity updates are safe to send from both — writing the same cart twice leaves one cart orders are the exception do not report them from both nosto publishes no deduplication rule for order submission — no dedup key, and no documented behaviour when the same order arrives twice — so running both destinations reports each order twice choose one surface for orders this one is the more reliable of the two; the tag is the more like for like if you are replacing an existing nosto installation without the tag , this destination still reports orders, identifying the customer by your own customer reference it cannot contribute browsing behaviour, because there is no browser session for it to attach to deduplication chord sends your order's own reference as the order ref , so that is the value to deduplicate against if another system also sends orders to nosto nosto does not document its behaviour on a repeat submission, so treat "send each order once" as the rule event mapping chord event nosto mutation page viewed (home page) session update — front page view page viewed (any other page) not sent — the specific view event covers it product viewed session update — product view product list viewed session update — category view products searched session update — search cart viewed session update — cart page view product added , product removed , checkout started session update — cart contents, without counting a page view identify , signed up , email captured session update — customer details order completed order placement, with line items order refunded order status update one view is recorded per navigation your storefront fires page viewed and a specific event like product viewed on the same page load, and recording both would report every product page to nosto twice the specific event records the view; the generic page viewed carries nothing else nosto can store, so no call is made at all the home page is the exception — it has no specific event of its own, so there page viewed records the front page view this matches the nosto tag destination exactly, so running both does not reintroduce the double count for views browsing and cart events need the visitor's nosto session, so they are only sent when the nosto tag is also running and has established one orders do not order values line items send the product id, variant id, name, unit price, quantity and currency values are sent as decimal amounts in the order's own currency — a $22 43 line is sent as 22 43 , not in cents currency is sent when your event carries one and omitted otherwise, so nosto applies your account's default rather than chord guessing order status and payment provider are likewise sent only when your event includes them identity nosto receives email address, first and last name, and your customer reference in plaintext , deliberately nosto resolves a shopper to a stored profile and addresses them by name in the experiences it renders, so unlike an advertising api it accepts no hashed identifier — hashing would break the product rather than protect it if your security review needs to know exactly what is transmitted, that is the list marketing permission is sent only when your event carries one; chord assumes no default gotchas refunds are this destination's job nosto exposes order status transitions only through its graphql api, so the nosto tag cannot report them if refunds matter to your reporting, this destination is the only way to send them emptying a cart does not clear it in nosto chord's product removed carries the removed line, not the cart that remains, so chord cannot distinguish "the cart is now empty" from "this event had no products" rather than risk clearing real carts, nosto's cart is left alone in that case and updates on the next cart bearing event nosto's event set is fixed there is no arbitrary custom event chord events with no nosto equivalent are not sent, and the reason is recorded in the destination's logs sessions expire after 30 minutes of inactivity an event arriving after that has no live session to update; orders are unaffected, since they identify the customer directly consent gating applies nosto's session cookie is only set after consent, so before a visitor consents there is no session for this destination to update orders identified by customer reference are unaffected updated 1 september 2026