Resources & Data Types
An overview of every resource in the BankSync data model. Understanding this hierarchy helps you navigate the REST API and MCP tools effectively.
Resource Hierarchy
All resources are organized under a workspace. The tree below shows how resources relate to each other.
Banks
A bank represents a connection to a financial institution via an open finance provider (Plaid or Basiq). Each bank connection gives you access to the institution's accounts and data.
Key Fields
id — Unique bank IDinstitutionName — e.g. “Chase”source — plaid | basiqstatus — connected | errorcreatedAt — ISO 8601Accounts
Each bank connection contains one or more accounts — checking, savings, credit card, investment, loan, etc. Account data is fetched live from the financial institution.
Key Fields
id — Account IDname — Account nametype — checking, savings, etc.subtype — More specific typecurrency — ISO 4217 codeTransactions
Transactions are individual account entries — purchases, deposits, transfers, fees, etc. The API supports date-range filtering and cursor-based pagination for large result sets.
Key Fields
id — Transaction IDamount — Signed amountdescription — Payee/merchantdate — YYYY-MM-DDcategory — Categorizationpending — true/falsePagination: Use from and to query params for date filtering. For large results, use the cursor returned in the response to fetch the next page.
Balances
Balances represent the current state of an account. They are fetched live from the financial institution each time you request them.
Key Fields
current — Ledger balanceavailable — Available to spendlimit — Credit limit (if applicable)currency — ISO 4217asOf — Timestamp of balanceInvestments
Investment data is split into two resources: Trades (buy/sell transactions) and Holdings (current positions). Investment data may require additional bank consent.
Trades
ticker — Symbol (AAPL)type — buy, sell, dividendquantity — Number of unitsprice — Price per unitamount — Total valuedate — Trade dateHoldings
securityName — e.g. “Apple Inc”ticker — Symbolquantity — Shares heldcurrentPrice — Market pricecurrentValue — Total market valuecostBasis — Original costConsent: Some banks require explicit user consent for investment data. If you receive a 503 error, the user must re-authorize the bank connection in the BankSync app.
Loans
Loan data covers mortgages, auto loans, student loans, and other liabilities. Includes principal balance, interest rate, payment schedule, and maturity date.
Key Fields
loanType — mortgage, auto, etc.principalBalance — OutstandinginterestRatePercentage — APRnextPaymentAmount — Next paymentnextPaymentDueDate — Due dateFeeds
A feed is a data pipeline configuration that syncs financial data from a source (bank accounts) to a destination (Notion, Google Sheets, Airtable, etc.). Feeds define what data to sync, how to map fields, and when to run.
Key Fields
id — Feed IDname — Human-readable namesource — Source typedataType — transactions, balances, etc.sourceConfig — Source settingsdestinationConfig — Destination settingsfieldMappings — Field mapping rulesschedule — Cron scheduleJobs
A job represents a single execution of a feed sync. Jobs progress through these states:
Key Fields
id — Job IDstatus — Current statecreatedAt — When queuedcompletedAt — When finishedtransactionsProcessed — Row countIntegrations
Integrations are connected destination apps — Notion, Google Sheets, Airtable, and others. Feeds use integrations as their sync destination. You can list and disconnect integrations via the API.
API Keys
API keys grant programmatic access to the BankSync API and MCP server. Each key has a set of permission scopes that control what it can access. See the Authentication guide for details on creating and managing API keys.
Note: API key management (creating and revoking keys) requires an authenticated session. Keys cannot self-manage — use the BankSync web app.
