Endpoint reference
Every endpoint, its parameters and its response fields, generated directly from the API schema so it always matches the current version.
Base URL: https://api.endute.com/v1. Every path below is relative to it, and every request carries your API key in the Authorization header. Paths are exact and have no trailing slash.
Accounts
/v1/accountsList the bank accounts the key's user has connected.
Response Account[]
| Field | Type | Nullable | Description |
|---|---|---|---|
| id | string (uuid) | no | - |
| institution | string | no | - |
| name | string | no | - |
| masked_identifier | string | yes | Last 4 of the IBAN, else last 4 of the BBAN, else null. |
| currency | string | no | - |
| status | string | no | Account status as reported by the bank (e.g. enabled). |
| sandbox | boolean | no | - |
| last_synced_at | string (date-time) | no | When transaction DATA was last received for this account. Honest caveat: this is the last successful data delivery, not the last poll attempt -- a quiet account with no new transactions keeps an older stamp. |
| oldest_booking_date | string (date) | no | Booking date of the earliest transaction served for this account: the stored feed spans this date to now and only ever grows (history is never trimmed or expired). Use it with the transactions from/to filters to pull the window you want. Null until the first transaction lands. |
/v1/accounts/{id}Retrieve a single connected bank account by its id.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string (uuid) | yes | - |
Response Account
| Field | Type | Nullable | Description |
|---|---|---|---|
| id | string (uuid) | no | - |
| institution | string | no | - |
| name | string | no | - |
| masked_identifier | string | yes | Last 4 of the IBAN, else last 4 of the BBAN, else null. |
| currency | string | no | - |
| status | string | no | Account status as reported by the bank (e.g. enabled). |
| sandbox | boolean | no | - |
| last_synced_at | string (date-time) | no | When transaction DATA was last received for this account. Honest caveat: this is the last successful data delivery, not the last poll attempt -- a quiet account with no new transactions keeps an older stamp. |
| oldest_booking_date | string (date) | no | Booking date of the earliest transaction served for this account: the stored feed spans this date to now and only ever grows (history is never trimmed or expired). Use it with the transactions from/to filters to pull the window you want. Null until the first transaction lands. |
/v1/accounts/{id}/balancesGet the current balances for one bank account, each stamped with when it was last fetched.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string (uuid) | yes | - |
Response Balance
| Field | Type | Nullable | Description |
|---|---|---|---|
| account_id | string (uuid) | no | - |
| balance | string (decimal) | no | Decimal string, 4 decimal places as stored. |
| currency | string | no | - |
| fetched_at | string (date-time) | no | - |
Transactions
/v1/accounts/{account_id}/transactionsList an account's transactions, newest first, with cursor pagination.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| account_id | path | string (uuid) | yes | - |
| cursor | query | string | no | Opaque pagination cursor from the previous response's "next" URL. Newest first; treat transaction ids as the idempotency key when walking the feed. |
| from | query | string (date) | no | Only transactions with booking_date on or after this date. Strictly YYYY-MM-DD. |
| to | query | string (date) | no | Only transactions with booking_date on or before this date. Strictly YYYY-MM-DD. |
Response PaginatedTransactionList (results: Transaction[])
| Field | Type | Nullable | Description |
|---|---|---|---|
| id | string (uuid) | no | - |
| booking_date | string (date) | no | - |
| value_date | string (date) | no | - |
| amount | string (decimal) | no | Signed, as the bank reported: negative = outflow. |
| currency | string | no | - |
| description | string | no | - |
| counterparty | string | yes | - |
| enrichment | TransactionEnrichment | no | - |
| sandbox | boolean | no | - |
Connections
/v1/connectionsList the user's bank connections and their status.
Response Connection[]
| Field | Type | Nullable | Description |
|---|---|---|---|
| id | string (uuid) | no | - |
| institution | string | no | - |
| status | string | no | - |
| expires_at | string (date-time) | no | When the underlying bank consent expires; null for connections without consent expiry (e.g. sandbox). |
| sandbox | boolean | no | - |
/v1/connections/{id}Retrieve a single bank connection by its id.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string (uuid) | yes | - |
Response Connection
| Field | Type | Nullable | Description |
|---|---|---|---|
| id | string (uuid) | no | - |
| institution | string | no | - |
| status | string | no | - |
| expires_at | string (date-time) | no | When the underlying bank consent expires; null for connections without consent expiry (e.g. sandbox). |
| sandbox | boolean | no | - |
Investments
/v1/investment-accountsList the user's connected investment accounts.
Response InvestmentAccount[]
| Field | Type | Nullable | Description |
|---|---|---|---|
| id | integer | no | - |
| name | string | no | - |
| number | string | yes | Masked/partial account number as the provider supplied it (provider_metadata); null when unavailable. |
| currency | string | yes | - |
| connection_id | integer | no | - |
| sandbox | boolean | no | - |
| last_holdings_sync_at | string (date-time) | no | When holdings were last successfully synced for this account; null until the first sync. |
/v1/investment-accounts/{account_id}/activitiesList an investment account's activity (trades and cash events), newest first.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| account_id | path | integer | yes | - |
| from | query | string (date) | no | Only activities with trade_date on or after this date. Strictly YYYY-MM-DD. Cash-only rows (null trade_date) are excluded when this filter is set. |
| to | query | string (date) | no | Only activities with trade_date on or before this date. Strictly YYYY-MM-DD. Cash-only rows (null trade_date) are excluded when this filter is set. |
Response InvestmentActivities (results: InvestmentActivity[])
| Field | Type | Nullable | Description |
|---|---|---|---|
| id | integer | no | - |
| type | string | no | Provider activity type (e.g. BUY, SELL, DIVIDEND). |
| symbol | string | no | Provider ticker; "" for cash-only rows. |
| units | string (decimal) | no | Quantity, Decimal string; null for cash-only rows. |
| price | string (decimal) | no | Per-unit price, Decimal string; null for cash-only rows. |
| amount | string (decimal) | no | Total cash amount, Decimal string; signed as the provider reported. |
| currency | string | no | - |
| trade_date | string (date) | no | Trade/settlement date; null for cash-only rows. |
| sandbox | boolean | no | - |
/v1/investment-accounts/{account_id}/positionsGet the latest holdings for one investment account, with the snapshot date.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| account_id | path | integer | yes | - |
Response InvestmentPositions
| Field | Type | Nullable | Description |
|---|---|---|---|
| as_of | string (date-time) | no | Provider data timestamp the snapshot reflects; null when no snapshot exists yet. |
| positions | InvestmentPosition[] | no | - |
/v1/investment-connectionsList the user's investment connections and their status.
Response InvestmentConnection[]
| Field | Type | Nullable | Description |
|---|---|---|---|
| id | integer | no | - |
| broker | string | no | The user-facing brokerage name (e.g. "Interactive Brokers"). Never an aggregation provider identity. |
| status | string | no | - |
| sandbox | boolean | no | - |
| last_synced_at | string (date-time) | no | When the most recent successful sync completed; null until the first sync. |
