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.
Just getting started? See our [use case guides](/use-cases/).
'
title: MX Platform accounts categories API
version: '20111101'
servers:
- url: https://int-api.mx.com
- url: https://api.mx.com
security:
- basicAuth: []
tags:
- name: categories
paths:
/categories/default:
get:
description: Use this endpoint to retrieve a list of all the default categories and subcategories 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: listDefaultCategories
parameters:
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/recordsPerPage'
responses:
'200':
content:
application/vnd.mx.api.v1+json:
schema:
$ref: '#/components/schemas/CategoriesResponseBody'
description: OK
summary: List default categories
tags:
- categories
/categories/{category_guid}:
get:
description: Use this endpoint to read the attributes of a default category.
operationId: readDefaultCategory
parameters:
- $ref: '#/components/parameters/categoryGuid'
responses:
'200':
content:
application/vnd.mx.api.v1+json:
schema:
$ref: '#/components/schemas/CategoryResponseBody'
description: OK
summary: Read a default category
tags:
- categories
/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:
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/recordsPerPageMax1000'
- $ref: '#/components/parameters/userGuid'
responses:
'200':
content:
application/vnd.mx.api.v1+json:
schema:
$ref: '#/components/schemas/CategoriesResponseBody'
description: OK
summary: List categories
tags:
- categories
post:
description: Use this endpoint to create a new custom category for a specific `user`.
operationId: createCategory
parameters:
- $ref: '#/components/parameters/userGuid'
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:
- categories
/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:
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/recordsPerPageMax1000'
- $ref: '#/components/parameters/userGuid'
responses:
'200':
content:
application/vnd.mx.api.v1+json:
schema:
$ref: '#/components/schemas/CategoriesResponseBody'
description: OK
summary: List default categories by user
tags:
- categories
/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:
- $ref: '#/components/parameters/categoryGuid'
- $ref: '#/components/parameters/userGuid'
responses:
'204':
description: No Content
summary: Delete category
tags:
- categories
get:
description: Use this endpoint to read the attributes of either a default category or a custom category.
operationId: readCategory
parameters:
- $ref: '#/components/parameters/categoryGuid'
- $ref: '#/components/parameters/userGuid'
responses:
'200':
content:
application/vnd.mx.api.v1+json:
schema:
$ref: '#/components/schemas/CategoryResponseBody'
description: OK
summary: Read a custom category
tags:
- categories
put:
description: Use this endpoint to update the attributes of a custom category according to its unique GUID.
operationId: updateCategory
parameters:
- $ref: '#/components/parameters/categoryGuid'
- $ref: '#/components/parameters/userGuid'
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:
- categories
components:
schemas:
CategoryResponseBody:
properties:
category:
$ref: '#/components/schemas/CategoryResponse'
type: object
CategoryCreateRequest:
properties:
metadata:
example: some metadata
type: string
name:
example: Online Shopping
type: string
parent_guid:
example: CAT-aad51b46-d6f7-3da5-fd6e-492328b3023f
type: string
required:
- name
- parent_guid
type: object
CategoryUpdateRequestBody:
properties:
category:
$ref: '#/components/schemas/CategoryUpdateRequest'
type: object
CategoriesResponseBody:
properties:
categories:
items:
$ref: '#/components/schemas/CategoryResponse'
type: array
pagination:
$ref: '#/components/schemas/PaginationResponse'
type: object
CategoryCreateRequestBody:
properties:
category:
$ref: '#/components/schemas/CategoryCreateRequest'
type: object
CategoryUpdateRequest:
properties:
metadata:
example: some metadata
type: string
name:
example: Web shopping
type: string
type: object
PaginationResponse:
properties:
current_page:
example: 1
type: integer
per_page:
example: 25
type: integer
total_entries:
example: 1
type: integer
total_pages:
example: 1
type: integer
type: object
CategoryResponse:
properties:
created_at:
description: Category creation date-time.
example: '2015-04-13T18:01:23.000Z'
nullable: true
type: string
guid:
example: CAT-7829f71c-2e8c-afa5-2f55-fa3634b89874
nullable: true
type: string
is_default:
example: true
nullable: true
type: boolean
is_income:
example: false
nullable: true
type: boolean
metadata:
example: some metadata
nullable: true
type: string
name:
example: Auto Insurance
nullable: true
type: string
parent_guid:
example: CAT-7829f71c-2e8c-afa5-2f55-fa3634b89874
nullable: true
type: string
updated_at:
example: '2015-05-13T18:01:23.000Z'
nullable: true
type: string
type: object
parameters:
categoryGuid:
name: category_guid
description: The unique id for a `category`.
in: path
required: true
schema:
type: string
example: CAT-7829f71c-2e8c-afa5-2f55-fa3634b89874
recordsPerPage:
description: This specifies the number of records to be returned on each page. Defaults to `25`. The valid range is from `10` to `100`. If the value exceeds `100`, the default value of `25` will be used instead.
example: 10
in: query
name: records_per_page
schema:
type: integer
page:
description: Results are paginated. Specify current page.
example: 1
in: query
name: page
schema:
type: integer
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
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
securitySchemes:
bearerAuth:
type: http
scheme: bearer
basicAuth:
scheme: basic
type: http