BareBones + AI agents
The API was built with agents in mind. Hand an LLM a single tool — “add a ledger entry” — and it can read a receipt photo, pick the right category, and post the line, all on its own.
{
"name": "add_ledger_entry",
"description": "Add one line to the ledger.",
"input_schema": {
"type": "object",
"required": ["amount", "type", "category"],
"properties": {
"amount": { "type": "number" },
"type": { "enum": ["INCOME","EXPENSE","CHARGE"] },
"category": { "type": "string" },
"property_id": { "type": "integer" }
}
}
}What you'll need
The call behind the tool
Authorization: Bearer <your_api_key>
Create a key on your dashboard. Full reference in the API docs.
| Field | Type | Notes |
|---|---|---|
| amount* | number | Dollar amount, e.g. 142.50 |
| type* | enum | INCOME, EXPENSE, or CHARGE |
| category* | enum | RENT, UTILITIES, REPAIRS, INSURANCE, TAXES, … |
| property_id | integer | Which property (optional) |
| unit_id | integer | Specific unit; omit = property-wide |
| transaction_date | string | YYYY-MM-DD; defaults to today |
| reason_description | string | Free-text note for the line |
| status | enum | PAID or UNPAID (default UNPAID; ignored for INCOME) |
* required
Step by step
Give the agent one job
The tool schema mirrors the API, so the model already knows how to fill it in.
Create an API key
Generate one under API keys. Keep it in your agent’s server-side environment, never in a prompt.
Define one tool
Register a function like add_ledger_entry whose schema matches the ledger fields (see the snippet). Any function-calling model — Claude, GPT, local — works.
Run the tool call as a POST
When the model calls the tool, your handler forwards its arguments to POST /api/v1/ledger with the Bearer header.
Let it read the source
Feed the agent a receipt photo or a bill email. It extracts the amount, chooses a category from the allowed list, and calls the tool.
Return the result
Pass the 201 response back so the agent can confirm “logged $142.40 to Utilities” — and correct itself if a field was wrong.
Keep the human in the loop. For anything ambiguous, have the agent post with status: UNPAID or flag low-confidence lines for review — so a misread receipt is a quick fix, not a silent error.
Get your API key and wire it up.
Create a key on your dashboard, point your tool at POST /api/v1/ledger, and your books start keeping themselves.
Other integrations
