Build your own view of your budget.
The Kualia REST API gives your scripts, spreadsheets, and personal tools direct access to transactions, accounts, merchants, categories, and monthly envelope assignments.
curl "https://api.kualia.com/v1/
workspaces/{workspace_id}/transactions
?since_date=2026-07-01&limit=3" \
-H "Authorization: Bearer $KUALIA_API_KEY" {
"data": {
"currency": "USD",
"transactions": [
{
"date": "2026-07-12",
"merchant_name": "Whole Foods",
"category_name": "Groceries",
"amount": "-84.26"
},
{ "merchant_name": "City Bikes", "amount": "-18.00" }
],
"next_cursor": null
}
} Budget preview
Recent activity
Whole Foods
Groceries · Jul 12
City Bikes
Transport · Jul 11
curl -X PATCH "https://api.kualia.com/v1/
workspaces/{workspace_id}/months/2026-07/
categories/{category_id}" \
-H "Authorization: Bearer $KUALIA_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "assigned": "650.00" }' {
"data": {
"currency": "USD",
"month": "2026-07",
"category": {
"name": "Groceries",
"assigned": "650.00",
"activity": "-484.20",
"carryover_from_previous": "13.75",
"available": "179.55"
}
}
} Budget preview
Groceries
Available
$179.55
The refreshed envelope status comes back in the same response, so your automation can verify the change.
curl "https://api.kualia.com/v1/
workspaces/{workspace_id}/accounts" \
-H "Authorization: Bearer $KUALIA_API_KEY" {
"data": {
"currency": "USD",
"accounts": [
{
"name": "Chase Checking",
"type": "banking_checking",
"balance": "1520.75",
"linked": true
},
{ "name": "Emergency Fund", "balance": "5000.00" }
]
}
} Budget preview
Accounts
Chase Checking
$1,520.75
Linked · Checking
Emergency Fund
$5,000.00
Manual · Savings
What you can build
Your budget is not trapped in the app.
Kualia exposes the same core objects you work with every day. Read them, change them, and connect them to the rest of your personal system with a predictable REST interface.
Keep your data in sync
Pull transactions and balances into a spreadsheet, database, dashboard, or personal archive on your schedule.
Build your own reports
Combine normalized transactions, merchants, categories, and account balances into the view that makes sense to you.
Manage the full budget
Create and update transactions, organize categories, maintain manual accounts, and set monthly envelope assignments.
Automate the repetitive parts
Import batches, clean up merchants, watch for spending changes, or connect Kualia to the tools you already run.
Keep writes reviewable
New API transactions enter the review queue by default, so automations can help without quietly taking over your books.
Give each tool its own key
Create read-only or read-write keys per integration, then revoke one without interrupting everything else.
Quick start
From key to useful in three calls.
No SDK is required. Every endpoint uses JSON over HTTPS, bearer authentication, and versioned paths under
/v1.
Create a key
Open Settings → API Keys in the Kualia web app. Choose read-only or read-write access.
kualia_•••••••••••• Find your workspace
Call the workspaces endpoint once to get the id used by the rest of the API.
GET /v1/workspaces Build what you need
Use ordinary HTTP and JSON from any language, automation service, or command line.
GET /v1/workspaces/{id}/transactions Use the MCP server instead.
The REST API is for code you control. The MCP server connects Kualia directly to Claude, ChatGPT, Cursor, and other AI clients with an OAuth approval flow.
Who built this
Built by one person, used every day.
I got tired of budgeting apps that were either bloated with team features I would never use or so basic they could not handle real life. So I built the one I wanted, and I use it every day to run my own finances.
Solo built
One developer, no investors. Every decision is made for the person using the app.
Used by its maker
I budget with Kualia every day, so the rough edges get sanded down fast.
Direct support
Every email lands in my inbox. No ticket queues, no chatbots in between.
No data resale
Your transactions are your business. Kualia never sells your data to anyone, ever.
Ships often
Small updates land most weeks. New features ship every month. Nothing sits in committee.
FAQ
Questions about the REST API.
Keys, access, safe writes, and where the API fits next to MCP.
What can I access through the REST API?
You can read and write transactions, accounts, merchants, categories, category groups, and monthly envelope assignments. You can also list the user and workspaces attached to your key.
How do I create an API key?
Open the Kualia web app, go to Settings → API Keys, and choose Create Key. The full key is shown once, so copy it into your password manager or secret store before closing the dialog.
Can I make a read-only key?
Yes. Read-only keys can call GET endpoints but cannot create, change, or delete anything. Use a separate key for each integration so you can revoke access without interrupting your other tools.
What happens when an automation creates a transaction?
New API transactions enter the in-app review queue by default. You can verify the amount, merchant, and category before treating the transaction as final. You can explicitly mark trusted writes as reviewed when you create them.
Is there a rate limit?
Each API key can make 200 requests per hour. Transaction creation supports batches of up to 100 rows, which makes imports efficient without burning through the limit one row at a time.
How is the REST API different from the MCP server?
Use the REST API when you are writing a script, integration, dashboard, or automation. Use the MCP server when you want an AI assistant such as Claude or ChatGPT to work with your budget through a consent-based OAuth connection.
How should I store my API key?
Treat it like a password. Keep it in an environment variable or secret manager, never commit it to source control, and revoke it immediately if it is exposed.
Get in touch
Still have questions?
Need help getting started or want to suggest a feature? I read every message.
Email me at support@kualia.com
Request features and vote on ideas on the public board