BMO

BMO Account Information API

Query all information for a set of accounts provided in the payload

Operations 2

GET /accounts/{accountId} Get an Account #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/bmo-account-information-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

bmo-account-information-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 5.3.0
  title: Account Information API
  description: Retrieve real-time account and transaction information for all your authorized BMO accounts without the need to switch applications.
  x-api-id: BMO-ENT-7673dc36-7935-44e4-aeff-3c9ddd5d8e85
  x-bmoservicedomain-name: Commercial-sb
  x-api-specification-compliant: true
  x-audience: company-internal
  x-bmo-api-type: internal-api
  x-bmo-api-provider-id: 3284
  x-ibm-name: account-information
  x-ibm-summary: ''
servers:
- url: https://sandbox-open-api.bmo.com/open-banking/commercial-sb
security:
- api-key-1: []
  OAuth:
  - FinancialInformation
tags:
- name: Account Information
  description: Query all information for a set of accounts provided in the payload
paths:
  /accounts:
    get:
      x-dataclassification-code: Confidential
      operationId: Search for Accounts
      tags:
      - Account Information
      description: Search for Authorized Accounts
      summary: Search for Authorized Accounts
      parameters:
      - name: accountIds
        in: query
        description: Comma separated list of account ids
        style: form
        explode: false
        schema:
          type: array
          items:
            type: string
      - name: startTime
        in: query
        description: Please ignore Start time
        schema:
          type: string
          format: date
      - name: endTime
        in: query
        description: Please ignore End time
        schema:
          type: string
          format: date
      - name: resultType
        in: query
        description: Flag to indicate if you want a lightweight array of descriptors or full account details. If set to `lightweight`, should only return the fields associated with the `AccountDescriptor` entity. This field is not required, but defaults to lightweight
        required: false
        schema:
          type: string
          enum:
          - lightweight
          - details
          default: lightweight
      - name: offset
        in: query
        description: Opaque cursor used by the provider to send the next set of records
        schema:
          type: string
      - name: limit
        in: query
        description: Number of elements that the consumer wishes to receive - Providers should implement reasonable defaults and maximum
        schema:
          type: integer
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
      - name: authorization
        in: header
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Array of accounts
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAccounts'
              examples:
                example1:
                  value:
                    page:
                      nextOffset: '2'
                      total: 3
                    links:
                      next:
                        href: /accounts?offSet=2&limit=10
                    accounts:
                    - depositAccount:
                        accountId: 8be3jd08sndsj33h2uhb423j
                        accountNumber: '4809372058'
                        description: dposit acc desc
                        hostAccountName: My Checking Acc XXXX3223
                        accountType: DDA
                        currency:
                          currencyCode: USD
                    - depositAccount:
                        accountId: 6acs6d87c8as9c7s97c7sd90
                        accountNumber: '994208420'
                        description: account 2 description
                        hostAccountName: Deposit account XXXX943
                        accountType: FCA
                        currency:
                          currencyCode: EUR
                    - locAccount:
                        accountId: 2w0d5a4sdf0fx0x1
                        accountNumber: '9001201858'
                        description: locAccount cad
                        hostAccountName: My loc Acc XXXX9979
                        accountType: LOAN
                        currency:
                          currencyCode: CAD
        '400':
          description: The request was not accepted, often caused by a missing required parameter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: API key provided was invalid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden - the user is not authorized to use this resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: The requested resource could not be found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '415':
          description: Unsupported Media Type
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Too many requests hit the API in too short of a period
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '504':
          description: Integration or Backend Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /accounts/{accountId}:
    get:
      x-dataclassification-code: Confidential
      operationId: Get an Account
      tags:
      - Account Information
      description: Get an Account
      summary: Get an Account
      parameters:
      - name: accountId
        in: path
        description: Account Identifier
        required: true
        schema:
          type: string
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
      - name: authorization
        in: header
        required: true
        schema:
          type: string
      responses:
        '200':
          description: This can be one of LoanAccount, DepositAccount, LocAccount, or InvestmentAccount
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAccount'
              examples:
                example1:
                  value:
                    depositAccount:
                      accountId: b99bb688b7cf877ef111afd9c23110059b2912f37b5c24c6b9d2811850d945fa
                      accountNumber: '1095355'
                      currency:
                        currencyCode: USD
                      hostAccountName: XIM USD1
                      accountType: DDA
                      fiAttributes:
                      - name: 1DayFloat
                        value: 1706739.05
                      - name: 2orMoreDaysFloat
                        value: 2444.77
                      - name: OpenDate
                        value: '2003-06-26'
                      - name: StatementName
                        value: ALPINE TOTAL DYNAMIC DIVIDEND FUND
                      status: OPEN
                      balanceAsOf: '1975-11-18'
                      currentBalance: -622390531.27
                      interestYtd: 0
                      priorInterestRate: 0.5
        '400':
          description: The request was not accepted, often caused by a missing required parameter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: API key provided was invalid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden - the user is not authorized to use this resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: The requested resource could not be found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '415':
          description: Unsupported Media Type
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Too many requests hit the API in too short of a period
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '504':
          description: Integration or Backend Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    InvestmentBalance:
      title: InvestmentBalance Entity
      type: object
      properties:
        balanceName:
          type: string
          description: Name of the balance
        balanceDescription:
          type: string
          description: Description of balance
        balanceType:
          $ref: '#/components/schemas/InvestmentBalanceType'
        balanceValue:
          type: number
          description: Value of balance name
        balanceDate:
          type: string
          description: Date as of this balance. YYYY-MM-DD.
        currency:
          $ref: '#/components/schemas/Currency'
    LoanAccount:
      title: LoanAccount Entity
      description: Loan accounts will have following fields in FiAttributes - BorrowerName, FacilityName, OutstandingBal, OutstandingBalLoanCurr, MaturityDate
      allOf:
      - $ref: '#/components/schemas/AccountDetails'
      - type: object
        properties:
          principalBalance:
            type: number
            description: Principal balance of loan
          escrowBalance:
            type: number
            description: Escrow balance of loan
          originalPrincipal:
            type: number
            description: Original principal of loan
          originatingDate:
            type: string
            description: Loan origination date. YYYY-MM-DD.
          loanTerm:
            type: integer
            description: Term of loan in months
          nextPaymentAmount:
            type: number
            description: Amount of next payment
          nextPaymentDate:
            type: string
            description: Date of next payment. YYYY-MM-DD.
          paymentFrequency:
            $ref: '#/components/schemas/PaymentFrequency'
          payOffAmount:
            type: number
            description: Payoff amount
          lastPaymentAmount:
            type: number
            description: Last payment amount
          lastPaymentDate:
            type: string
            description: Last payment date. YYYY-MM-DD.
          maturityDate:
            type: string
            description: Maturity date. YYYY-MM-DD.
          interestPaidYearToDate:
            type: number
            description: Interest paid year to date
    AccountDetails:
      title: Account Entity
      description: An account object that adds additional detail parameters to the basic Accounts object, this is used in Get an Account operation.
      allOf:
      - $ref: '#/components/schemas/Account'
      - type: object
        properties:
          status:
            type: string
            enum:
            - OPEN
            - CLOSED
            - PENDINGOPEN
            - PENDINGCLOSE
            - DELINQUENT
            - PAID
            - NEGATIVECURRENTBALANCE
          routingTransitNumber:
            type: string
            description: Routing transit number (RTN) associated with account number at owning institution.
          interestRate:
            type: number
            description: Interest Rate of Account
          priorInterestRate:
            type: number
            description: Previous Interest Rate of Account
          balanceAsOf:
            type: string
            description: As-of date of balances. YYYY-MM-DD.
    PageMetadataLinks:
      type: object
      properties:
        next:
          $ref: '#/components/schemas/HateoasLink'
        prev:
          $ref: '#/components/schemas/HateoasLink'
    InvestmentBalanceType:
      title: InvestmentBalanceType
      type: string
      enum:
      - AMOUNT
      - PERCENTAGE
    Error:
      title: Error Entity
      type: object
      properties:
        code:
          type: string
          description: Long term persistent identifier which can be used to trace error condition back to log information
        message:
          type: string
          description: End user displayable information which might help the customer diagnose an error
      description: An error entity which can be used at the API level for error responses or at the account level to indicate a problem specific to a particular account.
    Accounts:
      description: An instance of the getAccounts types with limited details.
      allOf:
      - type: object
        properties:
          depositAccount:
            $ref: '#/components/schemas/Account'
      - type: object
        properties:
          loanAccount:
            $ref: '#/components/schemas/Account'
      - type: object
        properties:
          locAccount:
            $ref: '#/components/schemas/Account'
      - type: object
        properties:
          investmentAccount:
            $ref: '#/components/schemas/Account'
    ContentTypes:
      title: Content Types
      type: string
      description: Types of document formats. (Suggested)
      example: application/json
      enum:
      - application/pdf
      - image/gif
      - image/jpeg
      - image/tiff
      - image/png
      - application/json
    AccountType:
      title: AccountType
      type: string
      enum:
      - 401A
      - 401K
      - 403B
      - '529'
      - AUTOLOAN
      - CD
      - CHARGE
      - CHECKING
      - COMMERCIALLINEOFCREDIT
      - COMMERCIALLOAN
      - COVERDELL
      - CREDITCARD
      - DEPOSIT
      - ESCROW
      - ESOP
      - GUARDIAN
      - HOMEEQUITYLOAN
      - HOMELINEOFCREDIT
      - INSTITUTIONALTRUST
      - INSTALLMENT
      - IRA
      - INVESTMENT
      - KEOGH
      - LINEOFCREDIT
      - LOAN
      - MILITARYLOAN
      - MONEYMARKET
      - MORTGAGE
      - PERSONALLOAN
      - ROLLOVER
      - ROTH
      - SARSEP
      - SAVINGS
      - SMBLOAN
      - STUDENTLOAN
      - TAXABLE
      - TDA
      - TRUST
      - UGMA
      - UTMA
      - ANNUITY
    Account:
      title: Account Entity
      description: An account object with limited details returned in the search for accounts operation.
      allOf:
      - type: object
        properties:
          accountId:
            maxLength: 256
            type: string
            description: Long-term persistent identity of the account. Not an account number. This identity must be unique to the owning institution.
          accountType:
            $ref: '#/components/schemas/AccountType'
          accountNumber:
            type: string
            description: Return masked account based on request.
          hostAccountName:
            type: string
            description: Name given by the user. Used in UIs to assist in account selection
          description:
            type: string
          currency:
            $ref: '#/components/schemas/Currency'
          fiAttributes:
            type: array
            items:
              $ref: '#/components/schemas/FiAttribute'
    Currency:
      title: Currency Entity
      type: object
      properties:
        currencyRate:
          type: number
          description: Currency rate between original and converted currency
        currencyCode:
          $ref: '#/components/schemas/Iso4217Code'
        originalCurrencyCode:
          $ref: '#/components/schemas/Iso4217Code'
      description: Currency information if it is different from Account entity
    DepositAccount:
      title: DepositAccount Entity
      description: Deposit accounts will have following fields in FiAttributes - PreviousBalance, OpenDate, StatementName, 1DayFloat, 2orMoreDaysFloat, AccruedInterestMTD, ProjectedInterested, InterestPaidPreviousMonth
      allOf:
      - $ref: '#/components/schemas/AccountDetails'
      - type: object
        properties:
          currentBalance:
            type: number
            description: Balance of funds in account
          openingDayBalance:
            type: number
            description: Day's opening fund balance
          availableBalance:
            type: number
            description: Balance of funds available for use
          interestYtd:
            type: number
            description: YTD Interest
          term:
            type: integer
            description: Term of CD in months
          maturityDate:
            type: string
            description: Maturity date for CDs
    GetAccount:
      description: An instance of an account with full details.
      allOf:
      - type: object
        properties:
          depositAccount:
            $ref: '#/components/schemas/DepositAccount'
      - type: object
        properties:
          loanAccount:
            $ref: '#/components/schemas/LoanAccount'
      - type: object
        properties:
          locAccount:
            $ref: '#/components/schemas/LocAccount'
      - type: object
        properties:
          investmentAccount:
            $ref: '#/components/schemas/InvestmentAccount'
    HateoasLink:
      required:
      - href
      type: object
      properties:
        href:
          type: string
          example: /example/accounts/12345
        action:
          type: string
          description: HTTP Method to use for the request (Suggested)
          enum:
          - GET
          - POST
          - PATCH
          - DELETE
          - PUT
        types:
          type: array
          description: Content-types that can be used in the Accept header.
          items:
            $ref: '#/components/schemas/ContentTypes'
    LocAccount:
      title: LocAccount Entity
      description: Loc accounts will have following fields in FiAttributes - StatementBalance
      allOf:
      - $ref: '#/components/schemas/AccountDetails'
      - type: object
        properties:
          availableCredit:
            type: number
            description: Available credit
          nextPaymentAmount:
            type: number
            description: Amount of next payment
          nextPaymentDate:
            type: string
            description: Due date of next payment. YYYY-MM-DD.
          principalBalance:
            type: number
            description: Principal balance
          currentBalance:
            type: number
            description: Current balance LOC
          lastPaymentAmount:
            type: number
            description: Last payment amount
          lastPaymentDate:
            type: string
            description: Last payment date. YYYY-MM-DD.
          pastDueAmount:
            type: number
            description: Past Due Amount
          lastStmtBalance:
            type: number
            description: Last Statement Balance
          lastStmtDate:
            type: string
            description: Last Statement Date. YYYY-MM-DD.
    InvestmentAccount:
      title: InvestmentAccount Entity
      allOf:
      - $ref: '#/components/schemas/AccountDetails'
      - type: object
        properties:
          currentValue:
            type: number
            description: Total current value of all investments
          balanceList:
            type: array
            description: Balance List. Name value pair aggregate.
            items:
              $ref: '#/components/schemas/InvestmentBalance'
    GetAccounts:
      title: Accounts Entity
      description: An optionally paginated array of accounts.
      allOf:
      - $ref: '#/components/schemas/PaginatedArray'
      - type: object
        properties:
          accounts:
            type: array
            items:
              $ref: '#/components/schemas/Accounts'
    Iso4217Code:
      title: Iso4217Code
      type: string
      description: The ISO 4217 code of the foreign currency
      enum:
      - AED
      - AFN
      - ALL
      - AMD
      - ANG
      - AOA
      - ARS
      - AUD
      - AWG
      - AZN
      - BAM
      - BBD
      - BDT
      - BGN
      - BHD
      - BIF
      - BMD
      - BND
      - BOB
      - BOV
      - BRL
      - BSD
      - BTN
      - BWP
      - BYR
      - BZD
      - CAD
      - CDF
      - CHE
      - CHF
      - CHW
      - CLF
      - CLP
      - CNY
      - COP
      - COU
      - CRC
      - CUC
      - CUP
      - CVE
      - CZK
      - DJF
      - DKK
      - DOP
      - DZD
      - EGP
      - ERN
      - ETB
      - EUR
      - FJD
      - FKP
      - GBP
      - GEL
      - GHS
      - GIP
      - GMD
      - GNF
      - GTQ
      - GYD
      - HKD
      - HNL
      - HRK
      - HTG
      - HUF
      - IDR
      - ILS
      - INR
      - IQD
      - IRR
      - ISK
      - JMD
      - JOD
      - JPY
      - KES
      - KGS
      - KHR
      - KMF
      - KPW
      - KRW
      - KWD
      - KYD
      - KZT
      - LAK
      - LBP
      - LKR
      - LRD
      - LSL
      - LYD
      - MAD
      - MDL
      - MGA
      - MKD
      - MMK
      - MNT
      - MOP
      - MRO
      - MUR
      - MVR
      - MWK
      - MXN
      - MXV
      - MYR
      - MZN
      - NAD
      - NGN
      - NIO
      - NOK
      - NPR
      - NZD
      - OMR
      - PAB
      - PEN
      - PGK
      - PHP
      - PKR
      - PLN
      - PYG
      - QAR
      - RON
      - RSD
      - RUB
      - RWF
      - SAR
      - SBD
      - SCR
      - SDG
      - SEK
      - SGD
      - SHP
      - SLL
      - SOS
      - SRD
      - SSP
      - STD
      - SVC
      - SYP
      - SZL
      - THB
      - TJS
      - TMT
      - TND
      - TOP
      - TRY
      - TTD
      - TWD
      - TZS
      - UAH
      - UGX
      - USD
      - USN
      - UYI
      - UYU
      - UZS
      - VEF
      - VND
      - VUV
      - WST
      - XAF
      - XAG
      - XAU
      - XBA
      - XBB
      - XBC
      - XBD
      - XCD
      - XDR
      - XOF
      - XPD
      - XPF
      - XPT
      - XSU
      - XTS
      - XUA
      - XXX
      - YER
      - ZAR
      - ZMW
      - ZWL
    PageMetadata:
      type: object
      properties:
        nextOffset:
          type: string
          description: Opaque identified. Does not need to be numeric or have any specific pattern. Implementation specific.
          example: '2'
        prevOffset:
          type: string
          description: Opaque identified. Does not need to be numeric or have any specific pattern. Implementation specific.
          example: '2'
        totalElements:
          type: integer
          description: Total number of elements
          example: 3
    PaymentFrequency:
      title: PaymentFrequency
      type: string
      description: DAILY, WEEKLY, BIWEEKLY, SEMIMONTHLY, MONTHLY, SEMIANNUALLY, ANNUALLY
      enum:
      - ANNUALLY
      - BIWEEKLY
      - DAILY
      - MONTHLY
      - SEMIANNUALLY
      - SEMIMONTHLY
      - WEEKLY
    PaginatedArray:
      type: object
      properties:
        page:
          $ref: '#/components/schemas/PageMetadata'
        links:
          $ref: '#/components/schemas/PageMetadataLinks'
      description: To be used as a mixin using "allOf"
    FiAttribute:
      title: FiAttribute Entity
      type: object
      properties:
        name:
          type: string
          description: Name of attribute
        value:
          type: string
          description: Value of attribute. All date fields will be of the string format YYYY-MM-DD.
      description: Financial platform provider-specific attribute
  securitySchemes:
    api-key-1:
      type: apiKey
      x-key-type: client_id
      name: x-api-key
      in: header
    OAuth:
      type: oauth2
      x-ibm-oauth-provider: apic-oauth-ob-commercial-sb-provider
      flows:
        authorizationCode:
          authorizationUrl: https://open-api.bmofg.com/open-banking/commercial-sb/oauth20/authorize
          tokenUrl: https://open-api.bmofg.com/open-banking/commercial-sb/oauth20/token
          scopes:
            FinancialInformation: FinancialInformation
x-ibm-configuration:
  categories:
  - bian--bd--operationalservices
  enforced: true
  testable: true
  phase: realized
  cors:
    enabled: true
  type: rest
  application-authentication:
    certificate: false
  oauth-servers:
    OAuth:
      authorizationCode:
        tokenUrls:
        - https://open-api.bmofg.com/open-banking/commercial-sb/oauth20/token
        authorizationUrls:
        - https://open-api.bmofg.com/open-banking/commercial-sb/oauth20/authorize
        refreshUrls: []
x-ibm-endpoints:
- url: https://sandbox-open-api.bmo.com/open-banking/commercial-sb
  type:
  - production
  - development