PATCH /v1/rules/{id}

Change a rule's pattern, category or priority. Transactions are re-categorized immediately.

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

Parameters

NameInTypeRequiredDescription
idpathintegerrequired

Request body

application/json: object

FieldTypeRequiredDescription
patternstringoptionalNormalized the same way bank text is. Must not duplicate another rule.
categorystringoptionalMust be on the category list
priorityintegeroptional

Responses

StatusMeaningBody
200The updated rule. Transactions are re-categorized immediately.Rule
400Request rejectedError
404Request rejectedError
409Request rejectedError
429Too many requests from this client address. Wait the number of seconds in Retry-After, then try again.Error

Example response

{
  "id": 0,
  "pattern": "string",
  "category": "string",
  "priority": 0,
  "created_at": "2026-10-11T00:00:00Z",
  "transactions": 0
}

Code samples

Set KEY to your own token first.

curl

curl \
  -X PATCH \
  -H X-Ledger-Token:$KEY \
  -H "Content-Type: application/json" \
  -d '{"pattern": "string", "category": "string", "priority": 1}' \
  "https://api.sasek.org/ledger/v1/rules/{id}"

JavaScript

const res = await fetch("https://api.sasek.org/ledger/v1/rules/{id}", {
  method: "PATCH",
  headers: { "X-Ledger-Token": KEY, "Content-Type": "application/json" },
  body: JSON.stringify({
    "pattern": "string",
    "category": "string",
    "priority": 1
  }),
});
const data = await res.json();

Python

import json
import os
import urllib.request

payload = {'pattern': 'string', 'category': 'string', 'priority': 1}

request = urllib.request.Request(
    "https://api.sasek.org/ledger/v1/rules/{id}",
    method="PATCH",
    headers={
        "X-Ledger-Token": os.environ["KEY"],
        "Content-Type": "application/json",
    },
    data=json.dumps(payload).encode(),
)
with urllib.request.urlopen(request) as response:
    print(json.load(response))