The Filters API lets you retrieve filtered records from a Blnk Core instance through Blnk Cloud. Send a POST request with a JSON filter body to query instance data directly. For the full endpoint reference, see Filters API.Documentation Index
Fetch the complete documentation index at: https://docs.blnkfinance.com/llms.txt
Use this file to discover all available pages before exploring further.
How it works
- Requests query the instance database directly through Blnk Cloud.
- Every request must include
instance_idas a query parameter. - You authenticate using a Cloud access token with the
data:readscope. - Filter conditions are sent as a JSON array in the request body.
URL structure
Base URL:/data/ or /proxy/.
Required headers:
instance_id as a query parameter:
Filter endpoints
Each collection has a dedicated filter endpoint:| Collection | Endpoint | Default pageSize |
|---|---|---|
| Ledgers | POST /ledger/filter | 30 |
| Balances | POST /balances/filter | 20 |
| Transactions | POST /transactions/filter | 20 |
| Identities | POST /identities/filter | 20 |
| Reconciliations | POST /reconciliation/filter | 20 |
The ledgers endpoint uses
/ledger/filter (singular), not /ledgers/filter.Request format
Send a POST request with a JSON body containing your filters. Pagination is controlled via query parameters, not the request body.| Parameter | Location | Required | Description |
|---|---|---|---|
filters | Body | Yes | Array of filter objects |
instance_id | Query | Yes | Target Core instance ID |
page | Query | No | Page number (default: 1) |
pageSize | Query | No | Records per page (default varies by resource) |
strict_total | Query | No | Transactions only. Set to true for an exact total count |
Filter object
Each filter object in thefilters array has the following fields:
| Field | Type | Required | Description |
|---|---|---|---|
field | string | Yes | Field to filter on |
operator | string | Yes | Comparison operator |
value | any | No | Single value for most operators |
values | array | No | Multiple values for in and between operators |
Supported operators
| Operator | Meaning | Example |
|---|---|---|
eq | Equals | { "field": "status", "operator": "eq", "value": "APPLIED" } |
ne | Not equals | { "field": "status", "operator": "ne", "value": "PENDING" } |
gt | Greater than | { "field": "amount", "operator": "gt", "value": 100 } |
gte | Greater than or equal | { "field": "amount", "operator": "gte", "value": 50 } |
lt | Less than | { "field": "amount", "operator": "lt", "value": 500 } |
lte | Less than or equal | { "field": "amount", "operator": "lte", "value": 500 } |
in | In list | { "field": "currency", "operator": "in", "values": ["USD", "EUR"] } |
between | Between two values | { "field": "created_at", "operator": "between", "values": ["2025-01-01T00:00:00Z", "2025-01-31T23:59:59Z"] } |
like | Pattern match | { "field": "reference", "operator": "like", "value": "ref_%" } |
ilike | Case-insensitive pattern | { "field": "description", "operator": "ilike", "value": "%fee%" } |
isnull | Is null | { "field": "identity_id", "operator": "isnull" } |
isnotnull | Is not null | { "field": "identity_id", "operator": "isnotnull" } |
exists | JSON key exists (metadata) | { "field": "meta_data.myApp.channel", "operator": "exists" } |
notexists | JSON key absent (metadata) | { "field": "meta_data.myApp.channel", "operator": "notexists" } |
Response format
The Cloud Filters API uses
{ "filters": [...] } in the body with pagination via query parameters. This differs from the self-hosted Core Filter API, which accepts limit, offset, sort_by, and include_count in the body. See Search via Database Filtering for self-hosted Core.Filterable fields by resource
| Resource | Fields |
|---|---|
| Ledgers | ledger_id, name, created_at, meta_data, meta_data.<path> |
| Balances | balance_id, ledger_id, identity_id, indicator, currencybalance, credit_balance, debit_balanceinflight_balance, inflight_credit_balance, inflight_debit_balancecreated_at, meta_data |
| Transactions | transaction_id, parent_transaction, amount, currencysource, destination, balance_id, referencestatus, created_at, effective_date, precision, meta_data |
| Identities | identity_id, first_name, last_name, other_names, gender, dobemail_address, phone_number, nationality, street, countrystate, organization_name, category, identity_typepost_code, city, created_at, meta_data |
Nested
meta_data keys use dot notation. Example: meta_data.myApp.channel.