Tillwire Read the guide
API reference

Catalogue. 88 operations.

88 of them work. Page 4 of 5. Each needs a bearer token with its scope. All operations.

Operations

POST/api/v1/catalogue/images/{name}/notecatalogue.set-image-notecatalogue.write

Parameters

namepathstring
namepathstring
Idempotency-KeyheaderstringSee common parameters

Request body

PictureNoteRequest

Errors: 401, 403, 404, 405, 409, 413, 422, 429

curl -X POST -H "Authorization: Bearer $TOKEN" https://yourshop.example/api/v1/catalogue/images/{name}/note

POST/api/v1/catalogue/products/{slug}/made-to-ordercatalogue.set-made-to-ordercatalogue.write

Parameters

slugpathstring
slugpathstring
Idempotency-KeyheaderstringSee common parameters

Request body

MadeToOrderRequest

Errors: 401, 403, 404, 405, 409, 413, 422, 429

curl -X POST -H "Authorization: Bearer $TOKEN" https://yourshop.example/api/v1/catalogue/products/{slug}/made-to-order

POST/api/v1/catalogue/products/{slug}/option-picturescatalogue.set-option-picturescatalogue.write

Parameters

slugpathstring
slugpathstring
Idempotency-KeyheaderstringSee common parameters

Answer

array of OptionPictures

Errors: 401, 403, 404, 405, 409, 413, 422, 429

curl -X POST -H "Authorization: Bearer $TOKEN" https://yourshop.example/api/v1/catalogue/products/{slug}/option-pictures

POST/api/v1/catalogue/products/{slug}/optionscatalogue.set-optionscatalogue.write

Parameters

slugpathstring
slugpathstring
Idempotency-KeyheaderstringSee common parameters

Request body

OptionsRequest

Errors: 401, 403, 404, 405, 409, 413, 422, 429

curl -X POST -H "Authorization: Bearer $TOKEN" https://yourshop.example/api/v1/catalogue/products/{slug}/options

POST/api/v1/catalogue/variants/{sku}/pricecatalogue.set-pricecatalogue.write

Parameters

skupathstring
skupathstring
Idempotency-KeyheaderstringSee common parameters

Request body

PriceRequest

Errors: 401, 403, 404, 405, 409, 413, 422, 429

curl -X POST -H "Authorization: Bearer $TOKEN" https://yourshop.example/api/v1/catalogue/variants/{sku}/price

POST/api/v1/catalogue/review/{slug}/classescatalogue.set-product-classescatalogue.write

Parameters

slugpathstring
slugpathstring
Idempotency-KeyheaderstringSee common parameters

Errors: 401, 403, 404, 405, 409, 413, 422, 429

curl -X POST -H "Authorization: Bearer $TOKEN" https://yourshop.example/api/v1/catalogue/review/{slug}/classes

POST/api/v1/catalogue/products/{slug}/fieldscatalogue.set-product-fieldscatalogue.write

Parameters

slugpathstring
slugpathstring
Idempotency-KeyheaderstringSee common parameters

Request body

FieldValuesRequest

Errors: 401, 403, 404, 405, 409, 413, 422, 429

curl -X POST -H "Authorization: Bearer $TOKEN" https://yourshop.example/api/v1/catalogue/products/{slug}/fields

POST/api/v1/catalogue/products/{slug}/retiredcatalogue.set-retiredcatalogue.write

Parameters

slugpathstring
slugpathstring
Idempotency-KeyheaderstringSee common parameters

Request body

SetRetiredRequest

Errors: 401, 403, 404, 405, 409, 413, 422, 429

curl -X POST -H "Authorization: Bearer $TOKEN" https://yourshop.example/api/v1/catalogue/products/{slug}/retired

POST/api/v1/catalogue/review-settingcatalogue.set-reviewstore.write

Parameters

Idempotency-KeyheaderstringSee common parameters

Request body

SetReviewRequest

Errors: 401, 403, 405, 409, 413, 422, 429

curl -X POST -H "Authorization: Bearer $TOKEN" https://yourshop.example/api/v1/catalogue/review-setting

POST/api/v1/catalogue/review-classescatalogue.set-review-classescatalogue.write

Parameters

Idempotency-KeyheaderstringSee common parameters

Errors: 401, 403, 405, 409, 413, 422, 429

curl -X POST -H "Authorization: Bearer $TOKEN" https://yourshop.example/api/v1/catalogue/review-classes

POST/api/v1/catalogue/variants/{sku}/salecatalogue.set-salecatalogue.write

Parameters

skupathstring
skupathstring
Idempotency-KeyheaderstringSee common parameters

Request body

SaleRequest

Errors: 401, 403, 404, 405, 409, 413, 422, 429

curl -X POST -H "Authorization: Bearer $TOKEN" https://yourshop.example/api/v1/catalogue/variants/{sku}/sale

POST/api/v1/catalogue/products/{slug}/slugcatalogue.set-slugcatalogue.write

Parameters

slugpathstring
slugpathstring
Idempotency-KeyheaderstringSee common parameters

Request body

SlugRequest

Errors: 401, 403, 404, 405, 409, 413, 422, 429

curl -X POST -H "Authorization: Bearer $TOKEN" https://yourshop.example/api/v1/catalogue/products/{slug}/slug

POST/api/v1/catalogue/variants/{sku}/stockcatalogue.set-stockcatalogue.write

Parameters

skupathstring
skupathstring
Idempotency-KeyheaderstringSee common parameters

Request body

StockRequest

Errors: 401, 403, 404, 405, 409, 413, 422, 429

curl -X POST -H "Authorization: Bearer $TOKEN" https://yourshop.example/api/v1/catalogue/variants/{sku}/stock

POST/api/v1/catalogue/variants/{sku}/detailscatalogue.set-variant-detailscatalogue.write

Parameters

skupathstring
skupathstring
Idempotency-KeyheaderstringSee common parameters

Errors: 401, 403, 404, 405, 409, 413, 422, 429

curl -X POST -H "Authorization: Bearer $TOKEN" https://yourshop.example/api/v1/catalogue/variants/{sku}/details

POST/api/v1/catalogue/variants/{sku}/fieldscatalogue.set-variant-fieldscatalogue.write

Parameters

skupathstring
skupathstring
Idempotency-KeyheaderstringSee common parameters

Request body

FieldValuesRequest

Errors: 401, 403, 404, 405, 409, 413, 422, 429

curl -X POST -H "Authorization: Bearer $TOKEN" https://yourshop.example/api/v1/catalogue/variants/{sku}/fields

POST/api/v1/catalogue/variants/{sku}/imagescatalogue.set-variant-imagescatalogue.write

Parameters

skupathstring
skupathstring
Idempotency-KeyheaderstringSee common parameters

Errors: 401, 403, 404, 405, 409, 413, 422, 429

curl -X POST -H "Authorization: Bearer $TOKEN" https://yourshop.example/api/v1/catalogue/variants/{sku}/images

GET/api/v1/catalogue/stock-alertscatalogue.stock-alert-countscatalogue.read

Answer

array of StockAlertCount

Errors: 401, 403, 405, 422, 429

curl -X GET -H "Authorization: Bearer $TOKEN" https://yourshop.example/api/v1/catalogue/stock-alerts

GET/api/v1/catalogue/stock-levelscatalogue.stock-levelscatalogue.read

Answer

array of VariantStock

Errors: 401, 403, 405, 422, 429

curl -X GET -H "Authorization: Bearer $TOKEN" https://yourshop.example/api/v1/catalogue/stock-levels

POST/api/v1/catalogue/products/{slug}/unpublishcatalogue.unpublishcatalogue.write

Parameters

slugpathstring
slugpathstring
Idempotency-KeyheaderstringSee common parameters

Errors: 401, 403, 404, 405, 409, 422, 429

curl -X POST -H "Authorization: Bearer $TOKEN" https://yourshop.example/api/v1/catalogue/products/{slug}/unpublish

Schemas 38

ChoiceField

ChoiceField is a question a product asks the buyer for each cart line: a free text, or one value of a list. Its Key never changes after an order uses it.

helprequiredstring
keyrequiredstring
kindrequiredstring
labelrequiredstring
linesrequiredinteger
max_lengthrequiredinteger
optionalrequiredboolean
valuesrequiredarray of string
Combo

Combo is a combo variant as the operations show it: whether it sells at the sum of its parts' prices, and its parts in order. From version 6.

partsrequiredarray of ComboPartRequest
sumrequiredboolean
ComboPartRequest

ComboPartRequest is a part of a combo: the SKU of a variant of the store that is no combo itself, once in a combo, and how many of it one combo holds, from 1 to 99.

quantityrequiredinteger
skurequiredstring
Dimensions

Dimensions are a variant's size in whole millimetres: all three 0 for none, or each from 1 to 10 000.

height_mmrequiredinteger
length_mmrequiredinteger
width_mmrequiredinteger
FieldValue

FieldValue is the value of a field in a request: a text, a number, a bool or a list of them, as JSON writes them, read as the list of texts the field judges: a number as it is written, true and false as yes and no; null, none.

array of string or string or number or boolean or null

FieldValuesRequest

FieldValuesRequest sets the values of fields for the product or the variant its path names: each by the field's key, null to unset it.

valuesrequiredmap of FieldValue
LinksRequest

LinksRequest is one of a product's lists of other products, its kind (related, upsells or cross_sells) and the products' slugs, in order.

kindrequiredstring
productsrequiredarray of string
MadeToOrderRequest

MadeToOrderRequest makes the variants of a product made to order, or not. SKU names one variant; "" sets every variant of the product. ProductionDays is 1 to 365 and is needed when MadeToOrder is true; Supplier is a supplier's key, or "" when the store makes it itself. A variant that tracks stock, a digital variant, a gift card, a combo or a part of one is Refused, and so is a supplier that is none or archived.

made_to_orderrequiredboolean
production_daysrequiredinteger
skurequiredstring
supplierrequiredstring
Money

Money is an amount: in minor units of its ISO 4217 currency, and as the store displays it.

currencyrequiredstring
displayrequiredstring
minorrequiredinteger
OptionPictures

OptionPictures is the list of pictures of one value of one option of a product (ASI-3.5, C14): the names of the product's own pictures, in order. A variant with none of its own shows the list of the first of its option values that has one, else its product's pictures. Additive, from version 6.

imagesrequiredarray of string
optionrequiredstring
valuerequiredstring
OptionPicturesRequest

OptionPicturesRequest sets the list of pictures of one value of one option of a product; no names take the list away.

imagesrequiredarray of string
optionrequiredstring
valuerequiredstring
OptionsRequest

OptionsRequest is a product's options and its variants' values of them: its option names, in order, none for a product with one live variant; and every variant of the product, archived ones included, each once, with its value of each option, by the option's name.

optionsrequiredarray of string
variantsrequiredarray of VariantOptions
PictureNoteRequest

PictureNoteRequest is the free text the owner keeps on a picture, for any purpose.

noterequiredstring
PictureVersion

PictureVersion is a picture, or an edited version of one, with its review state (ASI-3.1 to ASI-3.6). A version has Of, the name of the original it is a version of; an original has Of "" and Shown, the name of the version it shows, "" when it shows itself. Additive, from version 6.

altrequiredstring
digestrequiredstring
heightrequiredinteger
heldrequiredboolean
hold_reasonrequiredstring
largerequiredstring
made_byrequiredstring
namerequiredstring
noterequiredstring
ofrequiredstring
shownrequiredstring
sourcerequiredstring
source_refrequiredstring
staterequiredstring
thumbnailrequiredstring
uploaded_atrequiredstring (date-time)
widthrequiredinteger
PriceRequest

PriceRequest is a variant's new price, as the owner enters it.

pricerequiredstring
Product

Product is a product of the catalogue, with every variant.

card_titlerequiredstring
categoriesrequiredarray of string
categoryrequiredstring
choicesrequiredarray of ChoiceField
choices_allowedrequiredboolean
choices_refusedstring
country_of_originrequiredstring
cross_sellsrequiredarray of string
descriptionrequiredstring
enquiry_moderequiredstring
enquiry_onlyrequiredboolean
enquiry_show_pricerequiredboolean
featured_positionrequiredinteger
fieldsrequiredmap of array of string
hs_coderequiredstring
meta_descriptionrequiredstring
meta_titlerequiredstring
optionsrequiredarray of string
relatedrequiredarray of string
retiredProductRetirement
ships_freerequiredboolean
short_descriptionrequiredstring
slugrequiredstring
titlerequiredstring
unpublished_atstring (date-time)
updatedstring (date-time)
upsellsrequiredarray of string
variantsrequiredarray of Variant
ProductChange

ProductChange is a product as an operation left it, and whether the operation changed it.

changedrequiredboolean
productrequiredProduct
ProductClassesRequest

ProductClassesRequest sets the review classes a product is of, by key (none for none); a key the store has not is Invalid.

classesrequiredarray of string
ProductRetirement

ProductRetirement is how a product left the shop (PR-4): At, when it was retired; ReplacedBy, the slug of the product that replaces it, "" for none; KeepPage, whether its address keeps a page that says it is no longer sold.

atrequiredstring (date-time)
keep_pagerequiredboolean
replaced_byrequiredstring
ReviewActResult

ReviewActResult is the product after an act: its state and look-again flag, whether it is published, and, after an approval, the next product of the list ("" for none).

look_againrequiredboolean
nextrequiredstring
publishedrequiredboolean
slugrequiredstring
staterequiredstring
ReviewClass

ReviewClass is a review class of the store's (ASI-2.3): its key, and the label and the badge's words the store writes.

approversarray of string
badgerequiredstring
block_claimsarray of string
keyrequiredstring
labelrequiredstring
ReviewClasses

ReviewClasses are the store's review classes, in its order.

classesrequiredarray of ReviewClass
ReviewClassesRequest

ReviewClassesRequest replaces the store's review classes whole. A key is 1 to 40 of a-z, 0-9 and "-"; Label and Badge are the store's own words. A class a product still holds cannot be left out (Invalid, naming it).

classesrequiredarray of ReviewClass
ReviewSetting

ReviewSetting is the store's catalogue.review and what turning it on would move (ASI-2.1, 46h).

onrequiredboolean
productsrequiredinteger
publishedrequiredinteger
turn_on_secondsrequiredinteger
Sale

Sale is a variant's sale price and its window: the price it sells at from Start, inclusive, to End, exclusive.

endrequiredstring (date-time)
pricerequiredMoney
startrequiredstring (date-time)
SaleRequest

SaleRequest is a variant's sale as the owner enters it: its price, text with exactly two decimals, and its start and end, each a date such as 2026-10-01 or a date and time such as 2026-10-01T08:00 in store.timezone, the end after the start.

endrequiredstring
pricerequiredstring
startrequiredstring
SetRetiredRequest

SetRetiredRequest changes the retirement of a retired product (PR-4): ReplacedBy, the slug of the product that replaces it, "" for none (a product retired too is followed to the first on sale, at most 5 steps; the product itself is refused); KeepPage, whether its page is kept.

keep_pagerequiredboolean
replaced_byrequiredstring
SetReviewRequest

SetReviewRequest turns the review on or off. Turning it on needs Existing (Invalid without it); turning it off keeps every record.

existingstring
onrequiredboolean
SlugRequest

SlugRequest is the slug a product moves to.

torequiredstring
StockAlertCount

StockAlertCount is the demand for back-in-stock alerts of one variant: it holds no address.

option_valuesrequiredarray of string
productrequiredstring
sentrequiredinteger
skurequiredstring
waitingrequiredinteger
StockRequest

StockRequest is a variant's new stock count, and the count the caller saw, which the store must still hold for the set to be made. The body must carry both: the API door refuses one without either. Location names the stock location whose level is set; none (or main) is the location main. Expected and Count are then that location's.

countrequiredinteger
expectedrequiredinteger
locationstring
Variant

Variant is a variant of a product.

allow_backorderrequiredboolean
archived_atstring (date-time)
comboCombo
compare_atMoney
digitalrequiredboolean
dimensionsDimensions
dispatch_byrequiredstring
fieldsrequiredmap of array of string
filerequiredVariantFile
imagesrequiredarray of string
low_stock_thresholdinteger
made_to_orderrequiredboolean
option_valuesrequiredarray of string
pricerequiredMoney
production_daysrequiredinteger
saleSale
ships_alonerequiredboolean
skurequiredstring
stockrequiredinteger
supplierrequiredstring
tax_classrequiredstring
track_stockrequiredboolean
weight_gramsrequiredinteger
VariantChange

VariantChange is a variant as an operation left it, and whether the operation changed it.

changedrequiredboolean
variantrequiredVariant
VariantDetailsRequest

VariantDetailsRequest is the details of a variant the owner sets: each one given is set, and each left out stays as it is.

allow_backorderboolean
digitalboolean
dimensionsDimensions
low_stock_thresholdinteger
ships_aloneboolean
store_thresholdboolean
tax_classstring
track_stockboolean
weight_gramsinteger
VariantFile

VariantFile is a digital variant's file: its name as a download is saved, its size in bytes, its SHA-256 in lower-case hex, and when and by whom it was uploaded. From contract version 6.

digestrequiredstring
namerequiredstring
sizerequiredinteger
uploaded_atrequiredstring (date-time)
uploaded_byrequiredstring
VariantImagesRequest

VariantImagesRequest is the images a variant shows: names of images of its own product, each once, in order; none clears them, and the variant then shows its product's.

namesrequiredarray of string
VariantOptions

VariantOptions are one variant's values of its product's options, by the option's name.

optionsrequiredmap of string
skurequiredstring
VariantStock

VariantStock is a variant that runs low: its SKU, its product's slug and title, its option values, its stock level (low_stock, out_of_stock or backorder) and its available stock.

availablerequiredinteger
levelrequiredstring
option_valuesrequiredarray of string
productrequiredstring
skurequiredstring
titlerequiredstring

Made from engine/internal/openapi/openapi.json at commit 6c4cbd921. The contract-only operations come from the engine’s stub file, engine/internal/ops.