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.
| 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
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
