MX Platform Users API

The Users API from MX Platform — 84 operation(s) for users.

Operations 133

GET /users List users #
POST /users Create user #
DELETE /users/{user_guid} Delete user #
GET /users/{user_guid} Read user #
PUT /users/{user_guid} Update user #
GET /users/{user_guid}/accounts List accounts #
POST /users/{user_guid}/accounts Create manual account #
DELETE /users/{user_guid}/accounts/{account_guid} Delete manual account #
GET /users/{user_guid}/accounts/{account_guid} Read account #
GET /users/{user_guid}/accounts/{account_guid}/account_numbers List account numbers by account #
GET /users/{user_guid}/accounts/{account_guid}/holdings List holdings by account #
GET /users/{user_guid}/accounts/{account_guid}/insights List insights by account #
POST /users/{user_guid}/accounts/{account_guid}/transactions Create manual transaction
GET /users/{user_guid}/accounts/{account_guid}/transactions List transactions by account #
POST /users/{user_guid}/budgets/generate Auto-generate budgets
POST /users/{user_guid}/budgets Create a budget
GET /users/{user_guid}/budgets List all budgets
GET /users/{user_guid}/budgets/{budget_guid} Read a specific budget
PUT /users/{user_guid}/budgets/{budget_guid} Update a specific budget
DELETE /users/{user_guid}/budgets/{budget_guid} Delete a budget
GET /users/{user_guid}/categories List categories #
POST /users/{user_guid}/categories Create category #
GET /users/{user_guid}/categories/default List default categories by user #
DELETE /users/{user_guid}/categories/{category_guid} Delete category #
GET /users/{user_guid}/categories/{category_guid} Read a custom category #
PUT /users/{user_guid}/categories/{category_guid} Update category #
POST /users/{user_guid}/connect_widget_url Request connect widget url #
POST /users/{user_guid}/goals Create a goal
GET /users/{user_guid}/goals List goals
DELETE /users/{user_guid}/goals/{goal_guid} Delete a goal
GET /users/{user_guid}/goals/{goal_guid} Read a goal
PUT /users/{user_guid}/goals/{goal_guid} Update a goal
PUT /users/{user_guid}/goals/reposition Reposition goals
GET /users/{user_guid}/holdings List holdings #
GET /users/{user_guid}/holdings/{holding_guid} Read holding #
GET /users/{user_guid}/insights List all insights for a user. #
GET /users/{user_guid}/insights/{insight_guid}/categories List all categories associated with an insight. #
GET /users/{user_guid}/insights/{insight_guid}/accounts List all accounts associated with an insight. #
GET /users/{user_guid}/insights/{insight_guid}/merchants List all merchants associated with an insight. #
GET /users/{user_guid}/insights/{insight_guid}/scheduled_payments List all scheduled payments associated with an insight #
GET /users/{user_guid}/insights/{insight_guid}/transactions List all transactions associated with an insight. #
GET /users/{user_guid}/insights{insight_guid} Read a specific insight. #
PUT /users/{user_guid}/insights{insight_guid} Update insight #
GET /users/{user_guid}/managed_members List managed members #
POST /users/{user_guid}/managed_members Create managed member #
DELETE /users/{user_guid}/managed_members/{member_guid} Delete managed member #
GET /users/{user_guid}/managed_members/{member_guid} Read managed member #
PUT /users/{user_guid}/managed_members/{member_guid} Update managed member #
GET /users/{user_guid}/managed_members/{member_guid}/accounts List managed accounts #
POST /users/{user_guid}/managed_members/{member_guid}/accounts Create managed account #
DELETE /users/{user_guid}/managed_members/{member_guid}/accounts/{account_guid} Delete managed account #
GET /users/{user_guid}/managed_members/{member_guid}/accounts/{account_guid} Read managed account #
PUT /users/{user_guid}/managed_members/{member_guid}/accounts/{account_guid} Update managed account #
GET /users/{user_guid}/managed_members/{member_guid}/accounts/{account_guid}/transactions List managed transactions #
POST /users/{user_guid}/managed_members/{member_guid}/accounts/{account_guid}/transactions Create managed transaction #
DELETE /users/{user_guid}/managed_members/{member_guid}/accounts/{account_guid}/transactions/{transaction_guid} Delete managed transaction #
GET /users/{user_guid}/managed_members/{member_guid}/accounts/{account_guid}/transactions/{transaction_guid} Read managed transaction #
PUT /users/{user_guid}/managed_members/{member_guid}/accounts/{account_guid}/transactions/{transaction_guid} Update managed transaction #
GET /users/{user_guid}/members List members #
POST /users/{user_guid}/members Create member #
DELETE /users/{user_guid}/members/{member_guid} Delete member #
GET /users/{user_guid}/members/{member_guid} Read member #
PUT /users/{user_guid}/members/{member_guid} Update member #
GET /users/{user_guid}/members/{member_guid}/account_numbers List account numbers by member #
GET /users/{user_guid}/members/{member_guid}/account_owners List account owners by member #
GET /users/{user_guid}/members/{member_guid}/accounts List accounts by member #
GET /users/{user_guid}/members/{member_guid}/accounts/{account_guid} Read account by member #
PUT /users/{user_guid}/members/{member_guid}/accounts/{account_guid} Update account by member #
POST /users/{user_guid}/members/{member_guid}/aggregate Aggregate member #
GET /users/{user_guid}/members/{member_guid}/challenges List member challenges #
POST /users/{user_guid}/members/{member_guid}/check_balance Check balances #
GET /users/{user_guid}/members/{member_guid}/credentials List member credentials #
POST /users/{user_guid}/members/{member_guid}/extend_history Extend history #
POST /users/{user_guid}/members/{member_guid}/fetch_rewards Fetch Rewards #
POST /users/{user_guid}/members/{member_guid}/fetch_statements Fetch statements #
POST /users/{user_guid}/members/{member_guid}/fetch_tax_documents Fetch Tax Documents #
GET /users/{user_guid}/members/{member_guid}/holdings List holdings by member #
POST /users/{user_guid}/members/{member_guid}/identify Identify member #
GET /users/{user_guid}/members/{member_guid}/oauth_window_uri Request oauth window uri #
PUT /users/{user_guid}/members/{member_guid}/resume Resume aggregation #
GET /users/{user_guid}/members/{member_guid}/rewards List Rewards #
GET /users/{user_guid}/members/{member_guid}/rewards/{reward_guid} Read Reward #
GET /users/{user_guid}/members/{member_guid}/statements List statements by member #
GET /users/{user_guid}/members/{member_guid}/statements/{statement_guid} Read statement by member #
GET /users/{user_guid}/members/{member_guid}/statements/{statement_guid}.pdf Download statement pdf #
GET /users/{user_guid}/members/{member_guid}/status Read member status #
GET /users/{user_guid}/members/{member_guid}/tax_documents List Tax Documents #
GET /users/{user_guid}/members/{member_guid}/tax_documents/{tax_document_guid} Read a Tax Document #
GET /users/{user_guid}/members/{member_guid}/tax_documents/{tax_document_guid}.pdf Download a Tax Document PDF #
GET /users/{user_guid}/members/{member_guid}/transactions List transactions by member #
POST /users/{user_guid}/members/{member_guid}/verify Verify member #
GET /users/{user_guid}/micro_deposits List all microdeposits for a user
POST /users/{user_guid}/micro_deposits Create a microdeposit
DELETE /users/{user_guid}/micro_deposits/{micro_deposit_guid} Delete a microdeposit
GET /users/{user_guid}/micro_deposits/{micro_deposit_guid} Read a microdeposit for a user
GET /users/{user_guid}/monthly_cash_flow_profile Read monthly cash flow profile
PUT /users/{user_guid}/monthly_cash_flow_profile Update monthly cash flow profile
POST /users/{user_guid}/spending_plans/{spending_plan_guid}/iterations/current/iteration_items Create spending plan iteration item #
GET /users/{user_guid}/spending_plans/{spending_plan_guid}/iterations/current/iteration_items List spending plan iteration items #
POST /users/{user_guid}/spending_plans Create spending plan #
GET /users/{user_guid}/spending_plans List spending plans #
DELETE /users/{user_guid}/spending_plans/{spending_plan_guid}/spending_plan_accounts/{spending_plan_account_guid} Delete spending plan account #
GET /users/{user_guid}/spending_plans/{spending_plan_guid}/spending_plan_accounts/{spending_plan_account_guid} Read spending plan account #
DELETE /users/{user_guid}/spending_plans/{spending_plan_guid}/iterations/current/iteration_items/{iteration_item_guid} Delete spending plan iteration item #
GET /users/{user_guid}/spending_plans/{spending_plan_guid}/iterations/current/iteration_items/{iteration_item_guid} Read a spending plan iteration item #
PUT /users/{user_guid}/spending_plans/{spending_plan_guid}/iterations/current/iteration_items/{iteration_item_guid} Update a spending plan iteration item #
DELETE /users/{user_guid}/spending_plans/{spending_plan_guid} Delete spending plan #
GET /users/{user_guid}/spending_plans/{spending_plan_guid} Read a spending plan for a user #
GET /users/{user_guid}/spending_plans/{spending_plan_guid}/spending_plan_accounts List spending plan accounts #
GET /users/{user_guid}/spending_plans/{spending_plan_guid}/iterations List spending plan iterations #
GET /users/{user_guid}/spending_plans/{spending_plan_guid}/iterations/{iteration_number} Read a spending plan iteration #
GET /users/{user_guid}/taggings List taggings #
POST /users/{user_guid}/taggings Create tagging #
DELETE /users/{user_guid}/taggings/{tagging_guid} Delete tagging #
GET /users/{user_guid}/taggings/{tagging_guid} Read tagging #
PUT /users/{user_guid}/taggings/{tagging_guid} Update tagging #
GET /users/{user_guid}/tags List tags #
POST /users/{user_guid}/tags Create tag #
DELETE /users/{user_guid}/tags/{tag_guid} Delete tag #
GET /users/{user_guid}/tags/{tag_guid} Read tag #
PUT /users/{user_guid}/tags/{tag_guid} Update tag #
GET /users/{user_guid}/tags/{tag_guid}/transactions List transactions by tag #
GET /users/{user_guid}/transaction_rules List transaction rules #
POST /users/{user_guid}/transaction_rules Create transaction rule #
DELETE /users/{user_guid}/transaction_rules/{transaction_rule_guid} Delete transaction rule #
GET /users/{user_guid}/transaction_rules/{transaction_rule_guid} Read transaction rule #
PUT /users/{user_guid}/transaction_rules/{transaction_rule_guid} Update transaction_rule #
GET /users/{user_guid}/transactions List transactions #
GET /users/{user_guid}/transactions/{transaction_guid} Read transaction #
PUT /users/{user_guid}/transactions/{transaction_guid} Update transaction #
DELETE /users/{user_guid}/transactions/{transaction_guid}/split Delete split transactions
POST /users/{user_guid}/transactions/{transaction_guid}/split Create split transactions
POST /users/{user_guid}/widget_urls Request widget url #

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-platform-users-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

mx-platform-users-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.'
  title: MX Platform Users API
  version: 0.1.0
servers:
- url: https://api.mx.com
- url: https://int-api.mx.com
security:
- basicAuth: []
tags:
- name: Users
paths:
  /users:
    get:
      description: Use this endpoint to list every user you've created in the MX Platform API.
      operationId: listUsers
      parameters:
      - description: Specify current page.
        example: 1
        in: query
        name: page
        schema:
          type: integer
      - description: Specify records per page.
        example: 10
        in: query
        name: records_per_page
        schema:
          type: integer
      - description: The user `id` to search for.
        example: u-12324-abdc
        in: query
        name: id
        schema:
          type: string
      - description: The user `email` to search for.
        example: example@example.com
        in: query
        name: email
        schema:
          type: string
      - description: Search for users that are diabled.
        example: true
        in: query
        name: is_disabled
        schema:
          type: boolean
      responses:
        '200':
          content:
            application/vnd.mx.api.v1+json:
              schema:
                $ref: '#/components/schemas/UsersResponseBody'
          description: OK
      summary: List users
      tags:
      - Users
    post:
      description: Use this endpoint to create a new user. The API will respond with the newly-created user object if successful. Disabling a user means that accounts and transactions associated with it will not be updated in the background by MX. It will also restrict access to that users data until they are no longer disabled.
      operationId: createUser
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserCreateRequestBody'
        description: User object to be created. (None of these parameters are required, but the user object cannot be empty)
        required: true
      responses:
        '200':
          content:
            application/vnd.mx.api.v1+json:
              schema:
                $ref: '#/components/schemas/UserResponseBody'
          description: OK
      summary: Create user
      tags:
      - Users
  /users/{user_guid}:
    delete:
      description: Use this endpoint to delete the specified `user`. The response will have a status of `204 No Content` without an object.
      operationId: deleteUser
      parameters:
      - description: The unique id for a `user`.
        example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
        in: path
        name: user_guid
        required: true
        schema:
          type: string
      responses:
        '204':
          description: No Content
      summary: Delete user
      tags:
      - Users
    get:
      description: Use this endpoint to read the attributes of a specific user.
      operationId: readUser
      parameters:
      - description: The unique id for a `user`.
        example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
        in: path
        name: user_guid
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/vnd.mx.api.v1+json:
              schema:
                $ref: '#/components/schemas/UserResponseBody'
          description: OK
      summary: Read user
      tags:
      - Users
    put:
      description: Use this endpoint to update the attributes of the specified user.
      operationId: updateUser
      parameters:
      - description: The unique id for a `user`.
        example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
        in: path
        name: user_guid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserUpdateRequestBody'
        description: User object to be updated (None of these parameters are required, but the user object cannot be empty.)
        required: true
      responses:
        '200':
          content:
            application/vnd.mx.api.v1+json:
              schema:
                $ref: '#/components/schemas/UserResponseBody'
          description: OK
      summary: Update user
      tags:
      - Users
  /users/{user_guid}/accounts:
    get:
      description: This endpoint returns a list of all the accounts associated with the specified `user`.
      operationId: listUserAccounts
      parameters:
      - description: List only accounts whose member is managed by the user.
        example: true
        in: query
        name: member_is_managed_by_user
        schema:
          type: boolean
      - description: Specify current page.
        example: 1
        in: query
        name: page
        schema:
          type: integer
      - description: List only accounts that were manually created.
        example: true
        in: query
        name: is_manual
        schema:
          type: boolean
      - description: Specify records per page.
        example: 10
        in: query
        name: records_per_page
        schema:
          type: integer
      - description: The unique id for a `user`.
        example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
        in: path
        name: user_guid
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/vnd.mx.api.v1+json:
              schema:
                $ref: '#/components/schemas/AccountsResponseBody'
          description: OK
      summary: List accounts
      tags:
      - Users
    post:
      description: This endpoint can only be used to create manual accounts. Creating a manual account will automatically create it under the Manual Institution member. Since a manual account has no credentials tied to the member, the account will never aggregate or include data from a data feed.
      operationId: createManualAccount
      parameters:
      - description: The unique id for a `user`.
        example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
        in: path
        name: user_guid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountCreateRequestBody'
        description: Manual account object to be created.
        required: true
      responses:
        '200':
          content:
            application/vnd.mx.api.v1+json:
              schema:
                $ref: '#/components/schemas/AccountResponseBody'
          description: OK
      summary: Create manual account
      tags:
      - Users
  /users/{user_guid}/accounts/{account_guid}:
    delete:
      description: This endpoint deletes accounts that were manually created. The API will respond with an empty object and a status of `204 No Content`.
      operationId: deleteManualAccount
      parameters:
      - description: The unique id for an `account`.
        example: ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1
        in: path
        name: account_guid
        required: true
        schema:
          type: string
      - description: The unique id for a `user`.
        example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
        in: path
        name: user_guid
        required: true
        schema:
          type: string
      responses:
        '204':
          description: No content.
      summary: Delete manual account
      tags:
      - Users
    get:
      description: This endpoint returns the specified `account` resource.
      operationId: readAccount
      parameters:
      - description: The unique id for an `account`.
        example: ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1
        in: path
        name: account_guid
        required: true
        schema:
          type: string
      - description: The unique id for a `user`.
        example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
        in: path
        name: user_guid
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/vnd.mx.api.v1+json:
              schema:
                $ref: '#/components/schemas/AccountResponseBody'
          description: OK
      summary: Read account
      tags:
      - Users
  /users/{user_guid}/accounts/{account_guid}/account_numbers:
    get:
      description: This endpoint returns a list of account numbers associated with the specified `account`.
      operationId: listAccountNumbersByAccount
      parameters:
      - description: The unique id for an `account`.
        example: ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1
        in: path
        name: account_guid
        required: true
        schema:
          type: string
      - description: Specify current page.
        example: 1
        in: query
        name: page
        schema:
          type: integer
      - description: Specify records per page.
        example: 10
        in: query
        name: records_per_page
        schema:
          type: integer
      - description: The unique id for a `user`.
        example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
        in: path
        name: user_guid
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/vnd.mx.api.v1+json:
              schema:
                $ref: '#/components/schemas/AccountNumbersResponseBody'
          description: OK
      summary: List account numbers by account
      tags:
      - Users
  /users/{user_guid}/accounts/{account_guid}/holdings:
    get:
      description: This endpoint returns all holdings associated with the specified `account`.
      operationId: listHoldingsByAccount
      parameters:
      - description: The unique id for the `account`.
        example: ACT-7c6f361b-e582-15b6-60c0-358f12466b4b
        in: path
        name: account_guid
        required: true
        schema:
          type: string
      - description: Filter holdings from this date.
        example: '2015-09-20'
        in: query
        name: from_date
        schema:
          type: string
      - description: Specify current page.
        example: 1
        in: query
        name: page
        schema:
          type: integer
      - description: Specify records per page.
        example: 10
        in: query
        name: records_per_page
        schema:
          type: integer
      - description: Filter holdings to this date.
        example: '2019-10-20'
        in: query
        name: to_date
        schema:
          type: string
      - description: The unique id for the `user`.
        example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
        in: path
        name: user_guid
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/vnd.mx.api.v1+json:
              schema:
                $ref: '#/components/schemas/HoldingsResponseBody'
          description: OK
      summary: List holdings by account
      tags:
      - Users
  /users/{user_guid}/accounts/{account_guid}/insights:
    get:
      description: Use this endpoint to list all insights associated with a specified account GUID.
      operationId: listInsightsByAccount
      parameters:
      - description: The unique id for the `account`.
        example: ACT-7c6f361b-e582-15b6-60c0-358f12466b4b
        in: path
        name: account_guid
        required: true
        schema:
          type: string
      - description: Specify current page.
        example: 1
        in: query
        name: page
        schema:
          type: integer
      - description: Specify records per page.
        example: 10
        in: query
        name: records_per_page
        schema:
          type: integer
      - description: The unique id for the `user`.
        example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
        in: path
        name: user_guid
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/vnd.mx.api.v1+json:
              schema:
                $ref: '#/components/schemas/InsightsResponseBody'
          description: OK
      summary: List insights by account
      tags:
      - Users
  /users/{user_guid}/accounts/{account_guid}/transactions:
    post:
      tags:
      - Users
      summary: Create manual transaction
      description: This endpoint can only be used to create manual transactions that are under a manual account. This endpoint accepts the optional MX-Skip-Webhook header and skip_webhook parameter.
      parameters:
      - name: user_guid
        description: The unique identifier for the user.
        in: path
        required: true
        schema:
          type: string
      - name: account_guid
        description: The unique identifier for the account.
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransactionCreateRequestBody'
      responses:
        '200':
          description: OK
          content:
            application/vnd.mx.api.v1+json:
              schema:
                $ref: '#/components/schemas/TransactionCreateResponseBody'
    get:
      description: This endpoint returns a list of the last 90 days of transactions associated with the specified account.
      operationId: listTransactionsByAccount
      parameters:
      - description: The unique id for an `account`.
        example: ACT-06d7f44b-caae-0f6e-1384-01f52e75dcb1
        in: path
        name: account_guid
        required: true
        schema:
          type: string
      - description: Filter transactions from this date.
        example: '2015-09-20'
        in: query
        name: from_date
        schema:
          type: string
      - description: Specify current page.
        example: 1
        in: query
        name: page
        schema:
          type: integer
      - description: Specify records per page.
        example: 10
        in: query
        name: records_per_page
        schema:
          type: integer
      - description: Filter transactions to this date.
        example: '2019-10-20'
        in: query
        name: to_date
        schema:
          type: string
      - description: The unique id for a `user`.
        example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
        in: path
        name: user_guid
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/vnd.mx.api.v1+json:
              schema:
                $ref: '#/components/schemas/TransactionsResponseBody'
          description: OK
      summary: List transactions by account
      tags:
      - Users
  /users/{user_guid}/budgets/generate:
    post:
      tags:
      - Users
      summary: Auto-generate budgets
      parameters:
      - name: user_guid
        description: The unique identifier for the user. Defined by MX.
        in: path
        required: true
        schema:
          type: string
      description: This endpoint will automatically create budgets for several categories based on existing transactions; these budgets are returned as an array. Specifically, budgets will only be generated if the `user` has at least one `transaction` in a given category during each of the two previous calendar months. For example, if the request is made on March 6, and there is at least one "Bills & Utilities" `transaction` in both January and February, a budget will be generated for "Bills & Utilities." If there are two "Bills & Utilities" transactions in February but none in January, no budget will be generated for that category. If budgets already exist for particular categories, new budgets will be generated and returned based on the available transactions. If one or more budgets remain unchanged, they will nevertheless be returned in the response. If no transaction data for the `user` meet the above criteria, a `422 Unprocessable Entity` error will be returned with status code 4221 along with the message, `There aren't enough transactions to automatically create any budgets`.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BudgetResponseBody'
  /users/{user_guid}/budgets:
    post:
      tags:
      - Users
      summary: Create a budget
      parameters:
      - name: user_guid
        description: The unique identifier for the user. Defined by MX.
        in: path
        required: true
        schema:
          type: string
      description: Create a budget. This endpoint accepts the optional `MX-Skip-Webhook` header and `skip_webhook` parameter. You cannot create a duplicate budget. For example, if you attempt to create a budget for "Gas", but that budget already exist, the request will fail. You can retrieve a list of all existing categories by using the List Categories endpoint.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BudgetCreateRequestBody'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BudgetResponseBody'
    get:
      tags:
      - Users
      summary: List all budgets
      description: List all budgets
      parameters:
      - name: user_guid
        description: The unique identifier for the user. Defined by MX.
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BudgetResponseBody'
  /users/{user_guid}/budgets/{budget_guid}:
    get:
      tags:
      - Users
      summary: Read a specific budget
      description: Read a specific budget.
      parameters:
      - name: budget_guid
        description: The unique identifier for the budget. Defined by MX.
        required: true
        in: path
        schema:
          type: string
      - name: user_guid
        description: The unique identifier for the budget. Defined by MX.
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BudgetResponseBody'
    put:
      tags:
      - Users
      summary: Update a specific budget
      description: Update a specific budget.
      parameters:
      - name: user_guid
        description: The unique identifier for the budget. Defined by MX.
        required: true
        in: path
        schema:
          type: string
      - name: budget_guid
        description: The unique identifier for the budget. Defined by MX.
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BudgetUpdateRequestBody'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BudgetResponseBody'
    delete:
      tags:
      - Users
      summary: Delete a budget
      description: Delete a budget.
      parameters:
      - name: user_guid
        description: The unique identifier for the budget. Defined by MX.
        required: true
        in: path
        schema:
          type: string
      - name: budget_guid
        description: The unique identifier for the budget. Defined by MX.
        required: true
        in: path
        schema:
          type: string
      responses:
        '204':
          description: No content
  /users/{user_guid}/categories:
    get:
      description: Use this endpoint to list all categories associated with a `user`, including both default and custom categories.
      operationId: listCategories
      parameters:
      - description: Specify current page.
        example: 1
        in: query
        name: page
        schema:
          type: integer
      - description: Specify records per page.
        example: 10
        in: query
        name: records_per_page
        schema:
          type: integer
      - description: The unique id for a `user`.
        example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
        in: path
        name: user_guid
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/vnd.mx.api.v1+json:
              schema:
                $ref: '#/components/schemas/CategoriesResponseBody'
          description: OK
      summary: List categories
      tags:
      - Users
    post:
      description: Use this endpoint to create a new custom category for a specific `user`.
      operationId: createCategory
      parameters:
      - description: The unique id for a `user`.
        example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
        in: path
        name: user_guid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CategoryCreateRequestBody'
        description: Custom category object to be created
        required: true
      responses:
        '200':
          content:
            application/vnd.mx.api.v1+json:
              schema:
                $ref: '#/components/schemas/CategoryResponseBody'
          description: OK
      summary: Create category
      tags:
      - Users
  /users/{user_guid}/categories/default:
    get:
      description: Use this endpoint to retrieve a list of all the default categories and subcategories, scoped by user, offered within the MX Platform API. In other words, each item in the returned list will have its `is_default` field set to `true`. There are currently 119 default categories and subcategories. Both the _list default categories_ and _list default categories by user_ endpoints return the same results. The different routes are provided for convenience.
      operationId: listDefaultCategoriesByUser
      parameters:
      - description: Specify current page.
        example: 1
        in: query
        name: page
        schema:
          type: integer
      - description: Specify records per page.
        example: 10
        in: query
        name: records_per_page
        schema:
          type: integer
      - description: The unique id for a `user`.
        example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
        in: path
        name: user_guid
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/vnd.mx.api.v1+json:
              schema:
                $ref: '#/components/schemas/CategoriesResponseBody'
          description: OK
      summary: List default categories by user
      tags:
      - Users
  /users/{user_guid}/categories/{category_guid}:
    delete:
      description: Use this endpoint to delete a specific custom category according to its unique GUID. The API will respond with an empty object and a status of `204 No Content`.
      operationId: deleteCategory
      parameters:
      - description: The unique id for a `category`.
        example: CAT-7829f71c-2e8c-afa5-2f55-fa3634b89874
        in: path
        name: category_guid
        required: true
        schema:
          type: string
      - description: The unique id for a `user`.
        example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
        in: path
        name: user_guid
        required: true
        schema:
          type: string
      responses:
        '204':
          description: No Content
      summary: Delete category
      tags:
      - Users
    get:
      description: Use this endpoint to read the attributes of either a default category or a custom category.
      operationId: readCategory
      parameters:
      - description: The unique id for a `category`.
        example: CAT-7829f71c-2e8c-afa5-2f55-fa3634b89874
        in: path
        name: category_guid
        required: true
        schema:
          type: string
      - description: The unique id for a `user`.
        example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
        in: path
        name: user_guid
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/vnd.mx.api.v1+json:
              schema:
                $ref: '#/components/schemas/CategoryResponseBody'
          description: OK
      summary: Read a custom category
      tags:
      - Users
    put:
      description: Use this endpoint to update the attributes of a custom category according to its unique GUID.
      operationId: updateCategory
      parameters:
      - description: The unique id for a `category`.
        example: CAT-7829f71c-2e8c-afa5-2f55-fa3634b89874
        in: path
        name: category_guid
        required: true
        schema:
          type: string
      - description: The unique id for a `user`.
        example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
        in: path
        name: user_guid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CategoryUpdateRequestBody'
        description: Category object to be updated (While no single parameter is required, the `category` object cannot be empty)
        required: true
      responses:
        '200':
          content:
            application/vnd.mx.api.v1+json:
              schema:
                $ref: '#/components/schemas/CategoryResponseBody'
          description: OK
      summary: Update category
      tags:
      - Users
  /users/{user_guid}/connect_widget_url:
    post:
      description: This endpoint will return a URL for an embeddable version of MX Connect.
      operationId: requestConnectWidgetURL
      parameters:
      - description: The unique id for a `user`.
        example: USR-fa7537f3-48aa-a683-a02a-b18940482f54
        in: path
        name: user_guid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConnectWidgetRequestBody'
        description: Optional config options for WebView (is_mobile_webview, current_institution_code, current_member_guid, update_credentials)
        required: true
      responses:
        '200':
          content:
            application/vnd.mx.api.v1+json:
              schema:
                $ref: '#/components/schemas/ConnectWidgetResponseBody'
          description: OK
      summary: Request connect widget url
      tags:
      - Users
  /users/{user_guid}/goals:
    post:
      tags:
      - Users
      summary: Create a goal
      description: Create a goal. This endpoint accepts the optional `MX-Skip-Webhook` header and `skip_webhook` parameter.
      parameters:
      - name: user_guid
        description: The unique identifier for the user.
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GoalRequestBody'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoalResponseBody'
    get:
      tags:
      - Users
      summary: List goals
      description: List all goals a user can set.
      parameters:
      - name: user_guid
        description: The unique identifier for the user.
        in: path
        required: true
        schema:
          type: string
      - name: page
        description: Results are returned in paginated sets, this is the page of the results you would like to view. Defaults to page 1 if no page is specified.
        example: null
        in: query
        required: false
        schema:
          type: string
      - name: records_per_age
        description: The supported range is from 10 to 1000. If the records_per_page parameter is not specified or is outside this range, a default of 25 records per page will be used.
        example: null
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoalsResponseBody'
  /users/{user_guid}/goals/{goal_guid}:
    delete:
      tags:
      - Users
      summary: Delete a goal
      description: Delete a goal.
      parameters:
      - name: goal_guid
        description: The unique identifier for a goal. Defined by MX.
        required: true
        in: path
        schema:
          type: string
      - name: user_guid
        description: The unique identifier for a user.
        required: true
        in: path
        schema:
          type: string
      responses:
        '204':
          description: No content
    get:
      tags:
      - Users
      summary: Read a goal
      description: Read a specific goal.
      parameters:
      - name: goal_guid
        description: The unique identifier for a goal. Defined by MX.
        required: true
        in: path
        schema:
          type: string
      - name: user_guid
        description: The unique identifier for a user.
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoalResponseBody'
    put:
      tags:
      - Users
      summary: Update a goal
      description: This endpoint updates a specific goal.
      parameters:
      - name: goal_guid
        description: The unique identifier for a goal. Defined by MX.
        required: true
        in: path
        schema:
          type: string
      - name: user_guid
        description: The unique identifier for a user.
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateGoalRequestBody'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoalResponseBody'
  /users/{user_guid}/goals/reposition:
    put:
      tags:
      - Users
      summary: Reposition goals
      description: This endpoint repositions goal priority levels. If one goal is set to a lower priority, then any other goals need to be adjusted accordingly.
      parameters:
      - name: user_guid
        description: The unique identifier for the user.
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RepositionRequestBody'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RepositionResponseBody'
  /users/{user_guid}/holdings:
    get:
      description: This endpoint returns all holdings associated with the specified `user` across all accounts and members.
      operationId: listHoldings
      parameters:
      - description: Filter holdings from this date.
        example: '2015

# --- truncated at 32 KB (240 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mx-platform/refs/heads/main/openapi/mx-platform-users-api-openapi.yml