Authentication
Send your key on every request, either way:401. Keys can be revoked and replaced at any time.
List the catalogue
GET /api/v1/catalog
cursor=<next_cursor> until next_cursor is null.
One product
GET /api/v1/catalog/{sku} returns { "data": { ... } } or 404.
Fields
costis the vendor cost to you: the final price Vendi sells the product to the warehouse, perunit_of_measure. Add your own store markup on top.eta_daysdefaults to 21.supplieris for your internal use and must be hidden from buyers.- Vendor, markup % and store price are deliberately not sent.
- Only approved products with a price are listed; products Vendi has flagged as unreliable are left out.
Errors
401 bad or missing key, 400 bad parameter, 404 unknown SKU, 500 try again shortly.
SKU standard
Every product supplied by CK or Guy has a SKU in the form{CATEGORY}-{BRAND}-{PRODUCT}[-{VARIANT}]-{SUPPLIER}, for example NICP-ALP-CHILMINT-6MG-CK. If two products would collide, a pack/case disambiguator (e.g. P8, C30) or a number is added before the supplier code. Products that come from WooCommerce / the master catalogue keep their own SKU.
- Store the
skufield as the product identifier on your side. It is stable once assigned. - Legacy SKUs (for example
CK-230068,GUY-1234) still resolve:GET /api/v1/catalog/{sku}and the other SKU inputs accept either the current or an old SKU and return the product under its current SKU. Always use theskuin the response from then on. - New products get their SKU from one server helper (
generateProductSku), so the format is the same however the product was created.