MX Technologies Categories API

The categories API from MX Technologies — 5 operation(s) for categories.

Operations 8

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /categories/default List the standard spending categories · List default categories #
Ask an LLM
“What built-in transaction categories and subcategories does MX offer?”
“Can I get the full default category tree without referencing any user?”
Tell an agent
List all default categories and subcategories.
Show page {page} of the platform-wide default categories.
GET /categories/{category_guid} Read one default category · Read a default category #
Ask an LLM
“How do I look up the name and parent of a built-in category by its GUID?”
“Which top-level category does a given default subcategory belong to?”
Tell an agent
Get default category {category}.
Show details of the built-in category {category}, no user needed.
GET /users/{user_guid}/categories List a user's default and custom categories · List categories #
Ask an LLM
“Which categories can a user assign, including the custom ones they made?”
“How do I see a user's own custom categories alongside the standard ones?”
Tell an agent
List all categories, custom included, for user {user}.
Show user {user}'s full category list with their custom categories, {per_page} per page.
POST /users/{user_guid}/categories Create a custom category for a user · Create category #
Ask an LLM
“Can a user add their own spending category, like Pet Supplies?”
“How do I create a custom subcategory under an existing parent category?”
Tell an agent
Create custom category {category} for user {user}.
Add a new user-defined category {category} to user {user}'s list.
GET /users/{user_guid}/categories/default List default categories scoped to a user · List default categories by user #
Ask an LLM
“How do I fetch only the standard categories, excluding custom ones, for a particular user?”
“Can I list the default category set in the context of a specific user?”
Tell an agent
List only the default categories for user {user}.
Show the built-in categories scoped to user {user}, page {page}, without custom ones.
DELETE /users/{user_guid}/categories/{category_guid} Delete a custom category · Delete category #
Ask an LLM
“How do I remove a custom category a user no longer needs?”
“Can default categories be deleted, or only custom ones?”
Tell an agent destructive · confirm first
Delete custom category {category} for user {user}.
Remove user {user}'s custom category {category} permanently.
GET /users/{user_guid}/categories/{category_guid} Read a user's category, custom or default · Read a custom category #
Ask an LLM
“How do I read a custom category a user created?”
“Can I look up any category, default or custom, in the context of a user?”
Tell an agent
Get category {category} for user {user}.
Show the custom category {category} that user {user} made.
PUT /users/{user_guid}/categories/{category_guid} Rename or edit a custom category · Update category #
Ask an LLM
“How do I rename a custom category a user created?”
“Can I change the attributes of a user's custom category after creating it?”
Tell an agent
Update custom category {category} for user {user} with {changes}.
Rename user {user}'s custom category {category}.

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-technologies:mx-technologies-categories-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-technologies-categories-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Mx Technologies Categories API
  contact:
    name: MX Platform API
    url: https://www.mx.com/products/platform-api
  version: '1.0'
  description: 'Operations tagged categories across 2 of this provider''s published API definitions: mx-technologies-platform-openapi.yml, mx-technologies-platform-v20250224-openapi.yml. Each path carries the servers of the definition it was published in.'
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
    servers:
    - url: https://int-api.mx.com
    - url: https://api.mx.com
  /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
    servers:
    - url: https://int-api.mx.com
    - url: https://api.mx.com
  /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
    servers:
    - url: https://int-api.mx.com
    - url: https://api.mx.com
  /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
    servers:
    - url: https://int-api.mx.com
    - url: https://api.mx.com
  /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
    servers:
    - url: https://int-api.mx.com
    - url: https://api.mx.com
components:
  schemas:
    CategoryCreateRequestBody:
      properties:
        category:
          $ref: '#/components/schemas/CategoryCreateRequest'
      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
    CategoryResponse:
      properties:
        created_at:
          description: Category creation date-time.
          example: '2015-04-13T18:01:23.000Z'
          type:
          - string
          - 'null'
        guid:
          example: CAT-7829f71c-2e8c-afa5-2f55-fa3634b89874
          type:
          - string
          - 'null'
        is_default:
          example: true
          type:
          - boolean
          - 'null'
        is_income:
          example: false
          type:
          - boolean
          - 'null'
        metadata:
          example: some metadata
          type:
          - string
          - 'null'
        name:
          example: Auto Insurance
          type:
          - string
          - 'null'
        parent_guid:
          example: CAT-7829f71c-2e8c-afa5-2f55-fa3634b89874
          type:
          - string
          - 'null'
        updated_at:
          example: '2015-05-13T18:01:23.000Z'
          type:
          - string
          - 'null'
      type: object
    CategoryUpdateRequestBody:
      properties:
        category:
          $ref: '#/components/schemas/CategoryUpdateRequest'
      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
    CategoryResponseBody:
      properties:
        category:
          $ref: '#/components/schemas/CategoryResponse'
      type: object
    CategoriesResponseBody:
      properties:
        categories:
          items:
            $ref: '#/components/schemas/CategoryResponse'
          type: array
        pagination:
          $ref: '#/components/schemas/PaginationResponse'
      type: object
    CategoryCreateRequest_2:
      properties:
        metadata:
          description: Additional information you can store on the `category`.
          example: some metadata
          type: string
        name:
          example: Online Shopping
          type: string
          description: The name of the category.
        parent_guid:
          example: CAT-aad51b46-d6f7-3da5-fd6e-492328b3023f
          type: string
          description: The unique identifier for the parent category.
      required:
      - name
      - parent_guid
      type: object
    CategoryResponse_2:
      properties:
        created_at:
          description: The date and time the category was created, represented in ISO 8601 format with a timestamp.
          example: '2025-02-13T18:08:00+00:00'
          type:
          - string
          - 'null'
        guid:
          description: The unique identifier for the category. Defined by MX.
          example: CAT-7829f71c-2e8c-afa5-2f55-fa3634b89874
          type:
          - string
          - 'null'
        is_default:
          description: Indicates whether the category is an MX-created default category. This will always be `false` for custom categories.
          example: true
          type:
          - boolean
          - 'null'
        is_income:
          description: Indicates whether the transaction is income.
          example: false
          type:
          - boolean
          - 'null'
        metadata:
          description: Additional information you stored on the `category`.
          example: some metadata
          type:
          - string
          - 'null'
        name:
          example: Auto Insurance
          type:
          - string
          - 'null'
          description: The name of the category.
        parent_guid:
          description: The unique identifier for the parent category. Defined by MX.
          example: CAT-7829f71c-2e8c-afa5-2f55-fa3634b89874
          type:
          - string
          - 'null'
        updated_at:
          description: 'The date and time the resource was last updated in ISO 8601 format with a timestamp.


            For categories, this field will always be `null` when `is_default` is `true`.

            '
          example: '2025-02-13T18:09:00+00:00'
          type:
          - string
          - 'null'
      type: object
    CategoryUpdateRequest_2:
      properties:
        metadata:
          description: Additional information you can store on the `category`.
          example: some metadata
          type: string
        name:
          example: Web shopping
          type: string
          description: The name of the category.
      type: object
    PaginationResponse_2:
      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
  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
    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
    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
    acceptVersion:
      name: Accept-Version
      in: header
      required: true
      schema:
        type: string
        default: v20250224
        example: v20250224
      description: MX Platform API version.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
    basicAuth:
      scheme: basic
      type: http
x-refined-from:
- mx-technologies-platform-openapi.yml
- mx-technologies-platform-v20250224-openapi.yml
x-provenance:
  method: harvested
  publisher: MX Technologies
  source: https://raw.githubusercontent.com/mxenabled/openapi/HEAD/openapi/mx_platform_api.yml
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)