API Reference
API Reference
Transactions
GETRequires a Bearer token/api/ext/v1/transactions
List transactions
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| direction | query | string | Filter by 'inflow' or 'outflow'. Default: both. |
| from | query | string | Only transactions on or after this date (YYYY-MM-DD). |
| to | query | string | Only transactions on or before this date (YYYY-MM-DD). |
| keyword | query | string | Free-text match on counterparty name, memo, or reference. |
| limit | query | integer | Page size (default 100, max 200). |
| cursor | query | string | Keyset cursor from a previous page's next_cursor. Omit for the first page. |
Responses
200Your organization's money ledger, newest first, keyset-paginated. Amounts are integer cents, each paired with a *_known flag (render '—' when false, not $0); internal ids are never included. The summary totals the full filtered set.
| Field | Type | Description |
|---|---|---|
| datarequired | PublicTransaction[] | One page of transactions, newest first. |
| next_cursoroptional | string | Opaque cursor for the next page (keyset). Empty when this is the last page. |
| summaryrequired | PublicTransactionsSummary |
200 example
{
"data": [
{
"amount_cents": 150000,
"amount_known": true,
"amount_usd_cents": 150000,
"counterparty_name": "Acme Corp",
"currency": "USD",
"date": "2026-02-14",
"direction": "outflow",
"has_receipt": true,
"id": "a1b2c3d4-0000-4000-8000-000000000001",
"logo_url": "https://logo.example.com/acme.png",
"memo": "February retainer",
"method": "ach",
"reference": "INV-1042",
"source": "bob",
"source_label": "BOB",
"usd_known": true
}
],
"next_cursor": "2026-02-14/a1b2c3d4-0000-4000-8000-000000000001",
"summary": {
"count": 42,
"inflow_usd_cents": 500000,
"net_usd_cents": 180000,
"outflow_usd_cents": 320000,
"unconverted_count": 0
}
}Errors
400Invalid direction, date, limit, or cursor
401Missing or invalid API token
403Token lacks the required scope or credential class
429Rate limit exceeded
All errors return { "error": string }.
Example request
curl https://api.bankofbots.ai/api/ext/v1/transactions \
-H "Authorization: Bearer $BOB_API_TOKEN"GETRequires a Bearer token/api/ext/v1/transactions/{transactionId}
Get a transaction
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| transactionIdrequired | path | string | The transaction's id (from the transactions list). |
Responses
200The transaction. Amounts in integer cents; internal ids are never included.
| Field | Type | Description |
|---|---|---|
| amount_centsrequired | int64 | Amount in the transaction's native currency, integer cents, unsigned magnitude. |
| amount_knownrequired | boolean | When false, amount_cents is a placeholder (0) to render as '—', not money. |
| amount_usd_centsrequired | int64 | Amount converted to USD, integer cents. |
| counterparty_namerequired | string | Resolved counterparty name, or '(unknown)'. |
| currencyrequired | string | ISO currency code of amount_cents. |
| daterequired | string | Value date (YYYY-MM-DD). |
| directionrequired | string | 'inflow' (money in) or 'outflow' (money out) — carries the sign. |
| has_receiptrequired | boolean | True when this payment is matched to an invoice or bill. |
| idrequired | string | The transaction id. |
| logo_urloptional | string | Counterparty logo URL, if known. |
| memooptional | string | Free-text memo, if any. |
| methodoptional | string | Payment method, if known. |
| referenceoptional | string | External reference, if any. |
| sourcerequired | string | Money feed: 'bob' (BOB-native) or 'plaid' (linked bank). |
| source_labelrequired | string | Human-readable feed label ('BOB' or 'Plaid'). |
| usd_knownrequired | boolean | When false, amount_usd_cents is a placeholder and is excluded from USD totals. |
200 example
{
"amount_cents": 150000,
"amount_known": true,
"amount_usd_cents": 150000,
"counterparty_name": "Acme Corp",
"currency": "USD",
"date": "2026-02-14",
"direction": "outflow",
"has_receipt": true,
"id": "a1b2c3d4-0000-4000-8000-000000000001",
"logo_url": "https://logo.example.com/acme.png",
"memo": "February retainer",
"method": "ach",
"reference": "INV-1042",
"source": "bob",
"source_label": "BOB",
"usd_known": true
}Errors
401Missing or invalid API token
403Token lacks the required scope or credential class
404No such transaction in your organization
429Rate limit exceeded
All errors return { "error": string }.
Example request
curl https://api.bankofbots.ai/api/ext/v1/transactions/{transactionId} \
-H "Authorization: Bearer $BOB_API_TOKEN"Was this page helpful?