Sign Customiser

Customiser length pricings

Create a length pricing

Copy page

Adds a length pricing to the customiser. Only name is required; every other field has a documented default (letter_pricing_mode every_letter_cost, letter_pricing_method fixed_letter, shipping.calculation physical, shipping.add_weight_to_product false, rows empty).

POST/api/v3/customisers/{customiser_id}/length-pricings

Overview

Every row needs a base_price, and the dimension limits its shipping calculation needs: physical measures the sign, so it needs width_limit_cm and height_limit_cm; volumetric measures the box, so it needs at least one of the three limits and a shipping.volumetric_divisor. Outside a frame-fit customiser each row also needs the rate its letter pricing method charges by — price_per_cm for material_length, price_per_letter for fixed_letter. A write that would leave a row without them is refused rather than creating a price list the storefront cannot resolve, and the pricing document requires exactly the same of these rows. The customiser must price by advanced_letter or frame_fit: a length pricing on any other pricing model is unreachable, and the write is refused with a 422 pricing_model_mismatch. A frame-fit customiser prices every sign from exactly one price list, so a second create on one is refused too — update the existing list instead. Sheet pricing is not part of this family and cannot be created through it. Requires pricing:write and an Idempotency-Key. The pricing document publishes the same price lists and its full replace deletes any one the payload omits, so pick one surface per workflow rather than interleaving the two. 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: pricing:write

Path parameters

customiser_idstringpathrequired

The customiser id.

Example: 1

Request body

letter_pricing_modestringbody
letter_pricing_methodstringbody
namestringbody
shippingobjectbody
rowsarraybody

Request body example

application/json
{
  "letter_pricing_mode": "every_letter_cost",
  "letter_pricing_method": "fixed_letter",
  "name": "Standard",
  "shipping": {
    "calculation": "physical",
    "add_weight_to_product": false,
    "volumetric_divisor": 5000
  },
  "rows": [
    {
      "base_price": 4500,
      "width_limit_cm": 120,
      "height_limit_cm": 60,
      "price_per_letter": 600
    }
  ]
}
Create a length pricing
curl https://web.signcustomiser.com/api/v3/customisers/1/length-pricings \
  --request POST \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_API_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
  "letter_pricing_mode": "every_letter_cost",
  "letter_pricing_method": "fixed_letter",
  "name": "Standard",
  "shipping": {
    "calculation": "physical",
    "add_weight_to_product": false,
    "volumetric_divisor": 5000
  },
  "rows": [
    {
      "base_price": 4500,
      "width_limit_cm": 120,
      "height_limit_cm": 60,
      "price_per_letter": 600
    }
  ]
}'
Response
{
  "data": {
    "object": "length_pricing",
    "id": 9,
    "customiser_id": 42,
    "name": "Standard",
    "letter_pricing_mode": "every_letter_cost",
    "letter_pricing_method": "fixed_letter",
    "shipping": {
      "calculation": "physical",
      "volumetric_divisor": null,
      "add_weight_to_product": false
    },
    "currency": "USD",
    "rows": [
      {
        "base_price": 4500,
        "width_limit_cm": 120,
        "height_limit_cm": 60,
        "length_limit_cm": null,
        "price_per_sq_cm": null,
        "fixed_length_cm": null,
        "width_modifier": null,
        "height_modifier": null,
        "length_modifier": null,
        "max_price_multiplier": null,
        "price_per_cm": null,
        "price_per_letter": 600,
        "price_per_letter_by_position": 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/length-pricings/9",
    "documentation": "https://www.signcustomiser.com/help/api/"
  },
  "meta": {
    "api_version": "v3",
    "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
  }
}