Customisers
List customiser prototypes
Lists every prototype a customiser can be created from, and says which of them this store may use.
Overview
A prototype is a complete starting point: it fixes
the sign category, the pricing model, the sizing strategy, the styling
mode, and whether the AI sign designer is set up, and the create operation
copies all of it along with a full set of demo options, sizes, fonts, and
labels to edit. Pass a prototype's id as the create operation's
prototype.
available is false when the store's plan does not include the prototype;
unavailable_reasons says why, and creating from it is refused with the
same reasons. The operation is read-only, has no side effects, and is
always safe to retry. Requires the customisers:read scope.
A 401 problem means the key is missing, invalid, or expired; a 403 problem
with code insufficient_scope means the key lacks customisers:read; a
429 problem means too many requests — wait retry_after seconds, then
retry.
Authorisation
Bearer token required. Include it in theAuthorization header.
Required scope: customisers:read
curl https://web.signcustomiser.com/api/v3/customiser-prototypes \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN'{
"data": [
{
"object": "customiser_prototype",
"id": "neon-frame-fit",
"name": "Neon Letter Signs - Price per square metre/foot",
"description": "Neon and Flex LED neon letter signs.",
"default_customiser_name": "Neon Sign Customiser",
"sign_category": "neon",
"pricing_model": "frame_fit",
"sizing_strategy": null,
"selection_mode": "per_word",
"ai_sign_designer": false,
"available": true,
"unavailable_reasons": []
},
{
"object": "customiser_prototype",
"id": "lightbox-frame-fit",
"name": "Lightbox Signs - Custom sizes",
"description": "Custom-size 3D lightbox signs with frame-fit pricing.",
"default_customiser_name": "Lightbox Customiser",
"sign_category": "lightbox",
"pricing_model": "frame_fit",
"sizing_strategy": null,
"selection_mode": "single_style",
"ai_sign_designer": false,
"available": false,
"unavailable_reasons": [
"lightbox"
]
}
],
"pagination": {
"has_more": false,
"next_cursor": null
},
"links": {
"self": "https://web.signcustomiser.com/api/v3/customiser-prototypes",
"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/unknown_parameter",
"title": "Unknown query parameter",
"status": 422,
"code": "unknown_parameter",
"detail": "This endpoint accepts no query parameters.",
"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"
}