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`.

Requires: customizer.manage

Path Parameters

id required
string
The customizer design ID

Response Schema

DesignWithFilesResponse
configNamerequirednullable
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
etsyReceiptIdrequirednullable
string
externalUrirequirednullable
string
fileSourcerequired
"internal" | "external_uri"
internalexternal_uri
finishrequirednullable
string
frameColorrequirednullable
string
idrequired
string
pattern: ^[a-z0-9]{24}$
shopifyOrderIdrequirednullable
string
storagePathrequirednullable
string
storeIdrequired
string
pattern: ^[a-z0-9]{24}$
updatedAtrequired
string
format: date-time
filesrequired
object[]
colorrequired
string
idrequired
string
mimeTyperequired
string
rolerequired
"body" | "outline"
bodyoutline
signedUrlrequired
string
slotrequired
string
sortOrderrequired
number

Example Response

200 OK — application/json
{
  "design": {
    "configId": "string",
    "fileSource": "internal",
    "storagePath": "string",
    "externalUri": "string",
    "finish": "string",
    "frameColor": "string",
    "shopifyOrderId": "string",
    "etsyReceiptId": "string",
    "id": "string",
    "storeId": "string",
    "createdAt": "2025-01-15T12:00:00.000Z",
    "updatedAt": "2025-01-15T12:00:00.000Z"
  },
  "configName": "string",
  "files": [
    {
      "id": "string",
      "slot": "string",
      "sortOrder": 1,
      "role": "body",
      "color": "string",
      "mimeType": "string",
      "signedUrl": "string"
    }
  ]
}