MX

MX investment holdings API

Investment Data Enhancement lets you connect to an end user's financial institution and retrieve cleansed and enhanced investment data. By combining investment data with retail banking information, you get comprehensive insights into customer financial behaviors, risk tolerance, and investment strategies. You can [read a user's holding](docs.mx.com/api-reference/platform-api/reference/read-holding), [list all their holdings](docs.mx.com/api-reference/platform-api/reference/list-holdings), or list their holdings by [account](docs.mx.com/api-reference/platform-api/reference/list-holdings-by-account) or [member](docs.mx.com/api-reference/platform-api/reference/list-holdings-by-member). You can also [deactivate a user](docs.mx.com/api-reference/platform-api/reference/deactivate-user) from the Investment Data Enhancement. This is non-billable.

Operations 5

GET /users/{user_guid}/members/{member_guid}/investment_holdings List holdings by member #
GET /users/{user_guid}/investment_holdings List holdings by user #
GET /users/{user_guid}/investment_holdings/{holding_guid} Read holding #
GET /users/{user_guid}/accounts/{account_guid}/investment_holdings List holdings by account #
GET /users/{user_guid}/investment_holdings_deactivate Deactivate user from Investment Holdings #

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/mx-investment-holdings-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 email required.

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

OpenAPI Specification

mx-investment-holdings-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    name: MX Platform API
    url: https://www.mx.com/products/platform-api
  description: 'The MX Platform API is a powerful, fully-featured API designed to make aggregating and enhancing financial data easy and reliable. It can seamlessly connect your app or website to tens of thousands of financial institutions.


    ## What''s Changed?


    Several endpoints, headers, and fields changed in `v20250224`. For more on breaking changes, refer to our [versioning](/api-reference/platform-api/overview/versioning#v20250224) and [migration](/api-reference/platform-api/overview/migration) guides.


    ## Version Header

    Versions are set in the `Accept-Version` header of API requests. Version numbers correspond with the date associated with that version.  The example below uses the version `v20250224`.


    ```

    -H ''Accept: application/json''

    -H ''Accept-Version: v20250224''

    ```


    ---

    '
  title: MX Platform investment holdings API
  version: '20250224'
servers:
- url: https://int-api.mx.com
- url: https://api.mx.com
security:
- basicAuth: []
tags:
- name: investment holdings
  description: 'Investment Data Enhancement lets you connect to an end user''s financial institution and retrieve cleansed and enhanced investment data. By combining investment data with retail banking information, you get comprehensive insights into customer financial behaviors, risk tolerance, and investment strategies.


    You can [read a user''s holding](docs.mx.com/api-reference/platform-api/reference/read-holding), [list all their holdings](docs.mx.com/api-reference/platform-api/reference/list-holdings), or list their holdings by [account](docs.mx.com/api-reference/platform-api/reference/list-holdings-by-account) or [member](docs.mx.com/api-reference/platform-api/reference/list-holdings-by-member).


    You can also [deactivate a user](docs.mx.com/api-reference/platform-api/reference/deactivate-user) from the Investment Data Enhancement. This is non-billable.

    '
paths:
  /users/{user_guid}/members/{member_guid}/investment_holdings:
    get:
      description: This endpoint lists all holdings associated with the specified member.
      operationId: listHoldingsByMember
      parameters:
      - $ref: '#/components/parameters/acceptVersion'
      - $ref: '#/components/parameters/memberGuid'
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/recordsPerPageMax1000'
      - $ref: '#/components/parameters/userGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvestmentHoldingsResponseBody'
          description: OK
      summary: List holdings by member
      tags:
      - investment holdings
  /users/{user_guid}/investment_holdings:
    get:
      description: This endpoint lists all holdings associated with the user across all accounts.
      operationId: listHoldings
      parameters:
      - $ref: '#/components/parameters/acceptVersion'
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/recordsPerPageMax1000'
      - $ref: '#/components/parameters/userGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvestmentHoldingsResponseBody'
          description: OK
      summary: List holdings by user
      tags:
      - investment holdings
  /users/{user_guid}/investment_holdings/{holding_guid}:
    get:
      description: Use this endpoint to read the attributes of a specific `holding`.
      operationId: readHolding
      parameters:
      - $ref: '#/components/parameters/acceptVersion'
      - $ref: '#/components/parameters/holdingGuid'
      - $ref: '#/components/parameters/userGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvestmentHoldingResponseBody'
          description: OK
      summary: Read holding
      tags:
      - investment holdings
  /users/{user_guid}/accounts/{account_guid}/investment_holdings:
    get:
      description: This endpoint lists all holdings associated with the particular account defined.
      operationId: listHoldingsByAccount
      parameters:
      - $ref: '#/components/parameters/acceptVersion'
      - $ref: '#/components/parameters/accountGuid'
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/recordsPerPageMax1000'
      - $ref: '#/components/parameters/userGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvestmentHoldingsResponseBody'
          description: OK
      summary: List holdings by account
      tags:
      - investment holdings
  /users/{user_guid}/investment_holdings_deactivate:
    get:
      description: This endpoint deactivates the specific user from the `/investment_holdings` product. To reactivate a user, use any of the current `/investment_holding` endpoints.
      operationId: deactivateUser
      parameters:
      - $ref: '#/components/parameters/acceptVersion'
      - $ref: '#/components/parameters/userGuid'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvestmentHoldingsDeactivation'
          description: OK
      summary: Deactivate user from Investment Holdings
      tags:
      - investment holdings
components:
  parameters:
    memberGuid:
      description: The unique id for a `member`.
      example: MBR-7c6f361b-e582-15b6-60c0-358f12466b4b
      in: path
      name: member_guid
      required: true
      schema:
        type: string
    accountGuid:
      description: The unique id for an `account`.
      example: ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1
      in: path
      name: account_guid
      required: true
      schema:
        type: string
    userGuid:
      description: The unique identifier for a `user`, beginning with the prefix `USR-`.
      example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
      in: path
      name: user_guid
      required: true
      schema:
        type: string
    acceptVersion:
      name: Accept-Version
      in: header
      required: true
      schema:
        type: string
        default: v20250224
        example: v20250224
      description: MX Platform API version.
    page:
      description: Results are paginated. Specify current page.
      example: 1
      in: query
      name: page
      schema:
        type: integer
    recordsPerPageMax1000:
      description: This specifies the number of records to be returned on each page. Defaults to `25`. The valid range is from `10` to `1000`. If the value exceeds `1000`, the default value of `25` will be used instead.
      example: 10
      in: query
      name: records_per_page
      schema:
        type: integer
    holdingGuid:
      description: The unique id for a `holding`.
      example: HOL-d65683e8-9eab-26bb-bcfd-ced159c9abe2
      in: path
      name: holding_guid
      required: true
      schema:
        type: string
  schemas:
    InvestmentHoldingsResponseBody:
      properties:
        investment_holdings:
          items:
            $ref: '#/components/schemas/InvestmentHoldingResponse'
          type: array
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
      type: object
    PaginationResponse:
      properties:
        current_page:
          description: The page delivered by the current response.
          example: 1
          type: integer
        per_page:
          description: The number of records delivered with each page.
          example: 25
          type: integer
        total_entries:
          description: The total number of records available.
          example: 1
          type: integer
        total_pages:
          description: The total number of pages available.
          example: 1
          type: integer
      type: object
    InvestmentHoldingResponse:
      properties:
        account_guid:
          description: The unique identifier for an account. Defined by MX.
          example: ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1
          type: string
        cost_basis:
          description: The original value of an asset for tax purposes, usually the purchase price, used to calculate capital gains or losses. Accumulated price.
          example: 827
          type:
          - number
          - 'null'
        coupon_yield:
          description: The rate of return the bonds coupon rate generates.
          example: null
          type:
          - string
          - 'null'
        currency_code:
          description: The three-character ISO 4217 currency code, for example, `USD`.
          example: USD
          type:
          - string
          - 'null'
        current_price:
          description: The present market price of a single unit of the holding (for example, stock price per share).
          example: 15
          type:
          - number
          - 'null'
        daily_change:
          description: The daily change in the `current_price` of the holding since the previous trading day.
          example: 2.5
          type:
          - number
          - 'null'
        description:
          description: A brief description of the holding, such as the company name for stocks or the bond type for bonds.
          example: Guggenheim Defensive Equity ETF
          type:
          - string
          - 'null'
        expiration:
          description: The expiration date associated with the holding.
          example: null
          type:
          - string
          - 'null'
        face_value:
          description: The nominal value of a bond or fixed-income security, paid to the holder at maturity.
          example: 1000
          type:
          - number
          - 'null'
        frequency:
          description: The frequency of the interest paid on the bond (i.e. Annually, Monthly, etc.)
          example: ANNUALLY
          type:
          - string
          - 'null'
        guid:
          description: The unique identifier for the holding. Defined by MX.
          example: HOL-d65683e8-9eab-26bb-bcfd-ced159c9abe2
          type:
          - string
          - 'null'
        market_value:
          description: The current market value of the holding, calculated as the current price times the number of units (shares) owned.
          example: 989.5
          type:
          - number
          - 'null'
        maturity_date:
          description: The maturity date associated with the holding.
          example: null
          type:
          - string
          - 'null'
        percentage_change:
          description: The percent change in the `current_price` of the holding compared to a previous time period. It is the percentage change that reflects the `daily_change`.
          example: 0.2
          type:
          - number
          - 'null'
        purchase_price:
          description: The average price paid for the holding.
          example: 26.3
          type:
          - number
          - 'null'
        quantity:
          description: The number of units of the holding owned (for example, number of shares of stock).
          example: '5000.0'
          type:
          - string
          - 'null'
        rate:
          description: The interest on the bond, subject to determining the payout amount of the bond.
          example: null
          type:
          - number
          - 'null'
        strike_price:
          description: The strike price associated to the option.
          example: null
          type:
          - number
          - 'null'
        symbol:
          description: The ticker symbol or unique identifier of the holding, used in stock exchanges.
          example: DEF
          type:
          - string
          - 'null'
        term:
          description: The length of time until the bond's principal amount is due to be repaid. It is the period from when the bond is issued until it reaches its maturity date.
          example: null
          type:
          - string
          - 'null'
        today_ugl_amount:
          description: The unrealized gain/loss amount for today.
          example: 200
          type:
          - number
          - 'null'
        today_ugl_percentage:
          description: The unrealized gain/loss percentage for today.
          example: 0.27
          type:
          - number
          - 'null'
        total_ugl_amount:
          description: The total unrealized gain/loss amount for an investment.
          example: 20000
          type:
          - number
          - 'null'
        total_ugl_percentage:
          description: The total unrealized gain/loss for the holding since it was acquired.
          example: 26.67
          type:
          - number
          - 'null'
        unvested_quantity:
          description: The number of units (for example, shares) of the holding that are not yet vested or owned outright by the holder.
          example: null
          type:
          - number
          - 'null'
        unvested_value:
          description: The value of the portion of the holding that is unvested.
          example: null
          type:
          - number
          - 'null'
        user_guid:
          description: The unique identifier for the user. Defined by MX.
          example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
          type:
          - string
          - 'null'
        vested_quantity:
          description: The number of units (for example, shares) of the holding that are vested and fully owned by the holder.
          example: null
          type:
          - number
          - 'null'
        vested_value:
          description: The value of the portion of the holding that is vested and fully owned by the holder.
          example: null
          type:
          - number
          - 'null'
        created_at:
          description: The date and time the investment holding was created, represented in ISO 8601 format with a timestamp.
          example: '2025-02-13T18:08:00+00:00'
          type:
          - string
          - 'null'
        current_price_as_of:
          description: The date and time when the current price was last updated, represented in ISO 8601 format with a timestamp.
          example: '2023-11-06T00:00:00Z'
          type:
          - string
          - 'null'
        issue_date:
          description: The date on which a security was issued or made available for sale.
          example: '2015-08-15'
          type:
          - string
          - 'null'
        vesting_start_date:
          description: The date from which the vesting schedule for a holding begins.
          example: null
          type:
          - string
          - 'null'
        vesting_end_date:
          description: The date from which the vesting schedule for a holding ends.
          example: null
          type:
          - string
          - 'null'
        put_or_call:
          description: States whether the option is a `PUT` or `CALL`.
          example: null
          type:
          - string
          - 'null'
        holding_type:
          description: The type of investment (e.g., equity, fixed income, mutual fund, etc.)
          example: MUTUAL_FUND
          type:
          - string
          - 'null'
        term_unit:
          description: The unit type of the term associated to the bond. (Year, Month, etc.)
          example: null
          type:
          - string
          - 'null'
      type: object
    InvestmentHoldingsDeactivation:
      properties:
        message:
          example: Successfully deactivated user from billing
        status:
          example: 200
    InvestmentHoldingResponseBody:
      properties:
        investment_holding:
          $ref: '#/components/schemas/InvestmentHoldingResponse'
      type: object
  securitySchemes:
    basicAuth:
      scheme: basic
      type: http
      description: 'The MX Platform API requires basic access authentication using your `client_id` and `api_key`. These credentials must be Base64 encoded and included in the Authorization header of each API request to ensure secure access.


        Here''s an example using curl to access `v20250224`. Replace `https://int-api.mx.com/endpoint` with the actual API endpoint you wish to access and your Base64 encoded `client_id` and `api_key`.


        ```

        curl -L -X POST `https://int-api.mx.com/endpoint'' \

        -H ''Content-Type: application/json'' \

        -H ''Accept: application/json'' \

        -H ''Accept-Version: v20250224''

        -H ''Authorization: Basic BASE_64_ENCODING_OF{client_id:api_key}''

        ```

        '
    bearerAuth:
      type: http
      scheme: bearer