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.
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
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 > Integrations > API Keys\"</a> to generate a key for your user.</p>\n"
type: http
scheme: bearer
bearerFormat: JWT