MaintainX Teams API

Operations on Teams

Operations 9

POST /teams Create new team #
GET /teams List teams #
GET /teams/{id} Get team #
PATCH /teams/{id} Update team #
DELETE /teams/{id} Delete team #
POST /teams/{id}/members Add user to team #
GET /teams/{id}/members List team members #
PATCH /teams/{teamId}/members/{userId} Update team member #
DELETE /teams/{teamId}/members/{userId} Remove user from team #

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/maintainx-teams-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

maintainx-teams-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: 'Welcome to the MaintainX API documentation!


    You can use the MaintainX API to programmatically interact with all the entities in MaintainX. Use it to retrieve and manage data of Work Orders, Work Requests, Assets, and more!


    To get started, in your MaintainX account go to "Settings > Integrations" and click "+ New Key" button to generate a new Rest API key.


    Missing something?

    Don''t hesitate to reach out support@getmaintainx.com'
  version: '1'
  title: MaintainX Teams API
  contact:
    url: https://www.getmaintainx.com/
    name: Support
    email: support@getmaintainx.com
  x-logo:
    url: https://maintainx-static.s3-us-west-2.amazonaws.com/img/default-org-logo.png
    backgroundColor: '#FFFFFF'
    altText: MaintainX logo
servers:
- url: https://api.getmaintainx.com/v1
  description: Endpoint
security:
- Bearer: []
tags:
- name: Teams
  description: Operations on Teams
  x-traitTag: false
paths:
  /teams:
    post:
      summary: Create new team
      requestBody:
        description: Team to create
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - name
              properties:
                name:
                  type: string
                  example: Cleaning
                description:
                  type: string
                  example: Team responsible for cleaning the factory
                assetIds:
                  type: array
                  items:
                    type: integer
                  description: List of asset IDs that the team is responsible for
                  example:
                  - 12
                  - 46
                locationIds:
                  type: array
                  items:
                    type: integer
                  description: List of location where the team is operating
                  example:
                  - 7
                  - 145
                  - 988
                memberIds:
                  type: array
                  items:
                    type: integer
                  description: List of user IDs that are part of the team
                  example:
                  - 98
                  - 46
                  - 744
      responses:
        '201':
          description: Successfully created team
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                properties:
                  id:
                    type: integer
                    example: 963
                    description: Global ID of the team
        '400':
          description: OrganizationId was not provided
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                example:
                  errors:
                  - error: Missing x-organization-id header.
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - error
                      properties:
                        error:
                          type: string
                        fieldPath:
                          type:
                          - string
                          - 'null'
                        fieldValue:
                          oneOf:
                          - type: string
                          - type: number
                          - type: boolean
        '401':
          $ref: '#/components/responses/UnauthorizedError'
      tags:
      - Teams
      parameters:
      - schema:
          type: boolean
        description: Set `skipWebhook=true`, `skipWebhook=1` or `skipWebhook=yes` to skip all webhooks upon successful operation on the endpoint. [Learn more about webhooks](#tag/Subscriptions-and-Webhooks)
        name: skipWebhook
        in: query
        required: false
      - schema:
          type: integer
        description: Required if using a multi organizations token
        name: x-organization-id
        in: header
        required: false
        example: '1'
      operationId: postTeams
      x-operation-id-source: derived
    get:
      summary: List teams
      description: Endpoint used to list team resources
      parameters:
      - name: cursor
        in: query
        schema:
          description: Last pagination reference
          type: string
      - name: limit
        in: query
        schema:
          description: max number of Teams returned
          type: integer
          minimum: 1
          maximum: 200
          default: 100
      - schema:
          type: integer
        description: Required if using a multi organizations token
        name: x-organization-id
        in: header
        required: false
        example: '1'
      responses:
        '200':
          description: Successfully fetched Teams list
          content:
            application/json:
              schema:
                type: object
                required:
                - teams
                properties:
                  teams:
                    type: array
                    items:
                      type: object
                      required:
                      - id
                      - name
                      properties:
                        id:
                          type: integer
                          example: 963
                          description: Global ID of the team
                        name:
                          type: string
                          example: Cleaning
                  nextCursor:
                    description: The cursor to retrieve the next page of Teams.
                    type:
                    - string
                    - 'null'
                  nextPageUrl:
                    description: Path with query parameters that can be used to retrieve the next page of Teams.
                    type:
                    - string
                    - 'null'
        '400':
          description: Error with query
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    description: Description of error
                    type: string
        '401':
          $ref: '#/components/responses/UnauthorizedError'
      tags:
      - Teams
      operationId: getTeams
      x-operation-id-source: derived
  /teams/{id}:
    get:
      summary: Get team
      parameters:
      - schema:
          type: integer
        name: id
        in: path
        required: true
        description: ID of the team
        example: '1'
      responses:
        '200':
          description: Successfully retrieved team's information
          content:
            application/json:
              schema:
                type: object
                required:
                - team
                properties:
                  team:
                    type: object
                    required:
                    - id
                    - name
                    - membersCount
                    properties:
                      id:
                        type: integer
                        example: 963
                        description: Global ID of the team
                      name:
                        type: string
                        example: Cleaning
                      description:
                        type: string
                        example: Team responsible for cleaning the factory
                      assetIds:
                        type: array
                        items:
                          type: integer
                        description: List of asset IDs that the team is responsible for
                        example:
                        - 12
                        - 46
                      membersCount:
                        type: integer
                        example: 3
                        description: Number of team members
                      locationIds:
                        type: array
                        items:
                          type: integer
                        description: List of location where the team is operating
                        example:
                        - 7
                        - 145
                        - 988
        '400':
          description: Error with query
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    description: Description of error
                    type: string
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '404':
          description: Could not find the specified team or the user cannot access it.
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    type: string
                    example: Not Found.
      tags:
      - Teams
      operationId: getTeamsById
      x-operation-id-source: derived
    patch:
      summary: Update team
      parameters:
      - schema:
          type: integer
        name: id
        in: path
        required: true
        description: ID of the team
        example: '1'
      - schema:
          type: boolean
        description: Set `skipWebhook=true`, `skipWebhook=1` or `skipWebhook=yes` to skip all webhooks upon successful operation on the endpoint. [Learn more about webhooks](#tag/Subscriptions-and-Webhooks)
        name: skipWebhook
        in: query
        required: false
      requestBody:
        description: Team to update
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  example: Cleaning
                description:
                  type: string
                  example: Team responsible for cleaning the factory
                locationIds:
                  type: array
                  items:
                    type: integer
                  description: List of location where the team is operating
                  example:
                  - 7
                  - 145
                  - 988
                assetIds:
                  type: array
                  items:
                    type: integer
                  description: List of asset IDs that the team is responsible for
                  example:
                  - 12
                  - 46
                membersCount:
                  type: integer
                  example: 3
                  description: Number of team members
      responses:
        '200':
          description: Successfully edited team
          content:
            application/json:
              schema:
                type: object
                required:
                - team
                properties:
                  team:
                    type: object
                    required:
                    - id
                    - name
                    - membersCount
                    properties:
                      id:
                        type: integer
                        example: 963
                        description: Global ID of the team
                      name:
                        type: string
                        example: Cleaning
                      description:
                        type: string
                        example: Team responsible for cleaning the factory
                      assetIds:
                        type: array
                        items:
                          type: integer
                        description: List of asset IDs that the team is responsible for
                        example:
                        - 12
                        - 46
                      membersCount:
                        type: integer
                        example: 3
                        description: Number of team members
                      locationIds:
                        type: array
                        items:
                          type: integer
                        description: List of location where the team is operating
                        example:
                        - 7
                        - 145
                        - 988
        '400':
          description: Failed to edit the team
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                example:
                  errors:
                  - error: team ID is not valid
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - error
                      properties:
                        error:
                          type: string
                        fieldPath:
                          type:
                          - string
                          - 'null'
                        fieldValue:
                          oneOf:
                          - type: string
                          - type: number
                          - type: boolean
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '404':
          description: Could not find the specified team.
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    type: string
                    example: team Not Found
      tags:
      - Teams
      operationId: patchTeamsById
      x-operation-id-source: derived
    delete:
      summary: Delete team
      parameters:
      - schema:
          type: integer
        name: id
        in: path
        required: true
        description: ID of the team
        example: '1'
      - schema:
          type: boolean
        description: Set `skipWebhook=true`, `skipWebhook=1` or `skipWebhook=yes` to skip all webhooks upon successful operation on the endpoint. [Learn more about webhooks](#tag/Subscriptions-and-Webhooks)
        name: skipWebhook
        in: query
        required: false
      responses:
        '204':
          description: Successfully deleted the team
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '404':
          description: Could not find the specified team.
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    type: string
                    example: team Not Found
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    type: string
                    example: Internal server error.
      tags:
      - Teams
      operationId: deleteTeamsById
      x-operation-id-source: derived
  /teams/{id}/members:
    post:
      summary: Add user to team
      requestBody:
        description: Member to add to team
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - id
              properties:
                id:
                  type: integer
                  example: 963
                  description: Global ID of the user
                teamRole:
                  type: string
                  enum:
                  - ADMIN
                  - MEMBER
                  example: MEMBER
      responses:
        '201':
          description: Successfully added team member
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                properties:
                  id:
                    type: integer
                    example: 963
                    description: Global ID of the user
        '400':
          description: Failed to add the team member
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                example:
                  errors:
                  - error: ID is invalid or user is not part of the organization
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - error
                      properties:
                        error:
                          type: string
                        fieldPath:
                          type:
                          - string
                          - 'null'
                        fieldValue:
                          oneOf:
                          - type: string
                          - type: number
                          - type: boolean
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '404':
          description: Could not find the specified team member.
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    type: string
                    example: team member Not Found
      parameters:
      - schema:
          type: integer
        name: id
        in: path
        required: true
        description: ID of the team
        example: '1'
      - schema:
          type: boolean
        description: Set `skipWebhook=true`, `skipWebhook=1` or `skipWebhook=yes` to skip all webhooks upon successful operation on the endpoint. [Learn more about webhooks](#tag/Subscriptions-and-Webhooks)
        name: skipWebhook
        in: query
        required: false
      tags:
      - Teams
      operationId: postTeamsByIdMembers
      x-operation-id-source: derived
    get:
      summary: List team members
      parameters:
      - name: cursor
        in: query
        schema:
          description: Last pagination reference
          type: string
      - name: limit
        in: query
        schema:
          description: max number of Members returned
          type: integer
          minimum: 1
          maximum: 200
          default: 100
      - schema:
          type: integer
        name: id
        in: path
        required: true
        description: ID of the team
        example: '1'
      responses:
        '200':
          description: Successfully fetched Members list
          content:
            application/json:
              schema:
                type: object
                required:
                - members
                properties:
                  members:
                    type: array
                    items:
                      type: object
                      required:
                      - id
                      - teamRole
                      properties:
                        id:
                          type: integer
                          example: 963
                          description: Global ID of the user
                        firstName:
                          type: string
                          example: John
                        lastName:
                          type: string
                          example: Doe
                        teamRole:
                          type: string
                          enum:
                          - ADMIN
                          - MEMBER
                          example: MEMBER
                  nextCursor:
                    description: The cursor to retrieve the next page of Members.
                    type:
                    - string
                    - 'null'
                  nextPageUrl:
                    description: Path with query parameters that can be used to retrieve the next page of Members.
                    type:
                    - string
                    - 'null'
        '400':
          description: Error with query
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    description: Description of error
                    type: string
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '404':
          description: Cannot find the parent resource
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    description: Description of error
                    type: string
      tags:
      - Teams
      operationId: getTeamsByIdMembers
      x-operation-id-source: derived
  /teams/{teamId}/members/{userId}:
    patch:
      summary: Update team member
      parameters:
      - schema:
          type: integer
        name: teamId
        in: path
        required: true
        description: ID of the team
        example: '1'
      - schema:
          type: integer
        name: userId
        in: path
        required: true
        description: User ID of the member
        example: '1'
      - schema:
          type: boolean
        description: Set `skipWebhook=true`, `skipWebhook=1` or `skipWebhook=yes` to skip all webhooks upon successful operation on the endpoint. [Learn more about webhooks](#tag/Subscriptions-and-Webhooks)
        name: skipWebhook
        in: query
        required: false
      requestBody:
        description: Team to update
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                teamRole:
                  type: string
                  enum:
                  - ADMIN
                  - MEMBER
                  example: MEMBER
      responses:
        '200':
          description: Successfully edited team member
          content:
            application/json:
              schema:
                type: object
                required:
                - member
                properties:
                  member:
                    type: object
                    required:
                    - id
                    - teamRole
                    properties:
                      id:
                        type: integer
                        example: 963
                        description: Global ID of the user
                      firstName:
                        type: string
                        example: John
                      lastName:
                        type: string
                        example: Doe
                      teamRole:
                        type: string
                        enum:
                        - ADMIN
                        - MEMBER
                        example: MEMBER
        '400':
          description: Failed to edit the team
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                example:
                  errors:
                  - error: team role is not valid
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - error
                      properties:
                        error:
                          type: string
                        fieldPath:
                          type:
                          - string
                          - 'null'
                        fieldValue:
                          oneOf:
                          - type: string
                          - type: number
                          - type: boolean
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '404':
          description: Could not find the specified team member.
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    type: string
                    example: team member Not Found
      tags:
      - Teams
      operationId: patchTeamsByTeamIdMembersByUserId
      x-operation-id-source: derived
    delete:
      summary: Remove user from team
      parameters:
      - schema:
          type: integer
        name: teamId
        in: path
        required: true
        description: ID of the team
        example: '1'
      - schema:
          type: integer
        name: userId
        in: path
        required: true
        description: User ID of the member
        example: '1'
      - schema:
          type: boolean
        description: Set `skipWebhook=true`, `skipWebhook=1` or `skipWebhook=yes` to skip all webhooks upon successful operation on the endpoint. [Learn more about webhooks](#tag/Subscriptions-and-Webhooks)
        name: skipWebhook
        in: query
        required: false
      responses:
        '204':
          description: Successfully removed team member
        '400':
          description: Failed to remove the team
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                example:
                  errors:
                  - error: Error while deleting team.
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                      - error
                      properties:
                        error:
                          type: string
                        fieldPath:
                          type:
                          - string
                          - 'null'
                        fieldValue:
                          oneOf:
                          - type: string
                          - type: number
                          - type: boolean
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '404':
          description: Could not find the specified team member.
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    type: string
                    example: team member Not Found
      tags:
      - Teams
      operationId: deleteTeamsByTeamIdMembersByUserId
      x-operation-id-source: derived
components:
  responses:
    UnauthorizedError:
      description: Invalid token
  securitySchemes:
    Bearer:
      description: "\n  <p>Authenticate by adding the following HTTP header to your requests:</p>\n<pre>Authorization: bearer {{token}}</pre>\n<p>The <code>token</code> can be generated in your MaintainX account. Go to <a href=\"https://app.getmaintainx.com/settings/integrations/apiKeys\">\"Settings &gt; Integrations &gt; API Keys\"</a> to generate a key for your user.</p>\n"
      type: http
      scheme: bearer
      bearerFormat: JWT