Sign Customiser

Retrieve the customiser's full pricing configuration as one canonical document. The document's shape follows its pricing_model: simple_letter prices per letter at fixed sign widths (sizes carry a sizing_strategy of fixed_width or fixed_height and a height_measurement_mode of line_height or letter_height, price list rows carry per-line base_price/letter_price objects, and an optional sheet_pricing section adds backing-sheet bands); advanced_letter prices from material length (price lists carry a letter_pricing_method of material_length or fixed_letter, a shipping configuration, and rows with rates and dimension limits); frame_fit prices by frame area (exactly one price list with area-rate rows). Amount fields (base_price, letter_price lines, price_per_letter) are integer minor units of currency; the rate fields price_per_cm and price_per_sq_cm are decimal major currency units per centimetre (or square centimetre); dimensions are centimetres in _cm fields. currency is the store's configured ISO 4217 currency, or null on Shopify-backed stores that leave the storefront currency in charge. The operation is read-only, has no side effects, and is always safe to retry. Requires the pricing:read scope; use this document as the base for PATCH/PUT writes and the validate dry-run. A 404 problem with code resource_not_found means the customiser does not exist on the store your API key belongs to. A 422 problem with code legacy_pricing_model means the customiser still uses the retired fixed-height pricing model, which has no pricing document on this API (its replacement is simple_letter with fixed_height sizing). A 401 problem means the key is missing, invalid, or expired; a 403 problem with code insufficient_scope means the key lacks pricing: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.

GET /api/v3/customisers/{customiser_id}/pricing

Authorisation

Bearer token required. Include in the Authorization header.

Path parameters

customiser_id string path required

The customiser id, from the list customisers operation.

Example: 1

Get customiser pricing
curl https://web.signcustomiser.com/api/v3/customisers/1/pricing \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_API_TOKEN'
Response 200
{
  "data": {
    "object": "customiser_pricing",
    "customiser_id": 42,
    "pricing_model": "simple_letter",
    "pricing_model_display_name": "Simple Letter",
    "currency": "USD",
    "sizes": [
      {
        "size_id": 7,
        "client_key": null,
        "name": "Small",
        "description": "Up to 50cm wide",
        "sort_order": 1,
        "char_limit": 20,
        "line_limit": 3,
        "min_char": 1,
        "width_cm": 50,
        "height_cm": null,
        "line_height_cm": 12,
        "width_multiplier": null,
        "length_cm": null,
        "sizing_strategy": "fixed_width",
        "height_measurement_mode": "line_height"
      }
    ],
    "base_pricing": {
      "mode": "single_base_price_by_size",
      "rows": [
        {
          "size_id": 7,
          "size_key": null,
          "base_price": {
            "line_1": 900,
            "line_2": 1000,
            "line_3": 1100
          }
        }
      ]
    },
    "price_lists": [
      {
        "price_list_id": 10,
        "name": "Standard",
        "rows": [
          {
            "size_id": 7,
            "size_key": null,
            "base_price": {
              "line_1": 1000,
              "line_2": 1200,
              "line_3": 1400
            },
            "letter_price": {
              "line_1": 100,
              "line_2": 120,
              "line_3": 140
            }
          }
        ]
      }
    ],
    "sheet_pricing": {
      "rows": [
        {
          "width_limit_cm": 100,
          "height_limit_cm": 60,
          "base_price": 2000,
          "price_per_sq_cm": 1.5
        }
      ]
    }
  },
  "links": {
    "self": "https://web.signcustomiser.com/api/v3/customisers/42/pricing",
    "documentation": "https://www.signcustomiser.com/help/api/"
  },
  "meta": {
    "api_version": "v3",
    "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
  }
}
Response 200
{
  "data": {
    "object": "customiser_pricing",
    "customiser_id": 57,
    "pricing_model": "advanced_letter",
    "pricing_model_display_name": "Advanced Letter",
    "currency": "USD",
    "sizes": [
      {
        "size_id": 12,
        "client_key": null,
        "name": "Default",
        "description": null,
        "sort_order": 1,
        "char_limit": null,
        "line_limit": null,
        "min_char": 1,
        "width_cm": null,
        "height_cm": null,
        "line_height_cm": null,
        "width_multiplier": 1.5,
        "length_cm": null,
        "sizing_strategy": null,
        "height_measurement_mode": null
      }
    ],
    "base_pricing": {
      "mode": "included_in_price_lists",
      "rows": []
    },
    "price_lists": [
      {
        "price_list_id": 21,
        "name": "Material",
        "letter_pricing_method": "material_length",
        "shipping": {
          "calculation": "physical",
          "volumetric_divisor": null,
          "add_weight_to_product": true
        },
        "rows": [
          {
            "base_price": 1000,
            "width_limit_cm": 100,
            "height_limit_cm": 50,
            "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": 3,
            "price_per_cm": 0.5,
            "price_per_letter": null
          }
        ]
      }
    ]
  },
  "links": {
    "self": "https://web.signcustomiser.com/api/v3/customisers/57/pricing",
    "documentation": "https://www.signcustomiser.com/help/api/"
  },
  "meta": {
    "api_version": "v3",
    "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
  }
}
Response 200
{
  "data": {
    "object": "customiser_pricing",
    "customiser_id": 63,
    "pricing_model": "frame_fit",
    "pricing_model_display_name": "Frame Fit",
    "currency": "GBP",
    "sizes": [
      {
        "size_id": 19,
        "client_key": null,
        "name": "A2",
        "description": null,
        "sort_order": 1,
        "char_limit": null,
        "line_limit": null,
        "min_char": 1,
        "width_cm": 59.4,
        "height_cm": 42,
        "line_height_cm": null,
        "width_multiplier": null,
        "length_cm": null,
        "sizing_strategy": null,
        "height_measurement_mode": null
      }
    ],
    "base_pricing": {
      "mode": "included_in_price_lists",
      "rows": []
    },
    "price_lists": [
      {
        "price_list_id": 33,
        "name": "Frame pricing",
        "shipping": {
          "calculation": "physical",
          "volumetric_divisor": null,
          "add_weight_to_product": false
        },
        "rows": [
          {
            "base_price": 7500,
            "width_limit_cm": 120,
            "height_limit_cm": 90,
            "length_limit_cm": null,
            "price_per_sq_cm": 0.022,
            "fixed_length_cm": null,
            "width_modifier": null,
            "height_modifier": null,
            "length_modifier": null
          }
        ]
      }
    ]
  },
  "links": {
    "self": "https://web.signcustomiser.com/api/v3/customisers/63/pricing",
    "documentation": "https://www.signcustomiser.com/help/api/"
  },
  "meta": {
    "api_version": "v3",
    "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
  }
}
Response 401
{
  "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"
}
Response 403
{
  "type": "https://www.signcustomiser.com/help/api/problems/insufficient_scope",
  "title": "Insufficient scope",
  "status": 403,
  "code": "insufficient_scope",
  "detail": "This operation requires the pricing: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": [
    "pricing:read"
  ],
  "granted_scopes": [
    "store:read"
  ],
  "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}
Response 404
{
  "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"
}
Response 422
{
  "type": "https://www.signcustomiser.com/help/api/problems/legacy_pricing_model",
  "title": "Legacy pricing model",
  "status": 422,
  "code": "legacy_pricing_model",
  "detail": "This customiser uses the retired fixed-height pricing model (legacy_fixed_height), which has no pricing document on this API. Recreate the customiser as simple_letter with a fixed_height sizing strategy on its sizes to manage its pricing here.",
  "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}
Response 429
{
  "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"
}