Mesh Balance API

### Supported integrations: ```Robinhood``` ```ETrade``` ```Alpaca``` ```WeBull``` ```Stash``` ```InteractiveBrokers``` ```Public``` ```Coinbase``` ```Kraken``` ```CoinbasePro``` ```CryptoCom``` ```Binance``` ```Gemini``` ```OkCoin``` ```KuCoin``` ```Etoro``` ```CexIo``` ```BinanceInternational``` ```Bitstamp``` ```GateIo``` ```Acorns``` ```Okx``` ```BitFlyer``` ```Coinlist``` ```Huobi``` ```Bitfinex``` ```KrakenDirect``` ```Vanguard``` ```BinanceInternationalDirect``` ```BitfinexDirect``` ```Bybit``` ```Paxos``` ```CoinbasePrime```

Operations 2

POST /api/v1/balance/get Get account balance #
GET /api/v1/balance/portfolio Get aggregated portfolio fiat balances #

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/mesh:mesh-balance-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

mesh-balance-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Mesh Balance API
  version: '1.0'
  description: 'Operations tagged Balance across 2 of this provider''s published API definitions: mesh-integration-api-openapi.json, mesh-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://integration-api.meshconnect.com
- url: https://sandbox-integration-api.meshconnect.com
security:
- Client-Secret: []
  Client-Id: []
tags:
- name: Balance
  description: '### Supported integrations:

    ```Robinhood```

    ```ETrade```

    ```Alpaca```

    ```WeBull```

    ```Stash```

    ```InteractiveBrokers```

    ```Public```

    ```Coinbase```

    ```Kraken```

    ```CoinbasePro```

    ```CryptoCom```

    ```Binance```

    ```Gemini```

    ```OkCoin```

    ```KuCoin```

    ```Etoro```

    ```CexIo```

    ```BinanceInternational```

    ```Bitstamp```

    ```GateIo```

    ```Acorns```

    ```Okx```

    ```BitFlyer```

    ```Coinlist```

    ```Huobi```

    ```Bitfinex```

    ```KrakenDirect```

    ```Vanguard```

    ```BinanceInternationalDirect```

    ```BitfinexDirect```

    ```Bybit```

    ```Paxos```

    ```CoinbasePrime```'
paths:
  /api/v1/balance/get:
    post:
      tags:
      - Balance
      summary: Get account balance
      description: Get real-time account fiat balances.
      requestBody:
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/BalanceBrokerBaseRequest'
            example:
              authToken: Secret authentication token
              type: binanceInternationalDirect
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/B2BBrokerAccountBalanceModelApiResult'
              example:
                content:
                  balances:
                  - cash: 158.5
                    buyingPower: 258.5
                    currencyCode: USD
                  - cash: 10
                    buyingPower: 10
                    currencyCode: EUR
                  totalCashUsdValue: 10
                  totalBuyingPowerUsdValue: 10
                status: ok
                message: ''
                errorType: ''
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResult'
              example:
                status: badRequest
                message: Error message
                displayMessage: Optional display message
                errorType: missingField
        '401':
          description: Unauthorized
          content:
            application/json:
              schema: {}
        '403':
          description: The API key used does not have read permission to call this Mesh endpoint.
          content:
            application/json:
              schema: {}
      operationId: postApiV1BalanceGet
      x-operation-id-source: derived
    servers:
    - url: https://integration-api.meshconnect.com
  /api/v1/balance/portfolio:
    get:
      tags:
      - Balance
      summary: Get aggregated portfolio fiat balances
      description: Get cached aggregated fiat balances from all connected integrations.
      parameters:
      - name: UserId
        in: query
        description: End user ID to get the aggregated portfolio for.
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/B2BFiatPortfolioModelApiResult'
              example:
                content:
                  fiatBalances:
                  - symbol: USD
                    cash: 3.099
                    buyingPower: 3.099
                  - symbol: EUR
                    cash: -102.88
                    buyingPower: 1293.596
                status: ok
                message: ''
                errorType: ''
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResult'
              example:
                status: badRequest
                message: Error message
                displayMessage: Optional display message
                errorType: missingField
        '401':
          description: Unauthorized
          content:
            application/json:
              schema: {}
        '403':
          description: The API key used does not have read permission to call this Mesh endpoint.
          content:
            application/json:
              schema: {}
      operationId: getApiV1BalancePortfolio
      x-operation-id-source: derived
    servers:
    - url: https://integration-api.meshconnect.com
components:
  schemas:
    B2BBrokerAccountBalanceModel:
      type: object
      properties:
        balances:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/B2BBrokerAccountBalance'
        totalCashUsdValue:
          type:
          - number
          - 'null'
          description: Total USD value of all currencies
          format: double
        totalBuyingPowerUsdValue:
          type:
          - number
          - 'null'
          description: Total USD value of all Buying Power
          format: double
      additionalProperties: false
    BalanceBrokerBaseRequest:
      required:
      - authToken
      - type
      type: object
      properties:
        authToken:
          minLength: 1
          type: string
          description: Auth token that allows connecting to the target institution
        type:
          enum:
          - robinhood
          - eTrade
          - alpaca
          - tdAmeritrade
          - weBull
          - stash
          - interactiveBrokers
          - public
          - coinbase
          - kraken
          - coinbasePro
          - cryptoCom
          - openSea
          - binanceUs
          - gemini
          - cryptocurrencyAddress
          - cryptocurrencyWallet
          - okCoin
          - bittrex
          - kuCoin
          - etoro
          - cexIo
          - binanceInternational
          - bitstamp
          - gateIo
          - acorns
          - okx
          - bitFlyer
          - coinlist
          - huobi
          - bitfinex
          - deFiWallet
          - krakenDirect
          - vanguard
          - binanceInternationalDirect
          - bitfinexDirect
          - bybit
          - paxos
          - coinbasePrime
          allOf:
          - $ref: '#/components/schemas/BrokerType'
          description: 'Type of the institution to connect


            ### Supported integrations:

            ```Robinhood```

            ```ETrade```

            ```Alpaca```

            ```WeBull```

            ```Stash```

            ```InteractiveBrokers```

            ```Public```

            ```Coinbase```

            ```Kraken```

            ```CoinbasePro```

            ```CryptoCom```

            ```Binance```

            ```Gemini```

            ```OkCoin```

            ```KuCoin```

            ```Etoro```

            ```CexIo```

            ```BinanceInternational```

            ```Bitstamp```

            ```GateIo```

            ```Acorns```

            ```Okx```

            ```BitFlyer```

            ```Coinlist```

            ```Huobi```

            ```Bitfinex```

            ```KrakenDirect```

            ```Vanguard```

            ```BinanceInternationalDirect```

            ```BitfinexDirect```

            ```Bybit```

            ```Paxos```

            ```CoinbasePrime```

            '
      additionalProperties: false
    B2BFiatPortfolioModel:
      type: object
      properties:
        fiatBalances:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/PortfolioFiatBalance'
          description: List of aggregated fiat balances
      additionalProperties: false
    ApiResultStatus:
      enum:
      - ok
      - serverFailure
      - permissionDenied
      - badRequest
      - notFound
      - conflict
      - tooManyRequest
      - locked
      type: string
    ApiResult:
      type: object
      properties:
        status:
          enum:
          - ok
          - serverFailure
          - permissionDenied
          - badRequest
          - notFound
          - conflict
          - tooManyRequest
          - locked
          allOf:
          - $ref: '#/components/schemas/ApiResultStatus'
          readOnly: true
        message:
          type:
          - string
          - 'null'
          description: A message generated by the API
        displayMessage:
          type:
          - string
          - 'null'
          description: User-friendly display message that can be presented to the end user
        errorType:
          type:
          - string
          - 'null'
          description: 'Strictly-typed error type that is explaining the reason of an unsuccessful status of the operation.

            All possible error types are available in the documentation.'
        errorData:
          readOnly: true
      additionalProperties: false
    B2BBrokerAccountBalance:
      type: object
      properties:
        cash:
          type:
          - number
          - 'null'
          description: Withdrawable cash amount on the account.
          format: double
        buyingPower:
          type:
          - number
          - 'null'
          description: Buying power indicating the maximum amount the user can spend to buy assets. E.g. available margin.
          format: double
        cryptocurrencyBuyingPower:
          type:
          - number
          - 'null'
          description: Buying power available for placing cryptocurrency orders.
          format: double
        currencyCode:
          type:
          - string
          - 'null'
          description: ISO 4217 currency code.
      additionalProperties: false
    PortfolioFiatBalance:
      type: object
      properties:
        symbol:
          type:
          - string
          - 'null'
          description: Balance currency
        cash:
          type:
          - number
          - 'null'
          description: Amount of money in a specific currency from all brokers
          format: double
        buyingPower:
          type:
          - number
          - 'null'
          description: 'BuyingPower from all brokers, it indicates total amount of money the user can spend on buying stock.

            Always includes cash and can also include margin'
          format: double
      additionalProperties: false
    B2BBrokerAccountBalanceModelApiResult:
      type: object
      properties:
        status:
          enum:
          - ok
          - serverFailure
          - permissionDenied
          - badRequest
          - notFound
          - conflict
          - tooManyRequest
          - locked
          allOf:
          - $ref: '#/components/schemas/ApiResultStatus'
          readOnly: true
        message:
          type:
          - string
          - 'null'
          description: A message generated by the API
        displayMessage:
          type:
          - string
          - 'null'
          description: User-friendly display message that can be presented to the end user
        errorType:
          type:
          - string
          - 'null'
          description: 'Strictly-typed error type that is explaining the reason of an unsuccessful status of the operation.

            All possible error types are available in the documentation.'
        errorData:
          readOnly: true
        content:
          allOf:
          - $ref: '#/components/schemas/B2BBrokerAccountBalanceModel'
      additionalProperties: false
    B2BFiatPortfolioModelApiResult:
      type: object
      properties:
        status:
          enum:
          - ok
          - serverFailure
          - permissionDenied
          - badRequest
          - notFound
          - conflict
          - tooManyRequest
          - locked
          allOf:
          - $ref: '#/components/schemas/ApiResultStatus'
          readOnly: true
        message:
          type:
          - string
          - 'null'
          description: A message generated by the API
        displayMessage:
          type:
          - string
          - 'null'
          description: User-friendly display message that can be presented to the end user
        errorType:
          type:
          - string
          - 'null'
          description: 'Strictly-typed error type that is explaining the reason of an unsuccessful status of the operation.

            All possible error types are available in the documentation.'
        errorData:
          readOnly: true
        content:
          allOf:
          - $ref: '#/components/schemas/B2BFiatPortfolioModel'
      additionalProperties: false
    BrokerType:
      enum:
      - robinhood
      - eTrade
      - alpaca
      - tdAmeritrade
      - weBull
      - stash
      - interactiveBrokers
      - public
      - coinbase
      - kraken
      - coinbasePro
      - cryptoCom
      - openSea
      - binanceUs
      - gemini
      - cryptocurrencyAddress
      - cryptocurrencyWallet
      - okCoin
      - bittrex
      - kuCoin
      - etoro
      - cexIo
      - binanceInternational
      - bitstamp
      - gateIo
      - acorns
      - okx
      - bitFlyer
      - coinlist
      - huobi
      - bitfinex
      - deFiWallet
      - krakenDirect
      - vanguard
      - binanceInternationalDirect
      - bitfinexDirect
      - bybit
      - paxos
      - coinbasePrime
      type: string
    BalanceBrokerBaseRequest_2:
      required:
      - authToken
      - type
      type: object
      properties:
        authToken:
          minLength: 1
          type: string
          description: Auth token that allows connecting to the target institution
        type:
          enum:
          - robinhood
          - eTrade
          - alpaca
          - tdAmeritrade
          - weBull
          - stash
          - interactiveBrokers
          - public
          - coinbase
          - kraken
          - coinbasePro
          - cryptoCom
          - openSea
          - binanceUs
          - gemini
          - cryptocurrencyAddress
          - cryptocurrencyWallet
          - okCoin
          - bittrex
          - kuCoin
          - etoro
          - cexIo
          - binanceInternational
          - bitstamp
          - gateIo
          - acorns
          - okx
          - bitFlyer
          - coinlist
          - huobi
          - bitfinex
          - deFiWallet
          - krakenDirect
          - vanguard
          - binanceInternationalDirect
          - bitfinexDirect
          - bybit
          - paxos
          - coinbasePrime
          - btcTurkDirect
          - kuCoinDirect
          - okxOAuth
          - paribuDirect
          - robinhoodConnect
          - blockchainCom
          - bitsoDirect
          - binanceConnect
          - binanceOAuth
          - revolutConnect
          - binancePay
          - bybitDirect
          - paribuOAuth
          - payPalConnect
          - binanceTrDirect
          - coinbaseRamp
          - bybitDirectMobile
          - sandbox
          - cryptoComPay
          - bybitEuDirect
          - uphold
          - binancePayOnchain
          - sandboxCoinbase
          - bybitPay
          - krakenOAuth
          - bluvoKrakenOAuth
          - cashApp
          - sandboxKrakenOAuth
          - krakPay
          - unlimit
          - alchemyPay
          - okxPay
          - bybitPayPsp
          allOf:
          - $ref: '#/components/schemas/BrokerType_2'
          description: 'Type of the institution to connect


            ### Supported integrations:

            ```Robinhood```

            ```Coinbase```

            ```Kraken```

            ```CryptoCom```

            ```Binance```

            ```Gemini```

            ```OkCoin```

            ```KuCoin```

            ```CexIo```

            ```BinanceInternational```

            ```Bitstamp```

            ```GateIo```

            ```Okx```

            ```BitFlyer```

            ```Coinlist```

            ```Huobi```

            ```Bitfinex```

            ```KrakenDirect```

            ```BinanceInternationalDirect```

            ```BitfinexDirect```

            ```Bybit```

            ```Paxos```

            ```CoinbasePrime```

            ```BtcTurkDirect```

            ```KuCoinDirect```

            ```OkxOAuth```

            ```ParibuDirect```

            ```RobinhoodConnect```

            ```BlockchainCom```

            ```BitsoDirect```

            ```BybitDirect```

            ```ParibuOAuth```

            ```BinanceTrDirect```

            ```BybitDirectMobile```

            ```Sandbox```

            ```Uphold```

            ```SandboxCoinbase```

            ```KrakenOAuth```

            ```BluvoKrakenOAuth```

            ```SandboxKrakenOAuth```

            '
      additionalProperties: false
    ApiResultStatus_2:
      enum:
      - ok
      - serverFailure
      - permissionDenied
      - badRequest
      - notFound
      - conflict
      - tooManyRequest
      - locked
      - unavailableForLegalReasons
      type: string
    ApiResult_2:
      type: object
      properties:
        status:
          enum:
          - ok
          - serverFailure
          - permissionDenied
          - badRequest
          - notFound
          - conflict
          - tooManyRequest
          - locked
          - unavailableForLegalReasons
          allOf:
          - $ref: '#/components/schemas/ApiResultStatus_2'
          readOnly: true
        message:
          type:
          - string
          - 'null'
          description: A message generated by the API
        displayMessage:
          type:
          - string
          - 'null'
          description: User-friendly display message that can be presented to the end user
        errorHash:
          type:
          - string
          - 'null'
          description: An error grouping hash from string components and caller information. Used by bugsnag on FE for correct error grouping
          readOnly: true
        teamCode:
          type:
          - string
          - 'null'
          description: 'Opaque team code for error routing. Resolved from exception origin or caller file path via CODEOWNERS.

            Format: 2-character code (e.g., "7K", "M2"). Use for alerting/routing, not display.'
          readOnly: true
        errorType:
          type:
          - string
          - 'null'
          description: 'Strictly-typed error type that is explaining the reason of an unsuccessful status of the operation.

            All possible error types are available in the documentation.'
        errorData:
          readOnly: true
      additionalProperties: false
    B2BBrokerAccountBalanceModelApiResult_2:
      type: object
      properties:
        status:
          enum:
          - ok
          - serverFailure
          - permissionDenied
          - badRequest
          - notFound
          - conflict
          - tooManyRequest
          - locked
          - unavailableForLegalReasons
          allOf:
          - $ref: '#/components/schemas/ApiResultStatus_2'
          readOnly: true
        message:
          type:
          - string
          - 'null'
          description: A message generated by the API
        displayMessage:
          type:
          - string
          - 'null'
          description: User-friendly display message that can be presented to the end user
        errorHash:
          type:
          - string
          - 'null'
          description: An error grouping hash from string components and caller information. Used by bugsnag on FE for correct error grouping
          readOnly: true
        teamCode:
          type:
          - string
          - 'null'
          description: 'Opaque team code for error routing. Resolved from exception origin or caller file path via CODEOWNERS.

            Format: 2-character code (e.g., "7K", "M2"). Use for alerting/routing, not display.'
          readOnly: true
        errorType:
          type:
          - string
          - 'null'
          description: 'Strictly-typed error type that is explaining the reason of an unsuccessful status of the operation.

            All possible error types are available in the documentation.'
        errorData:
          readOnly: true
        content:
          allOf:
          - $ref: '#/components/schemas/B2BBrokerAccountBalanceModel'
      additionalProperties: false
    B2BFiatPortfolioModelApiResult_2:
      type: object
      properties:
        status:
          enum:
          - ok
          - serverFailure
          - permissionDenied
          - badRequest
          - notFound
          - conflict
          - tooManyRequest
          - locked
          - unavailableForLegalReasons
          allOf:
          - $ref: '#/components/schemas/ApiResultStatus_2'
          readOnly: true
        message:
          type:
          - string
          - 'null'
          description: A message generated by the API
        displayMessage:
          type:
          - string
          - 'null'
          description: User-friendly display message that can be presented to the end user
        errorHash:
          type:
          - string
          - 'null'
          description: An error grouping hash from string components and caller information. Used by bugsnag on FE for correct error grouping
          readOnly: true
        teamCode:
          type:
          - string
          - 'null'
          description: 'Opaque team code for error routing. Resolved from exception origin or caller file path via CODEOWNERS.

            Format: 2-character code (e.g., "7K", "M2"). Use for alerting/routing, not display.'
          readOnly: true
        errorType:
          type:
          - string
          - 'null'
          description: 'Strictly-typed error type that is explaining the reason of an unsuccessful status of the operation.

            All possible error types are available in the documentation.'
        errorData:
          readOnly: true
        content:
          allOf:
          - $ref: '#/components/schemas/B2BFiatPortfolioModel'
      additionalProperties: false
    BrokerType_2:
      enum:
      - robinhood
      - eTrade
      - alpaca
      - tdAmeritrade
      - weBull
      - stash
      - interactiveBrokers
      - public
      - coinbase
      - kraken
      - coinbasePro
      - cryptoCom
      - openSea
      - binanceUs
      - gemini
      - cryptocurrencyAddress
      - cryptocurrencyWallet
      - okCoin
      - bittrex
      - kuCoin
      - etoro
      - cexIo
      - binanceInternational
      - bitstamp
      - gateIo
      - acorns
      - okx
      - bitFlyer
      - coinlist
      - huobi
      - bitfinex
      - deFiWallet
      - krakenDirect
      - vanguard
      - binanceInternationalDirect
      - bitfinexDirect
      - bybit
      - paxos
      - coinbasePrime
      - btcTurkDirect
      - kuCoinDirect
      - okxOAuth
      - paribuDirect
      - robinhoodConnect
      - blockchainCom
      - bitsoDirect
      - binanceConnect
      - binanceOAuth
      - revolutConnect
      - binancePay
      - bybitDirect
      - paribuOAuth
      - payPalConnect
      - binanceTrDirect
      - coinbaseRamp
      - bybitDirectMobile
      - sandbox
      - cryptoComPay
      - bybitEuDirect
      - uphold
      - binancePayOnchain
      - sandboxCoinbase
      - bybitPay
      - krakenOAuth
      - bluvoKrakenOAuth
      - cashApp
      - sandboxKrakenOAuth
      - krakPay
      - unlimit
      - alchemyPay
      - okxPay
      - bybitPayPsp
      type: string
  securitySchemes:
    Client-Secret:
      type: apiKey
      description: Contact Mesh to get client Secret
      name: X-Client-Secret
      in: header
    Client-Id:
      type: apiKey
      description: Contact Mesh to get client Id
      name: X-Client-Id
      in: header
x-refined-from:
- mesh-integration-api-openapi.json
- mesh-openapi.json