AI sign designs
Retry the failed exports of an AI sign design job
Converts the delivered SVG again into every requested EPS or
Illustrator-compatible PDF whose state is failed, and answers 202 at
once with the job. Requires ai_sign_designs:write and an
Idempotency-Key.
Overview
Send no body, or an empty JSON object.
A retry is free. It does not run the AI sign designer again, and it does
not reserve or charge a credit: charge does not change. Each job has
export_retries_remaining free retries; a retry that starts uses one.
Poll the job until the files are ready or failed. A retry with the
same Idempotency-Key returns the same answer and uses no other retry.
An erased design answers 409 ai_sign_design_erased; it can never be
exported, so do not retry. A job that has not delivered answers 409
ai_sign_design_not_delivered.
A job with no failed conversion, a conversion still running, or a
design that did not pass the automatic manufacturing check answers 409
ai_sign_design_export_not_retryable. A job with no free retries left
answers 409 ai_sign_design_export_retries_exhausted. If the export was
tried too often in a short period, this answers 429
ai_sign_design_export_retry_limited with Retry-After; retry with the
same key. Nothing starts and no retry is used on any refusal.
Authorisation
Bearer token required. Include it in the Authorization header.
Required scope: ai_sign_designs:write
Path parameters
The opaque job ID.
Example: aijob_4k8m2p6r9t1v3x5z7b0d2f4h6j
curl https://web.signcustomiser.com/api/v3/ai-sign-design-jobs/aijob_4k8m2p6r9t1v3x5z7b0d2f4h6j/exports \
--request POST \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN'{
"data": {
"object": "ai_sign_design_job",
"id": "aijob_4k8m2p6r9t1v3x5z7b0d2f4h6j",
"status": "delivered",
"product_family": "neon",
"customiser_id": null,
"letter_type_id": null,
"source_file": {
"id": "aisrc_9f2c4b7ad13e6058ba41cd4201",
"media_type": "image/png",
"byte_size": 184320,
"width_px": 1600,
"height_px": 900,
"url": "https://web.signcustomiser.com/api/v3/ai-sign-design-jobs/aijob_4k8m2p6r9t1v3x5z7b0d2f4h6j/files/source",
"download_url": "https://web.signcustomiser.com/ai-design-files/Wa60lEfaTgSKNoXIh0q8dn1ijiMklLiKtPvs51weaITQyDoUpCMhfTPQrvNWrQLV"
},
"output_formats": [
"svg",
"eps",
"illustrator_pdf"
],
"poll_after_seconds": null,
"result": {
"display_treatment": "drawn",
"files": {
"svg": {
"state": "ready",
"purpose": "design",
"media_type": "image/svg+xml",
"byte_size": 18432,
"url": "https://web.signcustomiser.com/api/v3/ai-sign-design-jobs/aijob_4k8m2p6r9t1v3x5z7b0d2f4h6j/files/svg",
"download_url": "https://web.signcustomiser.com/ai-design-files/K8RlIzJLh3ZJchirFwxb8umEpjUyUoZfi51Cg1FCTW4vD55TtY4vrq9Iud04WavV",
"error": null
},
"eps": {
"state": "processing",
"purpose": "manufacturing_export",
"media_type": "application/postscript",
"byte_size": null,
"url": null,
"download_url": null,
"error": null
},
"illustrator_pdf": {
"state": "ready",
"purpose": "manufacturing_export",
"media_type": "application/pdf",
"byte_size": 41877,
"url": "https://web.signcustomiser.com/api/v3/ai-sign-design-jobs/aijob_4k8m2p6r9t1v3x5z7b0d2f4h6j/files/illustrator_pdf",
"download_url": "https://web.signcustomiser.com/ai-design-files/JBLCgdqNFX1RBiQKK2i7GiWeh35LClaKcsbLDNv21WYlDMtf5jFpecvK1Irkdbwk",
"error": null
},
"raster_preview": {
"state": "ready",
"purpose": "preview",
"media_type": "image/png",
"byte_size": 512304,
"url": "https://web.signcustomiser.com/api/v3/ai-sign-design-jobs/aijob_4k8m2p6r9t1v3x5z7b0d2f4h6j/files/raster_preview",
"download_url": "https://web.signcustomiser.com/ai-design-files/yv4v2Oz5HRxkr4OfsvPu6P9EiNdfQtdV5K6vB8pzgvTf6RpTn2fehWtZlXkvmWTB",
"error": null
},
"face_svg": null
},
"assessed_dimensions": {
"width_cm": 50,
"width_in": 19.69,
"height_cm": 28.1,
"height_in": 11.06,
"authored_units": {
"width_cm": "centimetres",
"height_cm": "centimetres"
}
},
"advisories": [
{
"code": "wording_unverified",
"detail": "The wording check did not run for this design. Compare the wording on this design with the uploaded artwork."
}
],
"export_retries_remaining": 2
},
"charge": {
"state": "charged",
"units": 1
},
"error": null,
"created_at": "2026-10-20T09:32:00Z",
"completed_at": "2026-10-20T09:34:10Z"
},
"links": {
"self": "https://web.signcustomiser.com/api/v3/ai-sign-design-jobs/aijob_4k8m2p6r9t1v3x5z7b0d2f4h6j",
"documentation": "https://www.signcustomiser.com/help/api/"
},
"meta": {
"api_version": "v3",
"request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}
}{
"type": "https://www.signcustomiser.com/help/api/problems/missing_idempotency_key",
"title": "Missing idempotency key",
"status": 400,
"code": "missing_idempotency_key",
"detail": "Provide an Idempotency-Key header for this write.",
"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 ai_sign_designs:write scope.",
"required_scopes": [
"ai_sign_designs:write"
],
"granted_scopes": [
"ai_sign_designs: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/ai_sign_design_not_delivered",
"title": "Design not delivered",
"status": 409,
"code": "ai_sign_design_not_delivered",
"detail": "This job has not delivered a design, so it has no exports to retry. Poll the job until status is delivered. A failed design has no exports. Nothing was started.",
"request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}{
"type": "https://www.signcustomiser.com/help/api/problems/ai_sign_design_erased",
"title": "Design erased",
"status": 409,
"code": "ai_sign_design_erased",
"detail": "This design was erased, so its files no longer exist and nothing can be exported. Do not retry. The job and its charge stay readable. Nothing was started.",
"request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}{
"type": "https://www.signcustomiser.com/help/api/problems/ai_sign_design_export_not_retryable",
"title": "Export not retryable",
"status": 409,
"code": "ai_sign_design_export_not_retryable",
"detail": "No requested EPS or PDF conversion of this job has failed. Nothing was started.",
"request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}{
"type": "https://www.signcustomiser.com/help/api/problems/ai_sign_design_export_retries_exhausted",
"title": "Export retries used",
"status": 409,
"code": "ai_sign_design_export_retries_exhausted",
"detail": "This job has used its 3 free export retries. Nothing was started. The SVG of the design stays available.",
"retry_limit": 3,
"request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}{
"type": "https://www.signcustomiser.com/help/api/problems/idempotency_key_conflict",
"title": "Idempotency key conflict",
"status": 409,
"code": "idempotency_key_conflict",
"detail": "This Idempotency-Key was already used for a different request body on this operation.",
"request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}{
"type": "https://www.signcustomiser.com/help/api/problems/unknown_field",
"title": "Unknown request field",
"status": 422,
"code": "unknown_field",
"detail": "This operation accepts no request fields.",
"errors": [
{
"parameter": "formats",
"code": "unknown_field",
"detail": "The request field \"formats\" is not supported by this endpoint."
}
],
"request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}{
"type": "https://www.signcustomiser.com/help/api/problems/ai_sign_design_export_retry_limited",
"title": "Export retry limited",
"status": 429,
"code": "ai_sign_design_export_retry_limited",
"detail": "The export of this design was tried too many times in a short period. Nothing was started, and no free retry was used. Retry with the same Idempotency-Key after retry_after seconds.",
"retry_after": 90,
"request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t"
}