Customiser labels
Get customiser labels
Retrieve every customer-facing label on the customiser as one canonical
document. Most properties are the copy for a single piece of the storefront
customiser — a step heading (text_title, size_title, colour_title), a
button (price_button_add, quote_button), a warning
(char_limit_reached, min_height_sign_warning) or a placeholder.
Overview
A
handful are section switches (show_contact_section,
show_inclusion_section, show_review_section and friends), which turn a
block of the storefront on rather than word it, and custom_design_type is
the one closed set: none, link, form, or live.
The values are the effective copy the storefront renders: your saved copy
for a label you have worded, and the built-in default for one you have not.
A label reads back as null only while the customiser has no default
language, which the first write to it creates. A read is therefore a
description of the storefront rather than a patch body — echo one back and
you would store every built-in default as an explicit override of your own,
and its read-only properties would be refused besides. Send only the labels
you are changing, which is what a merge patch is for.
Six properties are read-only on the merge patch. Three carry uploaded
files: product_image_url, background_images (each with its name,
image_url, and the width_cm/height_cm the photograph depicts) and
additional_information (reinsurance cards, each with header,
description, and image_url). A *_url string is a description of a
stored file rather than a shape you could send back, so files move through
the staged-upload flow instead: PUT/api/v3/customisers/{customiser_id}/labels/product-image
sets the product image and DELETE on the same address clears it. The
other two lists have no write yet.
The other three read-only properties are the list labels: highlights (up
to three short strings) and qualities and custom_design_steps (lists
of header/description pairs). A list label's membership is shared
between the customiser's stored labels and its default-language copy, and
the two disagree about who owns it, so a patch that shortened a list would
be undone before you could read it back. Rather than publish an operation
whose effect it cannot state, this version refuses the write. Edit the
five without a write in the merchant admin.
The operation is read-only, has no side effects, and is always safe to
retry. Requires the customisers:read scope.
A 404 problem with code resource_not_found means the customiser does not
exist on the store your API key belongs to. A 401 problem means the key is
missing, invalid, or expired; a 403 problem with code insufficient_scope
means the key lacks customisers:read; a 429 problem means too many
requests — wait retry_after seconds, then retry. Error responses use RFC
9457 problem+json with a machine-readable code and a request_id to
quote when contacting support.
Authorisation
Bearer token required. Include it in theAuthorization header.
Required scope: customisers:read
Path parameters
The customiser id, from the list customisers operation.
Example: 1
curl https://web.signcustomiser.com/api/v3/customisers/1/labels \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN'{
"data": {
"object": "customiser_labels",
"customiser_id": 42,
"adding_to_cart": "Adding to Cart",
"allow_custom_background": true,
"apply_style": "Apply to all",
"aspect_ratio_warning": "Values may be modified to maintain the required aspect ratio",
"backboard_upload_error": "Maximum upload size 2mb",
"backgrounds": "Backgrounds",
"backlight_title": "Backlight",
"border_included": "(includes {border} border)",
"bottom_side": "Bottom",
"braille_fixed_size_info_label": "Braille dots stay at their accessibility-standard size; larger sign sizes carry larger tactile lettering.",
"braille_frame_too_small_message": "Choose a bigger sign size so the braille can fit at its fixed size.",
"braille_overview_fitted_to_screen_label": "Overview — fitted to screen",
"braille_translation_failed_message": "Braille translation could not refresh. Please try again.",
"braille_translation_pending_message": "Translating to Braille…",
"braille_untranslatable_modal_button_label": "Get a custom quote",
"braille_untranslatable_modal_label": "Some of your text cannot be turned into braille automatically. Send us your design and we will quote it for you.",
"cancel": "Cancel",
"char_limit_reached": "You have exceeded the maximum number of characters for the current size.",
"character_limit_message": "The maximum number of characters for this current size has been reached.",
"character_text": "characters max per line for current size",
"click_word_desktop": "Click on a word to begin customising it.",
"cm_button": "Use cm",
"colour_min_size_message": "The selected colour is only available for larger sizes.",
"colour_title": "Color",
"contact_description": "Feel free to reach out through our Live Chat, read through our FAQ page or send us an email.",
"contact_header": "Have some questions? We're here for you!",
"copy_button": "Copy",
"create_product_failed": "Something went wrong",
"creating_product": "Creating Product",
"crop_confirm": "Confirm",
"crop_modal_title": "Resize your image",
"crop_upload": "Upload your own image",
"custom_design_button_label": "Got a logo? Get a quote",
"custom_design_form_file_label": "Accepted file types include JPEG, PNG, SVG, PDF, AI and EPS.",
"custom_design_form_input_error": "Invalid input.",
"custom_design_form_message_error": "Form submission failed. Please try again.",
"custom_design_form_message_success": "Thank you for your submission.",
"custom_design_form_size_error": "File size cannot exceed 10MB.",
"custom_design_form_submit_message": "Submitting form, please wait.",
"custom_design_form_total_size_error": "Total file size cannot exceed 20MB.",
"custom_design_link": null,
"custom_design_steps": [
{
"header": "How it works",
"description": "Send us your artwork."
}
],
"custom_design_steps_header": "How it works",
"custom_design_tab_title": "Custom",
"custom_design_type": "form",
"custom_form_header": null,
"custom_sizing_message": "Enter text to set a custom size",
"default_text": "Start Typing",
"display_initial_background_image": true,
"display_initial_review_image": true,
"edit_design": "Edit my design",
"editing_word": "Editing",
"etsy_button": "Continue to Etsy",
"etsy_copied_button": "Copied",
"etsy_copy_details_button": "Copy details",
"etsy_customisation_summary_label": "Customisation summary",
"etsy_download_preview_button": "Download preview",
"etsy_listing_url_missing": "Your Etsy listing link hasn't been set up yet. Contact the shop to get the link.",
"etsy_preparing_image": "Preparing image",
"etsy_preview_error": "Preview couldn't be generated. Please try again.",
"etsy_return_button": "Return To Etsy To Place An Order",
"etsy_step1": "Copy your details",
"etsy_step2": "Return to Etsy",
"etsy_step3": "Paste into the personalisation box",
"etsy_suggested_price_label": "Suggested price",
"etsy_summary_colour_label": "Colour",
"etsy_summary_description": "Copy these details into the personalisation box on Etsy, then add this item to your basket there.",
"etsy_summary_design_label": "Design",
"etsy_summary_face_colour_label": "Face",
"etsy_summary_halo_colour_label": "Halo",
"etsy_summary_icon_label": "Icon",
"etsy_summary_line_label": "Line",
"etsy_summary_no": "No",
"etsy_summary_not_selected": "Not selected",
"etsy_summary_side_colour_label": "Side",
"etsy_summary_title": "Your Etsy order details",
"etsy_summary_trim_colour_label": "Trim",
"etsy_summary_tube_colour_label": "Tube",
"etsy_summary_uploaded_design_label": "Uploaded design",
"etsy_summary_yes": "Yes",
"example": "Example",
"extra_colour_exclusion_message": "The selected option is not available with this colour.",
"extras_title": "Extras",
"file_label": "Upload your logo",
"file_upload_label": "Drop an image here or tap to browse",
"font_title": "Font",
"generating_image": "Generating Image",
"header_text": "CREATE YOUR CUSTOM SIGN",
"height_input": "Height",
"highlights": [
"Handmade",
"12-month warranty",
"Free shipping"
],
"icon_button_label": "Icons",
"icon_title": "Icons",
"inch_button": "Use inches",
"inclusions": "Your Custom Sign\nPower Supply\nDigital Installation Guide\nFree Express Shipping\n12-Month Warranty",
"inclusions_header": "What's included in your custom sign?",
"invalid_characters": "Text contains invalid characters: {characters}. Please try another font.",
"jacket_colour_exclusion_message": "The selected jacket option is not available for this colour.",
"jacket_title": "Jacket",
"label_under_price": "",
"left_side": "Left",
"letter_parts_description": "",
"letter_parts_title": "",
"lightbox_product_type_title": "Lightbox",
"line_limit_reached": "You have exceeded the maximum number of lines for the current size.",
"lines_text": "lines",
"loading_manual_clear_text": "Your design is being added to the cart. Please wait...",
"logo_button_text": "Submit Custom Design",
"logo_text": "To Submit a Custom Design, please click on the button below",
"logo_upload_design_ready": "Design Ready!",
"logo_upload_failed_description": "Fill out the form to send us an inquiry, we'll automatically attach this image",
"logo_upload_failed_title": "We couldn't process your image",
"logo_upload_file_too_large": "This file is too large. Choose a file up to {limit} MB.",
"logo_upload_form_description": "We'll keep processing your file and send the customisable version to your email when ready.",
"logo_upload_form_email_placeholder": "Your email",
"logo_upload_form_name_placeholder": "Your name",
"logo_upload_form_submit_button": "Submit Request",
"logo_upload_form_submitted_description": "We'll process your image in the background and email you when it's ready.",
"logo_upload_form_submitted_title": "Request Submitted!",
"logo_upload_form_title": "Taking longer than expected?",
"logo_upload_pending_description": "Depending on the complexity of the image, this may take a few minutes.",
"logo_upload_pending_title": "Processing your image",
"logo_upload_try_another": "Try another image",
"main_tab_title": "Text",
"manual_button": "Enter dimensions manually",
"material_mounting_exclusion_message": "The selected material is not available with this mounting option.",
"material_support_exclusion_message": "The selected material is not available with this backboard.",
"material_title": "Material",
"max_sign_char": "characters max",
"max_sign_modal_button_label": "Get a quote",
"max_sign_modal_button_link": null,
"max_sign_modal_label": "Size is over the limit. Contact us for a quote.",
"min_character_message": "or more characters are required for this size, please add more characters.",
"min_height_sign_warning": "The overall sign height is too small. Please increase the height.",
"mounting_colour_exclusion_message": "The selected mounting option is not available with this colour.",
"mounting_colour_min_size_message": "This colour requires a larger sign size.",
"mounting_colour_title": "Mounting colour",
"mounting_letter_part_title": "Mounting Side",
"mounting_support_exclusion_message": "The selected mounting option is not available with this backboard.",
"mounting_title": "Mounting",
"options_tab": "Options",
"preview_note": "Colours may appear different in real life",
"price": "",
"price_after_label": "",
"price_box_text": "Free shipping, One year guarantee",
"price_button_add": "Add to Bag",
"price_button_finish": "Finish",
"product_title": "Custom Sign:",
"product_type_title": "Letter Type",
"qualities": [
{
"header": "How it works",
"description": "Send us your artwork."
}
],
"qualities_header": "Good to know",
"quote_button": "Finalize Quote",
"recenter": "Recenter",
"recenter_warning": "Click to reset position",
"retry": "Try Again",
"right_side": "Right",
"rotation": "Rotation",
"shape_finished_size": "Finished size: {width} × {height} {unit}",
"shape_proportions_fixed_by": "Proportions fixed by {shape}",
"shape_size_adjusted_to_fixed_proportions": "Your saved size was adjusted to match this shape’s fixed proportions.",
"shape_size_adjusted_to_range": "Size adjusted to fit the available range.",
"shape_sizing_empty_feasible_range": "This shape cannot be sized within the available minimum and maximum dimensions.",
"shape_sizing_invalid_canonical_bounds": "This shape is unavailable because its proportions could not be loaded.",
"shape_sizing_invalid_intent": "Enter a valid size to continue.",
"shape_sizing_preset_requires_custom": "Choose a custom size for this shape.",
"share_design": "Share my design",
"share_design_modal_description": "",
"share_design_modal_title": "Share Your Design",
"show_background_preview": true,
"show_contact_section": true,
"show_custom_design": true,
"show_custom_design_link": true,
"show_inclusion_section": true,
"show_preview_note": true,
"show_review_images": true,
"show_review_section": true,
"show_styled_note": true,
"show_text_editor_overlay": true,
"sign_header": "YOUR SIGN",
"size_title": "Size",
"slider_button": "Switch back to slider",
"summary_header": "YOUR SIGN DETAILS:",
"support_colour_min_size_message": "The selected backboard colour is only available for larger sizes.",
"support_colour_title": "Backboard Color",
"support_title": "Backboard",
"tap_word_mobile": "Tap on a word to begin customising it.",
"text_align_center": "Center",
"text_align_left": "Left",
"text_align_right": "Right",
"text_align_title": "Text Align",
"text_button_label": "Got a text sign? Customise now",
"text_label": "Write your text",
"text_orientation_horizontal": "Horizontal",
"text_orientation_title": "Orientation",
"text_orientation_vertical_stacked": "Vertical",
"text_title": "Text",
"top_side": "Top",
"upload_background": "Upload Background",
"uploading_images": "Uploading Images",
"user_bg_scale_cancel": "Cancel",
"user_bg_scale_continue": "Continue",
"user_bg_scale_description": "Specify the width and height this image represents in order to see your sign at a realistic scale.",
"user_bg_scale_error": "Width and height must be numbers greater than 0.",
"user_bg_scale_title": "Relative Scale",
"visualiser_off": "Off",
"visualiser_on": "On",
"width_input": "Width",
"zoom_in": "Zoom In",
"zoom_out": "Zoom Out",
"additional_information": [
{
"header": "Free express shipping",
"description": "Every sign ships free, worldwide.",
"image_url": "https://cdn.signcustomiser.com/labels/shipping.png"
}
],
"background_images": [
{
"name": "brick-wall.jpg",
"image_url": "https://cdn.signcustomiser.com/labels/brick-wall.jpg",
"width_cm": 152.4,
"height_cm": 101.6
}
],
"product_image_url": "https://cdn.signcustomiser.com/labels/product.png",
"updated_at": "2026-05-04T09:12:31Z"
},
"links": {
"self": "https://web.signcustomiser.com/api/v3/customisers/42/labels",
"documentation": "https://www.signcustomiser.com/help/api/"
},
"meta": {
"api_version": "v3",
"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: Authorization: Bearer <api key>. Keys are created in the merchant admin under Integrate → API Tokens.",
"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:read scope, but the API key grants the following scopes: store:read. Create a key that includes the required scope in the merchant admin under Integrate → API Tokens.",
"required_scopes": [
"customisers:read"
],
"granted_scopes": [
"store: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/rate_limited",
"title": "Too many requests",
"status": 429,
"code": "rate_limited",
"detail": "You have exceeded the request limit for this API key. Wait 60 seconds, then retry.",
"retry_after": 60,
"request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}