Developers
API reference

Vehicles

get/v1/vehicles

List vehicles

vehicles.listread tokenidempotent

Every vehicle in the ledger, including suggested and dismissed ones (see status), each with its loan and equity.

Parameters

limit
integer · query
Page size, 1–200.
cursor
string | null · query
The next_cursor of the previous page.
X-Organization-Id
string | null · header

Returns 200 · VehicleList

data
array of Vehicle · required
has_more
boolean · required
next_cursor
string | null · required
Example
curl -X GET "https://api.lumaledger.app/v1/vehicles" \
  -H "Authorization: Bearer $LUMALEDGER_TOKEN"
post/v1/vehicles

Add a vehicle

vehicles.createwrite tokenidempotent

Add a vehicle the household owns, optionally linked to its loan. Send an Idempotency-Key so a retry cannot add it twice.

Parameters

Idempotency-Key
string | null · header
Any unique string (a UUID is ideal). A retry with the same key returns the first attempt's response instead of doing the work twice. Keys are kept for 24 hours.
X-Organization-Id
string | null · header

Body · VehicleCreate

estimated_value
string | null
What it is worth, as a decimal string. Pattern: ^\d{1,12}(\.\d{1,2})?$.
label
string · required
What to call it: Blue Civic.
loan_account_id
integer | null
Its loan: a liability account (see accounts.list) no other vehicle is linked to.
make
string | null
model
string | null
model_year
integer | null
1900–2100.
valued_at
date | null
The date the value is from. Defaults to today when a value is sent.
vehicle_type
string
One of car, motorcycle, truck, suv, van, rv, boat, other. Default: "car".
vin
string | null

Returns 201 · Vehicle

equity
Money | null · required
Value minus the loan. Null unless both are known.
estimated_value
Money | null · required
What it is worth. Null when nobody has said.
excluded_from_totals
boolean · required
Left out of the vehicle totals, and its loan out of net worth.
hidden
boolean · required
Hidden from the app's lists; still counted.
id
integer · required
label
string · required
loan
VehicleLoan | null · required
make
string | null · required
model
string | null · required
model_year
integer | null · required
source
string · required
manual, inferred (found from an auto loan) or seed (demo data).
status
string · required
suggested (found from an auto loan, not yet reviewed), confirmed or dismissed.
value_age_days
integer | null · required
Days since valued_at.
value_is_stale
boolean | null · required
The value is over six months old. Null when it was never dated: not fresh, unknown.
value_source
string · required
user or none.
valued_at
date | null · required
The date the value is true for.
vehicle_type
string · required
One of car, motorcycle, truck, suv, van, rv, boat, other.
vin
string | null · required
Example
curl -X POST "https://api.lumaledger.app/v1/vehicles" \
  -H "Authorization: Bearer $LUMALEDGER_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "label": "…"
  }'
delete/v1/vehicles/{vehicle_id}

Delete a vehicle

vehicles.deletewrite tokendestructiveidempotent

Delete a vehicle that was added by hand. Its loan account stays. One found from an auto loan cannot be deleted (the next sync would find it again): set its status to dismissed instead.

Parameters

vehicle_id
integer · path · required
X-Organization-Id
string | null · header

Returns 204 with no body.

Example
curl -X DELETE "https://api.lumaledger.app/v1/vehicles/{vehicle_id}" \
  -H "Authorization: Bearer $LUMALEDGER_TOKEN"
get/v1/vehicles/{vehicle_id}

Get a vehicle

vehicles.getread tokenidempotent

One vehicle with its loan and equity.

Parameters

vehicle_id
integer · path · required
X-Organization-Id
string | null · header

Returns 200 · Vehicle

equity
Money | null · required
Value minus the loan. Null unless both are known.
estimated_value
Money | null · required
What it is worth. Null when nobody has said.
excluded_from_totals
boolean · required
Left out of the vehicle totals, and its loan out of net worth.
hidden
boolean · required
Hidden from the app's lists; still counted.
id
integer · required
label
string · required
loan
VehicleLoan | null · required
make
string | null · required
model
string | null · required
model_year
integer | null · required
source
string · required
manual, inferred (found from an auto loan) or seed (demo data).
status
string · required
suggested (found from an auto loan, not yet reviewed), confirmed or dismissed.
value_age_days
integer | null · required
Days since valued_at.
value_is_stale
boolean | null · required
The value is over six months old. Null when it was never dated: not fresh, unknown.
value_source
string · required
user or none.
valued_at
date | null · required
The date the value is true for.
vehicle_type
string · required
One of car, motorcycle, truck, suv, van, rv, boat, other.
vin
string | null · required
Example
curl -X GET "https://api.lumaledger.app/v1/vehicles/{vehicle_id}" \
  -H "Authorization: Bearer $LUMALEDGER_TOKEN"
patch/v1/vehicles/{vehicle_id}

Update a vehicle

vehicles.updatewrite tokenidempotent

Correct a vehicle's details, revalue it, link or unlink its loan, confirm or dismiss one found from an auto loan, or hide it or leave it out of the totals. Only the fields sent change.

Parameters

vehicle_id
integer · path · required
X-Organization-Id
string | null · header

Body · VehicleUpdate

estimated_value
string
A new value. Dated today unless valued_at is sent with it. Pattern: ^\d{1,12}(\.\d{1,2})?$.
excluded_from_totals
boolean
Leave it out of the totals, and its loan out of net worth.
hidden
boolean
label
string
loan_account_id
integer | null
Link a loan, or null to unlink it.
make
string
model
string
model_year
integer
1900–2100.
status
string
One of confirmed, dismissed, suggested.
valued_at
date
The date the value is from; sent alone, it re-dates the current one.
vehicle_type
string
One of car, motorcycle, truck, suv, van, rv, boat, other.
vin
string

Returns 200 · Vehicle

equity
Money | null · required
Value minus the loan. Null unless both are known.
estimated_value
Money | null · required
What it is worth. Null when nobody has said.
excluded_from_totals
boolean · required
Left out of the vehicle totals, and its loan out of net worth.
hidden
boolean · required
Hidden from the app's lists; still counted.
id
integer · required
label
string · required
loan
VehicleLoan | null · required
make
string | null · required
model
string | null · required
model_year
integer | null · required
source
string · required
manual, inferred (found from an auto loan) or seed (demo data).
status
string · required
suggested (found from an auto loan, not yet reviewed), confirmed or dismissed.
value_age_days
integer | null · required
Days since valued_at.
value_is_stale
boolean | null · required
The value is over six months old. Null when it was never dated: not fresh, unknown.
value_source
string · required
user or none.
valued_at
date | null · required
The date the value is true for.
vehicle_type
string · required
One of car, motorcycle, truck, suv, van, rv, boat, other.
vin
string | null · required
Example
curl -X PATCH "https://api.lumaledger.app/v1/vehicles/{vehicle_id}" \
  -H "Authorization: Bearer $LUMALEDGER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'

Objects

Money

An amount and its currency. `amount` is a base-10 string with two decimal places and an optional leading minus sign. Parse it with a decimal type, not a float.

Fields

amount
string · required
Pattern: ^-?\d+\.\d{2}$.
currency
string · required
ISO 4217 code. Pattern: ^[A-Z]{3}$.

Vehicle

A car, motorcycle, boat or other vehicle the household owns.

Fields

equity
Money | null · required
Value minus the loan. Null unless both are known.
estimated_value
Money | null · required
What it is worth. Null when nobody has said.
excluded_from_totals
boolean · required
Left out of the vehicle totals, and its loan out of net worth.
hidden
boolean · required
Hidden from the app's lists; still counted.
id
integer · required
label
string · required
loan
VehicleLoan | null · required
make
string | null · required
model
string | null · required
model_year
integer | null · required
source
string · required
manual, inferred (found from an auto loan) or seed (demo data).
status
string · required
suggested (found from an auto loan, not yet reviewed), confirmed or dismissed.
value_age_days
integer | null · required
Days since valued_at.
value_is_stale
boolean | null · required
The value is over six months old. Null when it was never dated: not fresh, unknown.
value_source
string · required
user or none.
valued_at
date | null · required
The date the value is true for.
vehicle_type
string · required
One of car, motorcycle, truck, suv, van, rv, boat, other.
vin
string | null · required

VehicleCreate

Fields

estimated_value
string | null
What it is worth, as a decimal string. Pattern: ^\d{1,12}(\.\d{1,2})?$.
label
string · required
What to call it: Blue Civic.
loan_account_id
integer | null
Its loan: a liability account (see accounts.list) no other vehicle is linked to.
make
string | null
model
string | null
model_year
integer | null
1900–2100.
valued_at
date | null
The date the value is from. Defaults to today when a value is sent.
vehicle_type
string
One of car, motorcycle, truck, suv, van, rv, boat, other. Default: "car".
vin
string | null

VehicleList

A page of vehicles, in id order.

Fields

data
array of Vehicle · required
has_more
boolean · required
next_cursor
string | null · required

VehicleLoan

Fields

account_id
integer · required
The loan's liability account (see accounts.list).
balance
Money · required
What is owed on it today, positive while owed.
name
string · required

VehicleUpdate

Only the fields sent change. loan_account_id sent as null unlinks the loan; the other fields cannot be cleared.

Fields

estimated_value
string
A new value. Dated today unless valued_at is sent with it. Pattern: ^\d{1,12}(\.\d{1,2})?$.
excluded_from_totals
boolean
Leave it out of the totals, and its loan out of net worth.
hidden
boolean
label
string
loan_account_id
integer | null
Link a loan, or null to unlink it.
make
string
model
string
model_year
integer
1900–2100.
status
string
One of confirmed, dismissed, suggested.
valued_at
date
The date the value is from; sent alone, it re-dates the current one.
vehicle_type
string
One of car, motorcycle, truck, suv, van, rv, boat, other.
vin
string