GET /v1/transactions
Transactions, newest first
Auth. Send the token in the X-Ledger-Token header.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
since | query | string (date) | optional | Only rows on or after this date |
until | query | string (date) | optional | Only transactions posted before this date (exclusive) |
account_id | query | string | optional | |
category | query | string | optional | |
merchant | query | string | optional | Case-insensitive text inside the bank's merchant name |
q | query | string | optional | Case-insensitive text search across merchant, payee, memo and note |
min_amount | query | integer | optional | In cents. Negative values are money out. |
max_amount | query | integer | optional | In cents |
limit | query | integer | optional | |
cursor | query | string | optional | Opaque position from the X-Next-Cursor header of the previous page. Preferred over offset: pages stay stable when new rows arrive. Use either cursor or offset, not both. |
offset | query | integer | optional | Number of rows to skip. Prefer cursor. |
Responses
| Status | Meaning | Body |
|---|---|---|
200 | Matching transactions. X-Next-Cursor is present when more rows follow. | Transaction[] |
400 | Request rejected | Error |
429 | Too many requests from this client address. Wait the number of seconds in Retry-After, then try again. | Error |
Example response
[
{
"id": 0,
"source": "manual",
"external_id": "string",
"account_id": "string",
"posted": "2026-10-11",
"transacted_at": "2026-10-11T00:00:00Z",
"amount_cents": 0,
"merchant": "string",
"payee": "string",
"memo": "string",
"category": "string",
"category_source": "manual",
"rule_id": 0,
"note": "string"
}
]
Code samples
Set KEY to your own token first.
curl
curl \
-H X-Ledger-Token:$KEY \
"https://api.sasek.org/ledger/v1/transactions"
JavaScript
const res = await fetch("https://api.sasek.org/ledger/v1/transactions", {
headers: { "X-Ledger-Token": KEY },
});
const data = await res.json();
Python
import json
import os
import urllib.request
request = urllib.request.Request(
"https://api.sasek.org/ledger/v1/transactions",
method="GET",
headers={
"X-Ledger-Token": os.environ["KEY"],
},
)
with urllib.request.urlopen(request) as response:
print(json.load(response))