MX Platform Users API
The Users API from MX Platform — 84 operation(s) for users.
The Users API from MX Platform — 84 operation(s) for users.
openapi: 3.0.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 (238 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mx-platform/refs/heads/main/openapi/mx-platform-users-api-openapi.yml