Developers
Build with HeyBMO
Everything HeyBMO does is available to your code, your AI apps and your terminal: 128 operations across 10 groups, the same ones the app itself uses.
For agents: llms.txt · OpenAPIThree ways in, one set of operations
Every operation is one POST call with a JSON input. Use it from any language.
For AI appsMCP serverClaude, ChatGPT and other MCP clients use HeyBMO as tools, with your permission.
For terminals and agentsCLIEvery feature you switch on becomes a command, with JSON output for scripts.
One model everywhere
Each feature is a set of operations, such as notes.create or expenses.budgets. The REST API calls them by id, the MCP server offers them as tools (notes_create), and the CLI as commands (heybmo notes create). Inputs, outputs, checks and limits are the same on all three.
POST https://app.heybmo.com/api/ops/notes.create
Authorization: Bearer hb_live_…
{ "input": { "title": "Groceries", "body": "- milk\n- eggs" } }What you can reach
Your spaces, time zone, home currency and profile.
Inbox8 operationsEverything HeyBMO tells you, and your notification devices.
Today2 operationsThe layout of the Today page and its widgets.
Feature store4 operationsThe features you can switch on, and which ones are on.
Notes21 operationsNotes, folders, tags, files and search, including text inside pictures.
Lists25 operationsLists with your own columns, items, ticking, due days and resets.
Expenses23 operationsSpending and income, categories, budgets, recurring bills and receipts.
Debts18 operationsPeople, money lent and borrowed, paybacks and balances.
Reminders14 operationsOne-off and repeating reminders, snoozing, history and the agenda.
Automations6 operationsRules that act when something happens in a feature.
Built in, on every surface
- Private by design. Every call acts as one person, in their own space. One account can never read another's data.
- Safe deletes. Most deletes go to the trash for 30 days. Deleting for good always needs a second, confirmed call.
- Fair limits. Reads, writes and deletes each have their own rate limit, so a runaway script cannot empty an account.