heybmoDocsOpen HeyBMO

API reference

Feature store

The features you can switch on, and which ones are on.

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

Operations

ReadPOST /api/ops/marketplace.list

List features you can switch on

List the features this person can switch on in the current space (notes, expenses, lists...), with what each does, what it requires and whether it is on.

MCP tool marketplace_listCLI heybmo marketplace listLimit readSafe to retryInput

No input: send an empty object.

curl https://app.heybmo.com/api/ops/marketplace.list \
  -H "Authorization: Bearer $HEYBMO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{}}'
200 response
{
  "output": {
    "features": [
      {
        "id": "…",
        "name": "…",
        "description": "…",
        "category": "money",
        "status": "beta",
        "plan": "…",
        "requires": [
          "…"
        ],
        "enabled": false,
        "tagline": "…",
        "updated": "2026-11-09"
      }
    ]
  }
}
ReadPOST /api/ops/marketplace.get

Read a feature’s store page

Read what the store says about one feature before switching it on. It gives what the feature does, what to ask an AI app, the data it keeps, its limits and what changed lately. It also names the features it works with, its Today widgets and events, and what switching it on or off would also change.

MCP tool marketplace_getCLI heybmo marketplace getLimit readSafe to retryInput
featurerequiredtextA feature id from marketplace.list, e.g. debts.
curl https://app.heybmo.com/api/ops/marketplace.get \
  -H "Authorization: Bearer $HEYBMO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"feature":"debts"}}'
200 response
{
  "output": {
    "id": "…",
    "name": "…",
    "description": "…",
    "category": "money",
    "status": "beta",
    "plan": "…",
    "enabled": false,
    "alsoSwitchesOn": [
      "…"
    ],
    "neededBy": [
      "…"
    ],
    "listing": {
      "tagline": "…",
      "pitch": "…",
      "headline": "…",
      "moments": [
        {
          "kind": "person",
          "title": "…",
          "detail": "…"
        }
      ],
      "highlights": [
        {
          "title": "…",
          "body": "…"
        }
      ],
      "conversation": [
        {
          "you": "…"
        }
      ],
      "data": [
        "…"
      ],
      "limits": [
        {
          "label": "…",
          "value": 0
        }
      ],
      "changes": [
        {
          "day": "2026-11-09",
          "text": "…"
        }
      ],
      "worksWith": [
        {
          "feature": "…",
          "name": "…",
          "how": "…"
        }
      ]
    },
    "widgets": [
      {
        "id": "…",
        "title": "…",
        "description": "…"
      }
    ],
    "events": [
      {
        "id": "…",
        "title": "…",
        "description": "…"
      }
    ]
  }
}
WritePOST /api/ops/marketplace.enable

Switch a feature on

Switch a feature on in the current space, together with the features it requires. A free feature: when the person asks for something it does, switch it on without asking first, then tell them you did. A feature with a plan is never switched on without the person: the call then switches nothing on and returns askFirst; tell them which features need a plan and which plan, and call again with approved: true only once they say yes. Only owners of the space can do this.

MCP tool marketplace_enableCLI heybmo marketplace enableLimit writeSafe to retryInput
featurerequiredtextA feature id from marketplace_list, e.g. notes.
approvedtrue or falsetrue only after the person said yes to a feature with a plan (one listed in askFirst). Never set it on your own.
curl https://app.heybmo.com/api/ops/marketplace.enable \
  -H "Authorization: Bearer $HEYBMO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"feature":"notes"}}'
200 response
{
  "output": {
    "enabled": [
      "…"
    ],
    "askFirst": [
      {
        "feature": "…",
        "plan": "…"
      }
    ],
    "next": "…"
  }
}
WritePOST /api/ops/marketplace.disable

Switch a feature off

Switch a feature off in the current space. Its data is hidden, not deleted, and comes back when it is switched on again. Refused while another enabled feature needs it.

Only the person can do this, in HeyBMO in the browser. Called from here, it changes nothing.

MCP tool marketplace_disableCLI heybmo marketplace disableLimit writeSafe to retryInput
featurerequiredtextA feature id from marketplace_list, e.g. notes.
curl https://app.heybmo.com/api/ops/marketplace.disable \
  -H "Authorization: Bearer $HEYBMO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"feature":"notes"}}'
200 response
{
  "output": {
    "disabled": false,
    "blockedBy": [
      "…"
    ]
  }
}