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.
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.
OpenAPI Specification
openapi: 3.2.0
info:
description: Welcome to the MaintainX API documentation!<br/><br/>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!<br/><br/>To get started, in your MaintainX account go to <a href="https://app.getmaintainx.com/settings/integrations/apiKeys">"Settings > Integrations"</a> and click "+ New Key" button to generate a new Rest API key.<br/><br/><b>Missing something?</b><br/>Don't hesitate to reach out <a href="mailto:support@getmaintainx.com">support@getmaintainx.com</a><br/><br/>
version: '1'
title: MaintainX Asset Criticalities 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'
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
/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
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
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
/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
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
/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
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
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 > Integrations > API Keys\"</a> to generate a key for your user.</p>\n"
type: http
scheme: bearer
bearerFormat: JWT