Printago API
POST /v1/layouts

Create dashboard layout

The definition is validated against the layout schema: structural problems and authoring mistakes (malformed placements, duplicate placement ids, footprints off the size classes) are rejected with 400. The layout belongs to the calling user; their first layout becomes the default unless `isDefault` says otherwise, and setting `isDefault` clears it from their other layouts.

Requires: layout.create

Request Body

Layout name, its definition document, and an optional default flag

LayoutInsert
definitionrequired
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
namerequired
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

201 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.316Z",
  "updatedAt": "2026-09-02T09:16:20.316Z"
}