heybmoDocsOpen HeyBMO

API reference

Today

The layout of the Today page and its widgets.

Base URL https://app.heybmo.comFor agents: llms.txt · OpenAPI

Operations

ReadPOST /api/ops/home.layout

Read the Today page layout

The widgets on the person’s Today page in HeyBMO, where they sit on its 12-column grid and how big, plus the widgets available from the features switched on. Until the person arranges it, a starting layout is returned (saved: false).

MCP tool home_layoutCLI heybmo home layoutLimit readSafe to retryInput

No input: send an empty object.

curl https://app.heybmo.com/api/ops/home.layout \
  -H "Authorization: Bearer $HEYBMO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{}}'
200 response
{
  "output": {
    "widgets": [
      {
        "widget": "…",
        "x": 0,
        "y": 0,
        "w": 0,
        "h": 0,
        "settings": {}
      }
    ],
    "available": [
      {
        "id": "…",
        "feature": "…",
        "title": "…",
        "description": "…",
        "minSize": [
          null
        ],
        "maxSize": [
          null
        ],
        "defaultSize": [
          null
        ]
      }
    ],
    "saved": false
  }
}
WritePOST /api/ops/home.saveLayout

Arrange the Today page

Save the whole Today page: every widget to show, with its place and size (widgets left out are removed). Up to 40 widgets, each from home.layout's available list, at a size it allows. Widgets of switched-off features are kept as they were.

MCP tool home_saveLayoutCLI heybmo home saveLayoutLimit writeInput
widgetsrequiredlist of objectUp to 40 items.Each item:
widgetrequiredtextA widget id from available.
xrequirednumberColumn, 0 to 11.
yrequirednumberRow, from 0 at the top.
wrequirednumberWidth in columns.
hrequirednumberHeight in rows.
settingsobjectThe widget’s own choices. Default {}.
curl https://app.heybmo.com/api/ops/home.saveLayout \
  -H "Authorization: Bearer $HEYBMO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"widgets":[{"widget":"reminders.today","x":0,"y":0,"w":6,"h":3}]}}'
200 response
{
  "output": {
    "widgets": [
      {
        "widget": "…",
        "x": 0,
        "y": 0,
        "w": 0,
        "h": 0,
        "settings": {}
      }
    ],
    "available": [
      {
        "id": "…",
        "feature": "…",
        "title": "…",
        "description": "…",
        "minSize": [
          null
        ],
        "maxSize": [
          null
        ],
        "defaultSize": [
          null
        ]
      }
    ],
    "saved": false
  }
}