Your connector can be in the language you already use: the protocol is an OpenAPI contract over HTTP. Today you speak it with any HTTP client, and the types come from the same contract.

What’s there today

  • The contract: connector-protocol-v1.yaml, in OpenAPI 3.1. The protocol reference, in this same tab, comes from it and has a playground.
  • The types: generate them for your language with the OpenAPI generator you already use. CrossUp generates the Go and TypeScript ones from the same contract.
  • Validation: the contract’s schemas are JSON Schema. Validate before you send and you won’t spend a call on something that comes back quarantined.
You don’t need an SDK to connect: it’s a handful of calls, and they all carry Authorization: Bearer cct_….

One call, in three languages

No language covers two things for you: leave out what your system doesn’t have, and don’t log a whole order, which carries shopper data.

The two halves of an integration

CrossUp keeps feeding apart from consuming. Your connector uploads catalog and orders from your server. Your store requests recommendations and sends back signals with the Storefront SDK. Each half has its own key and its own contract.

What you’ll see

A POST …/snapshots that returns a run_id, pages with accepted in every position and a close with deleted and quarantined at zero.
The connector protocol doesn’t follow the public API’s versioning policy. It’s a contract between your connector and CrossUp.

Initial sync

The snapshot, step by step.

How your store connects

The two halves, from the start.