# GET Get customiser pricing

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.

- Source URL: https://www.signcustomiser.com/help/api/v3-get-get-customiser-pricing/
- Markdown URL: https://www.signcustomiser.com/help/api/v3-get-get-customiser-pricing.md
- Group: Pricing
- Method: GET
- Path: /api/v3/customisers/{customiser_id}/pricing
- Auth: Bearer token

## Path parameters

- customiser_id (string, required): The customiser id, from the list customisers operation. Example: 1

## cURL example

```bash
curl https://web.signcustomiser.com/api/v3/customisers/1/pricing \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_API_TOKEN'
```

## Response examples

### 200 simple_letter customiser

```json
{
  "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"
  }
}
```

### 200 advanced_letter customiser

```json
{
  "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"
  }
}
```

### 200 frame_fit customiser

```json
{
  "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"
  }
}
```

### 401 Missing API key

```json
{
  "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"
}
```

### 403 Insufficient scope

```json
{
  "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"
}
```

### 404 Unknown customiser

```json
{
  "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"
}
```

### 422 Retired pricing model

```json
{
  "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"
}
```

### 429 Rate limited

```json
{
  "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"
}
```
