Customiser mounting colours
Create a mounting colour
Adds a mounting colour to the customiser, at the end of the current
presentation order. name, hexcode, and mounting_ids are required —
a colour with no hex value paints the hardware with nothing, and one no
mounting offers is unreachable in the storefront.
Overview
Every other field has a
documented default (opacity 1, applied_to_visualisation true,
min_size_rule any, base_price 0, price_multiplier 1,
price_multiplier_target base_letter_price).
mounting_ids must name the customiser's own mountings — an id from
another customiser or another store is a 422 on the offending element.
Image fields are read-only until the upload surface ships, and sort_order
moves only through the reorder operation; naming either is a 422.
Requires customisers:write and an Idempotency-Key.
The write clears the customiser's cached storefront configuration and runs
the advisory language sync. It never regenerates Shopify products, product
images, or the product cache, so live listings are untouched. Option
writes also spend one unit of a separate per-key option-write budget;
exhausting it returns a 429 with retry_after.
Authorisation
Bearer token required. Include it in theAuthorization header.
Required scope: customisers:write
Path parameters
The customiser id.
Example: 1
Request body
Request body example
{
"min_size_rule": "any",
"price_multiplier_target": "base_letter_price",
"name": "Brushed Steel",
"description": "A satin brushed stainless finish",
"hexcode": "#b5b5b5",
"opacity": 1,
"applied_to_visualisation": true,
"mounting_ids": [
8
],
"min_width_cm": 30,
"min_height_cm": 10,
"base_price": 500,
"price_multiplier": 1.2
}curl https://web.signcustomiser.com/api/v3/customisers/1/mounting-colours \
--request POST \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"min_size_rule": "any",
"price_multiplier_target": "base_letter_price",
"name": "Brushed Steel",
"description": "A satin brushed stainless finish",
"hexcode": "#b5b5b5",
"opacity": 1,
"applied_to_visualisation": true,
"mounting_ids": [
8
],
"min_width_cm": 30,
"min_height_cm": 10,
"base_price": 500,
"price_multiplier": 1.2
}'{
"data": {
"object": "mounting_colour",
"id": 14,
"customiser_id": 42,
"name": "Brushed Steel",
"description": null,
"hexcode": "#b5b5b5",
"opacity": 1,
"applied_to_visualisation": true,
"mounting_ids": [
8
],
"min_width_cm": null,
"min_height_cm": null,
"min_size_rule": "any",
"base_price": 0,
"currency": "USD",
"price_multiplier": 1,
"price_multiplier_target": "base_letter_price",
"sort_order": 1,
"preview_image_url": null,
"example_image_url": null,
"created_at": "2026-08-13T00:00:00Z",
"updated_at": "2026-08-13T00:00:00Z"
},
"links": {
"self": "https://web.signcustomiser.com/api/v3/customisers/42/mounting-colours/14",
"documentation": "https://www.signcustomiser.com/help/api/"
},
"meta": {
"api_version": "v3",
"request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}
}{
"type": "https://www.signcustomiser.com/help/api/problems/missing_idempotency_key",
"title": "Missing idempotency key",
"status": 400,
"code": "missing_idempotency_key",
"detail": "Provide an Idempotency-Key header for this write.",
"request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}{
"type": "https://www.signcustomiser.com/help/api/problems/missing_api_key",
"title": "Missing API key",
"status": 401,
"code": "missing_api_key",
"detail": "Provide a store API key as a bearer token.",
"request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}{
"type": "https://www.signcustomiser.com/help/api/problems/insufficient_scope",
"title": "Insufficient scope",
"status": 403,
"code": "insufficient_scope",
"detail": "This operation requires the customisers:write scope.",
"required_scopes": [
"customisers:write"
],
"granted_scopes": [
"customisers:read"
],
"request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}{
"type": "https://www.signcustomiser.com/help/api/problems/resource_not_found",
"title": "Resource not found",
"status": 404,
"code": "resource_not_found",
"detail": "The requested resource does not exist or does not belong to the authenticated store.",
"request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}{
"type": "https://www.signcustomiser.com/help/api/problems/idempotency_key_conflict",
"title": "Idempotency key conflict",
"status": 409,
"code": "idempotency_key_conflict",
"detail": "This Idempotency-Key was already used for a different request body on this operation.",
"request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}{
"type": "https://www.signcustomiser.com/help/api/problems/request_too_large",
"title": "Request too large",
"status": 413,
"code": "request_too_large",
"detail": "The request body must not exceed 2 MiB.",
"request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}{
"type": "https://www.signcustomiser.com/help/api/problems/colour_value_required",
"title": "Colour value required",
"status": 422,
"code": "colour_value_required",
"detail": "A mounting colour renders from one hex value, so hexcode is required.",
"errors": [
{
"pointer": "/hexcode",
"code": "colour_value_required",
"detail": "A mounting colour must carry a hex value."
}
],
"request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}{
"type": "https://www.signcustomiser.com/help/api/problems/rate_limited",
"title": "Too many requests",
"status": 429,
"code": "rate_limited",
"detail": "You have exceeded the request limit for this API key.",
"retry_after": 37,
"request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}