API reference

Rudopo API · version 1.0.0 · base URL https://rudopo.app/api/v1

Generated from the OpenAPI description that ships with the code. Every request needs Authorization: Bearer rudopo_pat_YOUR_TOKEN.

Endpoints

get/budgets

List budgets

Every budget this token may reach. A token narrowed to specific budgets sees only those.

Responses: 200 OK · 400 A parameter is missing or malformed · 401 No token, or the token is invalid, revoked or expired · 403 About the TOKEN: it lacks the scope, or is not scoped to that budget · 404 Not reachable by this token. A nonexistent id and another owner's id answer identically · 429 Rate limited — see Retry-After · 500 Something went wrong. The body never names internals

get/accounts

List accounts

ParameterInTypeRequiredNotes
budget_idquerystringyesThe budget to read. Required on every budget-scoped resource.

Responses: 200 OK · 400 A parameter is missing or malformed · 401 No token, or the token is invalid, revoked or expired · 403 About the TOKEN: it lacks the scope, or is not scoped to that budget · 404 Not reachable by this token. A nonexistent id and another owner's id answer identically · 429 Rate limited — see Retry-After · 500 Something went wrong. The body never names internals

get/transactions

List transactions

Newest first. Filters run server-side, so the page limit applies to the FILTERED set.

ParameterInTypeRequiredNotes
budget_idquerystringyesThe budget to read. Required on every budget-scoped resource.
account_idquerystringno
category_idquerystringno
start_datequerystringnoYYYY-MM-DD, inclusive
end_datequerystringnoYYYY-MM-DD, inclusive
searchquerystringnoMatches payee, memo and category. 200 characters maximum.
uncategorizedquerybooleanno
unclearedquerybooleanno
limitqueryintegerno1–1000.
offsetqueryintegerno

Responses: 200 OK · 400 A parameter is missing or malformed · 401 No token, or the token is invalid, revoked or expired · 403 About the TOKEN: it lacks the scope, or is not scoped to that budget · 404 Not reachable by this token. A nonexistent id and another owner's id answer identically · 429 Rate limited — see Retry-After · 500 Something went wrong. The body never names internals

get/categories

List category groups with their categories

ParameterInTypeRequiredNotes
budget_idquerystringyesThe budget to read. Required on every budget-scoped resource.
include_hiddenquerybooleanno
limitqueryintegerno1–500.
offsetqueryintegerno

Responses: 200 OK · 400 A parameter is missing or malformed · 401 No token, or the token is invalid, revoked or expired · 403 About the TOKEN: it lacks the scope, or is not scoped to that budget · 404 Not reachable by this token. A nonexistent id and another owner's id answer identically · 429 Rate limited — see Retry-After · 500 Something went wrong. The body never names internals

get/payees

List payees

ParameterInTypeRequiredNotes
budget_idquerystringyesThe budget to read. Required on every budget-scoped resource.
limitqueryintegerno1–500.
offsetqueryintegerno

Responses: 200 OK · 400 A parameter is missing or malformed · 401 No token, or the token is invalid, revoked or expired · 403 About the TOKEN: it lacks the scope, or is not scoped to that budget · 404 Not reachable by this token. A nonexistent id and another owner's id answer identically · 429 Rate limited — see Retry-After · 500 Something went wrong. The body never names internals

get/labels

List labels

ParameterInTypeRequiredNotes
budget_idquerystringyesThe budget to read. Required on every budget-scoped resource.
limitqueryintegerno1–500.
offsetqueryintegerno

Responses: 200 OK · 400 A parameter is missing or malformed · 401 No token, or the token is invalid, revoked or expired · 403 About the TOKEN: it lacks the scope, or is not scoped to that budget · 404 Not reachable by this token. A nonexistent id and another owner's id answer identically · 429 Rate limited — see Retry-After · 500 Something went wrong. The body never names internals

get/months/{month}

Get one budget month

The envelope answer for a month: what is left to assign, what was assigned, what is overspent.

ParameterInTypeRequiredNotes
monthpathstringyesYYYY-MM
budget_idquerystringyesThe budget to read. Required on every budget-scoped resource.

Responses: 200 OK · 400 A parameter is missing or malformed · 401 No token, or the token is invalid, revoked or expired · 403 About the TOKEN: it lacks the scope, or is not scoped to that budget · 404 Not reachable by this token. A nonexistent id and another owner's id answer identically · 429 Rate limited — see Retry-After · 500 Something went wrong. The body never names internals

Shapes

Money fields are decimal strings in major units — parse them with a decimal type, never a float.

Budget

idstring
spaceIdstring
spaceNamestring | null
namestring
currencystringISO 4217 code, e.g. USD
createdAtstring | nullISO-8601 UTC
archivedAtstring | nullISO-8601 UTC. Set when a clean slate left this budget behind as an archive; its balances also live in the successor budget.

Account

idstring
namestring
typestringAccount type
currencystring | nullnull = the budget's currency
onBudgetboolean
closedboolean
balancestringCleared + uncleared, budget currency, AS OF TODAY (server date, UTC). Future-dated transactions are excluded here but ARE counted by transactionCount and lastTransactionDate, so summing /transactions for this account will not equal this figure whenever one exists.
clearedBalancestringDecimal string, major units, 2dp, e.g. "-45.00"
unclearedBalancestringDecimal string, major units, 2dp, e.g. "-45.00"
nativeBalancestringBalance in the account's own currency
transactionCountinteger
lastTransactionDatestring | nullYYYY-MM-DD
createdAtstring | null

Transaction

idstring
datestringYYYY-MM-DD, no timezone
accountIdstring
accountNamestring | null
payeeIdstring | null
payeeNamestring | null
categoryIdstring | null
categoryNamestring | null
memostring
amountstringNegative = outflow. Budget currency.
amountNativestring | nullSet only on foreign-currency accounts
exchangeRatenumber | null
currencystring | null
typestringTransaction kind
clearedboolean
reconciledboolean
transferAccountIdstring | null
splitGroupIdstring | nullShared by every leg of a split
labelsobject[]
createdAtstring | null

Category

idstring
groupIdstring
namestring
hiddenboolean
notestring | null

CategoryGroup

idstring
namestring
hiddenboolean
budgetModestringWhere this group is funded
categoriesobject[]

Payee

idstring
namestring

Label

idstring
namestring

Month

monthstringYYYY-MM
readyToAssignstringDecimal string, major units, 2dp, e.g. "-45.00"
assignedstringAssigned in this month
cashBalancestringDecimal string, major units, 2dp, e.g. "-45.00"
overspentTotalstringDecimal string, major units, 2dp, e.g. "-45.00"
overspentCountinteger
uncategorizedCountinteger
heldForNextMonthstringDecimal string, major units, 2dp, e.g. "-45.00"

Pagination

limitinteger
offsetinteger
has_morebooleanTrue when the page was full; fetch the next offset

Error

errorobject

Back to Developers