The initial sync sends your products and your historical orders in one go, so CrossUp starts out knowing what you sell and what already sells together. You do it once, with one snapshot per entity: open it, send pages, close it. You need the connection_id and the cct_… key from the three steps. $BASE is the URL of the CrossUp ingestion API.

What you sync

Your catalog

Categories, products, variants and stock. It’s what CrossUp can recommend.

Your historical orders

Your last year of sales. From them CrossUp learns what sells with what from day one.

The three steps

1

Open the run

One run per entity type. The response carries its run_id (snp_…).
2

Send the pages

Up to 500 entities per page, all with upsert.
3

Close it

On close, whatever of that type didn’t come is removed. On the initial sync there’s nothing to remove.
If the load breaks halfway, don’t close the run: it would remove what you haven’t sent yet. An unclosed run expires on its own after 24 hours, deleting nothing.

Read the response

Every page returns one result per position, in the same order you sent the entities.
A quarantined entity doesn’t hold up the rest: the rest of the batch goes in. What a revision is, and why resending is safe, is in Staying up to date.

Catalog first, history last

One run per entity, in this order: categories (taxonomy_node), products (item), variants (variant), availability (availability) and, last, your historical orders (order). If a product names a category that hasn’t arrived yet, it doesn’t fail: it resolves when the category arrives. There’s a single open run per connection and entity. With two, closing the first would remove what the second brought.

What you’ll see

The close returns received, deleted and quarantined. On a clean initial sync, deleted and quarantined are zero. After that, your store can read a product by your own id with GET /v1/catalog/items/by-external/{external_id} and its storefront key.

If you don’t see it

Staying up to date

Every change after the initial sync.

The canonical model

The fields of each entity.