BareBones + your code

No middleware, no platform — just an HTTP request. If you run your own app, a tenant portal, or a form on your site, you can post to the ledger directly.

curl
curl -X POST https://barebonespm.com/api/v1/ledger \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 1500,
    "type": "INCOME",
    "category": "RENT",
    "unit_id": 8,
    "transaction_date": "2026-03-01"
  }'

What you'll need

The request in full

POST/api/v1/ledger

Authorization: Bearer <your_api_key>

Create a key on your dashboard. Full reference in the API docs.

FieldTypeNotes
amount*numberDollar amount, e.g. 142.50
type*enumINCOME, EXPENSE, or CHARGE
category*enumRENT, UTILITIES, REPAIRS, INSURANCE, TAXES, …
property_idintegerWhich property (optional)
unit_idintegerSpecific unit; omit = property-wide
transaction_datestringYYYY-MM-DD; defaults to today
reason_descriptionstringFree-text note for the line
statusenumPAID or UNPAID (default UNPAID; ignored for INCOME)

* required

Any language

It’s one POST, everywhere

JavaScript
await fetch(
  'https://barebonespm.com/api/v1/ledger', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${process.env.API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    amount: 1500,
    type: 'INCOME',
    category: 'RENT',
    unit_id: 8,
  }),
});
Python
import os, requests

requests.post(
  'https://barebonespm.com/api/v1/ledger',
  headers={
    'Authorization': f"Bearer {os.environ['API_KEY']}",
  },
  json={
    'amount': 1500,
    'type': 'INCOME',
    'category': 'RENT',
    'unit_id': 8,
  },
)

A form on your site

Keep the API key on the server — always

It’s tempting to fetch straight from a page, but a key in browser code is a key anyone can read and abuse. Route the request through your own backend so the secret never leaves the server.

  • The key is a secret: it belongs in your backend, never in browser code
  • Have your page POST to your own server, and your server call BareBones
  • Rotate or revoke the key any time from your dashboard
browser → your server → BareBones
[ your site form ]
      │  POST /submit   (no key)
      ▼
[ your server ]
      │  POST /api/v1/ledger
      │  Authorization: Bearer KEY
      ▼
[ BareBones ledger ]

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