Printago API
PATCH /v1/layouts/{id}

Update dashboard layout

Only the layout's owner can update it. Setting `isDefault` clears the flag from the owner's other layouts; a new definition is re-validated.

Requires: layout.edit

Path Parameters

id required
string
Layout ID

Request Body

Fields to update

LayoutUpdate
definitionoptional
object
cardsrequired
object[]
max items: 200
cardrequired
string
entityIdoptional
string
hrequired
integer
idrequired
string
wrequired
integer
xrequired
integer
yrequired
integer
formatVersionoptional
integer
moderequired
string
isDefaultoptional
boolean
nameoptional
string

Example Request

application/json
{
  "name": "string",
  "definition": {
    "formatVersion": 1,
    "mode": "string",
    "cards": [
      {
        "id": "string",
        "card": "string",
        "entityId": "string",
        "x": 1,
        "y": 1,
        "w": 1,
        "h": 1
      }
    ]
  },
  "isDefault": true
}

Response Schema

Layout
createdAtrequired
string
format: date-time
definitionrequired
object
A layout is a declarative arrangement of card instances, not code.
cardsrequired
object[]
cardrequired
string
entityIdoptional
string
hrequired
number
idrequired
string
wrequired
number
xrequired
number
yrequired
number
formatVersionrequired
number
moderequired
any
formatVersionrequired
number
idrequired
string
pattern: ^[a-z0-9]{24}$
isDefaultrequired
boolean
moderequired
any
namerequired
string
storeIdrequired
string
pattern: ^[a-z0-9]{24}$
updatedAtrequired
string
format: date-time
userIdrequired
string

Example Response

200 OK — application/json
{
  "name": "string",
  "userId": "string",
  "formatVersion": 1,
  "isDefault": true,
  "definition": {
    "formatVersion": 1,
    "cards": [
      {
        "id": "string",
        "card": "string",
        "entityId": "string",
        "x": 1,
        "y": 1,
        "w": 1,
        "h": 1
      }
    ]
  },
  "id": "string",
  "storeId": "string",
  "createdAt": "2026-09-02T09:16:20.321Z",
  "updatedAt": "2026-09-02T09:16:20.321Z"
}