Customiser fonts
Get the font archive
Returns a download link to one zip file that holds the TTF file of every font on the customiser, the same archive as the merchant admin's Download all fonts. Each file is named after its font.
Overview
A font without an uploaded
TTF file is left out. The zip is built on the first request and reused
until a font is added, changed or deleted, so a repeated request returns
the same url. The
link needs no API key and works until at least expires_at, 25 hours
after the zip was built; request the archive again after that. Requires
customisers:read.
A customiser with no TTF file returns 422 no_font_files: attach a file
with the font file operation first. While another request builds the
same archive, the request returns 409 font_archive_in_progress; retry
after retry_after seconds. Each API key can request the archive of one
customiser 5 times in 5 minutes.
Authorisation
Bearer token required. Include it in the Authorization header.
Required scope: customisers:read
Path parameters
The customiser id, from the list customisers operation.
Example: 1
curl https://web.signcustomiser.com/api/v3/customisers/1/fonts/archive \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN'{
"data": {
"object": "font_archive",
"customiser_id": 42,
"url": "https://cdn.example.com/fonts-download/customiser-42-Ab12Cd34Ef56Gh78-fonts.zip",
"expires_at": "2026-11-15T09:00:00Z"
},
"links": {
"self": "https://web.signcustomiser.com/api/v3/customisers/42/fonts/archive",
"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: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/font_archive_in_progress",
"title": "Font archive in progress",
"status": 409,
"code": "font_archive_in_progress",
"detail": "Another request is building the font archive of this customiser. Retry after retry_after seconds.",
"retry_after": 5,
"request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}{
"type": "https://www.signcustomiser.com/help/api/problems/no_font_files",
"title": "No font files",
"status": 422,
"code": "no_font_files",
"detail": "This customiser has no font with an uploaded TTF file, so the archive would be empty. Attach a font file first.",
"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": 300,
"request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}