Printago API
GET
/v1/customizer/designs/{id}/with-files
Get design with per-layer files
Get a design row plus every per-layer file with a short-lived signed URL. Used by the order detail page to surface what the customer submitted on a given OrderItem (resolved from `inputs.design_id`). `configName` is null when the originating config has been deleted — the design + files survive via `ON DELETE SET NULL`.
Path Parameters
id
required
string
Response Schema
DesignWithFilesResponse
configNamerequired
string
designrequired
object
A submitted design (SVG + metadata) created by a customer.
Pre-Phase-2 rows hold a single merged SVG at `storagePath`. New rows leave
`storagePath` null and reference per-layer files via the
`customizer_design_files` table instead.
configIdrequired
string
pattern: ^[a-z0-9]{24}$
createdAtrequired
string
format: date-time
designJsonrequired
any
etsyReceiptIdrequired
string
externalUrirequired
string
fileSourcerequired
any
finishrequired
string
frameColorrequired
string
idrequired
string
pattern: ^[a-z0-9]{24}$
shopifyOrderIdrequired
string
storagePathrequired
string
storeIdrequired
string
pattern: ^[a-z0-9]{24}$
updatedAtrequired
string
format: date-time
filesrequired
object[]
colorrequired
string
idrequired
string
mimeTyperequired
string
rolerequired
any
signedUrlrequired
string
slotrequired
string
sortOrderrequired
number
Example Response
200 OK — application/json
{
"design": {
"configId": "string",
"id": "string",
"storeId": "string",
"createdAt": "2026-08-24T03:58:55.315Z",
"updatedAt": "2026-08-24T03:58:55.315Z"
},
"files": [
{
"id": "string",
"slot": "string",
"sortOrder": 1,
"color": "string",
"mimeType": "string",
"signedUrl": "string"
}
]
}