Developers
API reference

Tasks

get/v1/tasks

List tasks

tasks.listread tokenidempotent

The ledger's to-do list: what is open, what is snoozed and what was done in the last 30 days. Tasks come from the ledger itself and disappear when their condition does (filing the last uncategorized transaction completes that task), so the list is recomputed on every read. Dismissed tasks are not listed.

Parameters

limit
integer · query
Page size, 1–200.
cursor
string | null · query
The next_cursor of the previous page.
state
string | null · query
Only tasks in this state. Every state when omitted.
X-Organization-Id
string | null · header

Returns 200 · TaskList

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

Dismiss a task

tasks.dismisswrite tokenidempotent

"Never": stop suggesting this task. Only tasks marked dismissable can be dismissed. The verdict is written where the feature keeps it: dismissing confirm_recurring marks the charge as not recurring (see recurring.set_status). Undo with tasks.restore.

Parameters

X-Organization-Id
string | null · header

Body · TaskRef

task_id
string · required
The task's id, from tasks.list.

Returns 200 · TaskVerdict

task
Task | null · required
Example
curl -X POST "https://api.lumaledger.app/v1/tasks/dismiss" \
  -H "Authorization: Bearer $LUMALEDGER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "task_id": "…"
  }'
post/v1/tasks/restore

Restore a dismissed task

tasks.restorewrite tokenidempotent

Undo tasks.dismiss. The task is listed again if its condition still holds.

Parameters

X-Organization-Id
string | null · header

Body · TaskRef

task_id
string · required
The task's id, from tasks.list.

Returns 200 · TaskVerdict

task
Task | null · required
Example
curl -X POST "https://api.lumaledger.app/v1/tasks/restore" \
  -H "Authorization: Bearer $LUMALEDGER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "task_id": "…"
  }'
post/v1/tasks/snooze

Snooze a task

tasks.snoozewrite tokenidempotent

"Not now": hide an open task for a day, a week or a month. It comes back on its own when the time is up, if its condition still holds.

Parameters

X-Organization-Id
string | null · header

Body · TaskSnooze

duration
string
One of day, week, month. Pattern: ^(day|week|month)$. Default: "week".
task_id
string · required
The task's id, from tasks.list.

Returns 200 · TaskVerdict

task
Task | null · required
Example
curl -X POST "https://api.lumaledger.app/v1/tasks/snooze" \
  -H "Authorization: Bearer $LUMALEDGER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "task_id": "…"
  }'
post/v1/tasks/unsnooze

Unsnooze a task

tasks.unsnoozewrite tokenidempotent

Bring a snoozed task back to the open list now.

Parameters

X-Organization-Id
string | null · header

Body · TaskRef

task_id
string · required
The task's id, from tasks.list.

Returns 200 · TaskVerdict

task
Task | null · required
Example
curl -X POST "https://api.lumaledger.app/v1/tasks/unsnooze" \
  -H "Authorization: Bearer $LUMALEDGER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "task_id": "…"
  }'

Objects

Task

Something the household should take care of.

Fields

count
integer · required
How many things the task stands for (e.g. unfiled transactions).
dismissable
boolean · required
Whether tasks.dismiss is allowed. The others can only be snoozed.
first_seen_at
datetime · required
id
string · required
The task's stable key: its kind, and for per-subject kinds the subject (confirm_recurring:netflix). Pass it as task_id to the task actions.
kind
string · required
What to do. One of categorize_transactions, match_receipts, relink_bank, sync_stale_bank, confirm_recurring, link_named_bank, update_valuation, set_first_budget, invite_member, name_p2p_payment, route_transfers; new kinds may be added.
last_seen_at
datetime · required
payload
object · required
Facts about the task, per kind (ids, names, counts; amounts are decimal strings in the ledger's base currency). Keys are snake_case.
priority
string · required
One of urgent, normal, low, most urgent first.
resolved_at
datetime | null · required
snoozed_until
datetime | null · required
state
string · required
One of open, snoozed, done; done means resolved in the last 30 days.

TaskList

A page of tasks, most urgent first (the app's own order).

Fields

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

TaskRef

Fields

task_id
string · required
The task's id, from tasks.list.

TaskSnooze

Fields

duration
string
One of day, week, month. Pattern: ^(day|week|month)$. Default: "week".
task_id
string · required
The task's id, from tasks.list.

TaskVerdict

The task after the action. A task no longer listed (dismissed, or completed by the action) comes back as null.

Fields

task
Task | null · required