GET /v1/transfers

Transactions matched as transfers between two of your accounts

Matched automatically after each sync. A pair is matched only when the amounts are equal and opposite, the accounts differ, the dates are within three days, and each side has exactly one possible partner. Matched transfers are excluded from spending and income totals.

Auth. Send the token in the X-Ledger-Token header.

Responses

StatusMeaningBody
200Matched transfers, newest firstTransfer[]
429Too many requests from this client address. Wait the number of seconds in Retry-After, then try again.Error

Example response

[
  {
    "id": 0,
    "amount_cents": 0,
    "method": "auto",
    "created_at": "2026-10-11T00:00:00Z",
    "out_tx_id": 0,
    "from_account_id": "string",
    "out_posted": "2026-10-11",
    "in_tx_id": 0,
    "to_account_id": "string",
    "in_posted": "2026-10-11"
  }
]

Code samples

Set KEY to your own token first.

curl

curl \
  -H X-Ledger-Token:$KEY \
  "https://api.sasek.org/ledger/v1/transfers"

JavaScript

const res = await fetch("https://api.sasek.org/ledger/v1/transfers", {
  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/transfers",
    method="GET",
    headers={
        "X-Ledger-Token": os.environ["KEY"],
    },
)
with urllib.request.urlopen(request) as response:
    print(json.load(response))