Customiser icons
Validate an icon update
Dry-runs the merge patch without persisting anything, returning the same problems the update would return or a 200 verdict when it would succeed. A replacement drawing is sanitised so an unsafe one is caught here too, but it is not converted and the icon font is not rebuilt.
Overview
Nothing is written,
no caches are touched, and no idempotency key is consumed. The verdict is
advisory. Requires customisers:write.
Authorisation
Bearer token required. Include it in theAuthorization header.
Required scope: customisers:write
Path parameters
customiser_idrequired
The customiser id.
Example: 1
icon_idrequired
The icon id.
Example: 9
Request body
name
Request body example
application/json
{
"name": "Heart"
}Validate an icon update
curl https://web.signcustomiser.com/api/v3/customisers/1/icons/9/validate-update \
--request POST \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"name": "Heart"
}'Response
{
"data": {
"object": "icon_validation",
"operation": "update",
"customiser_id": 42,
"icon_id": 9,
"valid": true
},
"links": {
"self": "https://web.signcustomiser.com/api/v3/customisers/42/icons/9/validate-update",
"documentation": "https://www.signcustomiser.com/help/api/"
},
"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:write scope.",
"required_scopes": [
"customisers:write"
],
"granted_scopes": [
"customisers: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/request_too_large",
"title": "Request too large",
"status": 413,
"code": "request_too_large",
"detail": "The request body must not exceed 2 MiB.",
"request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}{
"type": "https://www.signcustomiser.com/help/api/problems/validation_failed",
"title": "Validation failed",
"status": 422,
"code": "validation_failed",
"detail": "The icon SVG could not be sanitised safely.",
"errors": [
{
"pointer": "/svg",
"code": "invalid_svg",
"detail": "The icon SVG could not be sanitised safely."
}
],
"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"
}