# GET List every letter part's colours

Lists the colours of every letter part of every letter type on the customiser in one walk, so an integration can read the whole palette without a request per part. Each row is the colour projection the per-part colours list uses, plus `letter_type_id` and `letter_part`, the two values that address the part's colour selection. Rows are ordered by `letter_type_id`, then by letter part in catalogue order (face, back, side, top, bottom, left, right, halo, trim, tube), then by `sort_order`, then by id. Only colour selections that exist are read; a part with no colour selection has no rows, and the read never creates one. A cut-out metal or stencil customiser offers no letter types, so its list is empty. Narrow the walk with `filter[letter_type_id]` or `filter[letter_part]`; any other filter is a 422. Follow `links.next` while `pagination.has_more` is true. Requires `customisers:read`. The operation is read-only and always safe to retry.

- Source URL: https://www.signcustomiser.com/help/api/v3-get-list-every-letter-part-s-colours/
- Markdown URL: https://www.signcustomiser.com/help/api/v3-get-list-every-letter-part-s-colours.md
- Group: Customiser letter parts
- Method: GET
- Path: /api/v3/customisers/{customiser_id}/letter-part-colours
- Auth: Bearer token
- Required scopes: `customisers:read`

## Path parameters

- customiser_id (string, required): The customiser id. Example: 1

## Query parameters

- limit (string, optional): Page size from 1 to 100. Defaults to 20. Example: 20
- filter[letter_type_id] (string, optional): Only the colours of this letter type. Example: 7
- filter[letter_part] (string, optional): Only the colours of this letter part: face, back, side, top, bottom, left, right, halo, trim, or tube. Example: face

## cURL example

```bash
curl https://web.signcustomiser.com/api/v3/customisers/1/letter-part-colours?limit=20&cursor=&filter%5Bletter_type_id%5D=7&filter%5Bletter_part%5D=face \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_API_TOKEN'
```

## Response examples

### 200 GET 200 example 1

```json
{
  "data": [
    {
      "object": "letter_part_colour",
      "id": 31,
      "customiser_id": 42,
      "name": "Warm White",
      "description": null,
      "colour_type": "single",
      "hexcode": "#FFEEDD",
      "multi_colour_hexcodes": [
        "#ff0000",
        "#00ff00"
      ],
      "texture": "flat",
      "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,
      "image_url": null,
      "example_image_url": null,
      "texture_image_url": null,
      "created_at": "2026-08-13T00:00:00Z",
      "updated_at": "2026-08-13T00:00:00Z",
      "letter_type_id": 7,
      "letter_part": "face"
    }
  ],
  "pagination": {
    "has_more": false,
    "next_cursor": null
  },
  "links": {
    "self": "https://web.signcustomiser.com/api/v3/customisers/42/letter-part-colours",
    "documentation": "https://www.signcustomiser.com/help/api/",
    "next": null
  },
  "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.",
  "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 customisers:read scope.",
  "required_scopes": [
    "customisers: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 Unknown filter

```json
{
  "type": "https://www.signcustomiser.com/help/api/problems/unknown_filter",
  "title": "Unknown filter",
  "status": 422,
  "code": "unknown_filter",
  "detail": "The request includes filters this endpoint does not support: colour. Supported filters: letter_type_id, letter_part.",
  "errors": [
    {
      "parameter": "filter[colour]",
      "code": "unknown_filter",
      "detail": "The filter \"colour\" is not supported by this endpoint."
    }
  ],
  "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.",
  "retry_after": 60,
  "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}
```
