Customiser sizes
List sizes
Lists the customiser's sizes in the order the storefront presents them
(sort_order, then id). Every length is in centimetres, and the field
names match the sizes embedded in the pricing document, because they are
the same rows.
Overview
Fields the customiser's pricing model never reads are
published as null — an advanced-letter customiser prices by
width_multiplier and reports no centimetre dimensions, a frame-fit one
prices by width_cm and height_cm and reports no multiplier. Requires
customisers:read. Follow links.next while pagination.has_more is
true, sending each cursor back unchanged. The operation is read-only and
always safe to retry.
A customiser still on the deprecated fixed-height pricing model keeps its
current sizes in the legacy fixed-height sizes resource instead; this
collection then reports only whatever leftover rows the customiser
carries, which the delete operation exists to clear.
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
Query parameters
Page size from 1 to 100. Defaults to 20.
Example: 20
curl https://web.signcustomiser.com/api/v3/customisers/1/sizes?limit=20&cursor= \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN'{
"data": [
{
"object": "size",
"id": 7,
"customiser_id": 42,
"name": "Small",
"description": null,
"char_limit": 12,
"line_limit": 1,
"min_char": 1,
"width_cm": 40,
"height_cm": null,
"line_height_cm": 10,
"length_cm": null,
"width_multiplier": null,
"sizing_strategy": "fixed_width",
"height_measurement_mode": "line_height",
"border_margin_cm": null,
"sort_order": 1,
"created_at": "2026-08-13T00:00:00Z",
"updated_at": "2026-08-13T00:00:00Z"
}
],
"pagination": {
"has_more": false,
"next_cursor": null
},
"links": {
"self": "https://web.signcustomiser.com/api/v3/customisers/42/sizes",
"documentation": "https://www.signcustomiser.com/help/api/",
"next": null
},
"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.",
"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.",
"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/invalid_parameter",
"title": "Invalid query parameter",
"status": 422,
"code": "invalid_parameter",
"detail": "The limit parameter must be an integer between 1 and 100.",
"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.",
"retry_after": 60,
"request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}