# List bank rules

Operation ID: `bankRules`

Group: Banking › Bank Rules

[Open in the interactive reference](https://docs.api.lensing.ai/lensing/v1/endpoints/bankRules)

`GET /banking/bank-rules`

Read-only: Reads and returns; changes nothing.

Lists bank rules. Each rule has the rule fields only. For its criteria, its bank accounts or credit card accounts and its action object, use `GET banking/bank-rules/:id` or `POST banking/bank-rules/search`.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `Api-Version` | header | string · v1 | yes | The API version this request targets, named by its public identifier. Required on every request; omitting it, or naming a version this company does not have, is answered with 400. This document describes version `v1`. |

## Query surface

- `id` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `bankRuleNumber` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `rule` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `action` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `status` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like
- `priority` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between
- `lastModifiedDate` — filter by eq, ne, gt, gte, lt, lte, in, notIn, between
- Orderable: id, bankRuleNumber, rule, action, status, priority, lastModifiedDate
- Selectable: id, bankRuleNumber, rule, action, status, priority, description, lastModifiedDate
- `page[size]` — Page size
- `page[cursor]` — Opaque continuation cursor

## Response

`200` Success

Under `data`, an array of bankRulesRow:

| Field | Type | Required | Filter | Sort | Description |
| --- | --- | --- | --- | --- | --- |
| `id` | string | no | Exact (`eq`, `ne`), Range (`gt`, `gte`, `lt`, `lte`, `between`), Any of (`in`, `notIn`), Pattern (`like`) | yes | The unique identifier for the bank rule. |
| `bankRuleNumber` | string \| null | no | Exact (`eq`, `ne`), Range (`gt`, `gte`, `lt`, `lte`, `between`), Any of (`in`, `notIn`), Pattern (`like`) | yes | The bank rule number. Example: 'BR-000014'. |
| `rule` | string | no | Exact (`eq`, `ne`), Range (`gt`, `gte`, `lt`, `lte`, `between`), Any of (`in`, `notIn`), Pattern (`like`) | yes | The name of the bank rule. Unique within the tenant. |
| `action` | string | no | Exact (`eq`, `ne`), Range (`gt`, `gte`, `lt`, `lte`, `between`), Any of (`in`, `notIn`), Pattern (`like`) | yes | What the rule creates for each bank transaction that meets its criteria. Possible values: 'createBankEntry' (a bank entry), 'createCreditCardEntry' (a credit card entry). |
| `status` | string | no | Exact (`eq`, `ne`), Range (`gt`, `gte`, `lt`, `lte`, `between`), Any of (`in`, `notIn`), Pattern (`like`) | yes | The status of the rule. Possible values: 'active' (the rule runs whenever bank rules run), 'inactive' (the rule is kept but does not run), 'draft' (a rule proposed by the Bank Rules Advisor, which does not run until it is activated). |
| `priority` | number | no | Exact (`eq`, `ne`), Range (`gt`, `gte`, `lt`, `lte`, `between`), Any of (`in`, `notIn`) | yes | The order in which this rule runs relative to other rules. Lower numbers run first. |
| `description` | string \| null | no | no | no | A description of the rule. |
| `lastModifiedDate` | date-time | no | Exact (`eq`, `ne`), Range (`gt`, `gte`, `lt`, `lte`, `between`), Any of (`in`, `notIn`) | yes | The date and time the bank rule last changed, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ. |

```json
{
  "data": [
    {
      "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "bankRuleNumber": "<bankRuleNumber>",
      "rule": "<rule>",
      "action": "<action>",
      "status": "<status>",
      "priority": 0,
      "description": "<description>",
      "lastModifiedDate": "2026-01-15T09:30:00.000Z"
    }
  ],
  "pagination": {
    "hasMore": true,
    "nextCursor": "<nextCursor>"
  }
}
```

## Statuses

- `400` — Invalid request or business failure
- `401` — The request carries no valid access token.
- `403` — Not authorized
- `404` — Not found
- `429` — Too many requests from this client address. The response has no body and no `Retry-After` header.
- `500` — Internal server error
