MaintainX Meter Triggers API

Operations on Meter Triggers

Operations 9

POST /metertriggers Create meter trigger
GET /metertriggers List meter triggers
GET /metertriggers/{id} Get meter trigger
PATCH /metertriggers/{id} Update meter trigger
DELETE /metertriggers/{id} Delete meterTrigger
PUT /metertriggers/{id}/thumbnail/{filename} Update meter trigger's work order template's thumbnail
PATCH /metertriggers/{id}/workordertemplates Update Meter Trigger's Work Order Template
PUT /metertriggers/{id}/workordertemplates/attachments/{filename} Update meter trigger's work order template attachment
DELETE /metertriggers/{id}/workordertemplates/attachments/{filename} Remove meter trigger's work order template attachment

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-meter-triggers-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 email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

maintainx-meter-triggers-api-openapi.yml Raw ↑
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 &gt; Integrations"</a> and click "&plus; 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 Meter Triggers 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: Meter Triggers
  description: Operations on Meter Triggers
  x-traitTag: false
paths:
  /metertriggers:
    post:
      summary: Create meter trigger
      requestBody:
        description: The meter trigger to create
        required: true
        content:
          application/json:
            schema:
              type: object
              description: The meter triger data
              required:
              - meterTrigger
              properties:
                meterTrigger:
                  required:
                  - meterId
                  - amount
                  - condition
                  - name
                  type: object
                  properties:
                    meterId:
                      type: integer
                    workOrderTemplateId:
                      type: integer
                      description: 'Id of an existing work order template. Once this is set, the `workOrderTemplate` object will completely be ignored in favour of the work order template associated with the id. NOTE: If this is set, the name of the meter trigger will match the name of the linked work order template.'
                    amount:
                      type: number
                    condition:
                      type: string
                      enum:
                      - DECREMENTED_BY
                      - INCREMENTED_BY
                      - IS_EQUAL
                      - IS_GREATER
                      - IS_LESS
                      - INCREMENTED_BY_BASED_ON_LAST_READING
                      - DECREMENTED_BY_BASED_ON_LAST_READING
                    dataPoints:
                      type: object
                      required:
                      - numerator
                      - denominator
                      properties:
                        numerator:
                          type: integer
                          description: 'The number of data points out of "denominator" data points to trigger. E.g: 3 points out of 5 must be in a triggering state'
                        denominator:
                          type: integer
                          description: The window of points where the condition gets checked
                    description:
                      type: string
                    minDateForProcessing:
                      type: string
                      format: date-time
                      description: Date that the trigger will start to be active
                    name:
                      type: string
                      description: Name of the trigger
                    nextTriggerValue:
                      type: number
                      description: Can be set to override the first trigger value
                    period:
                      type:
                      - integer
                      - 'null'
                      description: Window in seconds where the data points can be checked
                workOrderTemplate:
                  type: object
                  properties:
                    procedureTemplateId:
                      type:
                      - integer
                      - 'null'
                      description: ID of the procedure template used
                    saveProcedureAsTemplate:
                      type:
                      - boolean
                      - 'null'
                      description: Save the procedure in data as a new procedure template
                    title:
                      deprecated: true
                      type: string
                      description: Title of the work order that will be generated. Use the meter trigger's name instead. If both `workOrderTemplate.title` and `meterTrigger.name` are provided, `meterTrigger.name` will be used.
                    data:
                      type: object
                      properties:
                        assetId:
                          type:
                          - integer
                          - 'null'
                        assigneeIds:
                          type: array
                          description: Users IDs assigned to the template
                          items:
                            type: number
                            example: 1
                        description:
                          type:
                          - string
                          - 'null'
                          example: A work order sample description
                        dueDate:
                          type:
                          - object
                          - 'null'
                          properties:
                            type:
                              type: string
                              enum:
                              - OFFSET
                            offset:
                              type: number
                        locationId:
                          type:
                          - integer
                          - 'null'
                          description: Global ID of the location assigned to the work order
                        partsUsed:
                          type:
                          - array
                          - 'null'
                          items:
                            type: object
                            properties:
                              partId:
                                type: integer
                                example: 963
                                description: Global ID of the part
                              quantityUsed:
                                type: integer
                                description: Quantity used in the work order.
                                example: 120
                              locationId:
                                type:
                                - integer
                                - 'null'
                                description: Global ID of the location of the part
                                example: 852
                              copyOnRecurring:
                                type: string
                                description: Indicates if the parts will be copied to the next work order in the chain (if applicable).
                                default: Default
                                enum:
                                - NoCopy
                                - Copy
                                - Default
                        priority:
                          type: string
                          example: MEDIUM
                          enum:
                          - NONE
                          - LOW
                          - MEDIUM
                          - HIGH
                        procedure:
                          type:
                          - object
                          - 'null'
                          required:
                          - title
                          - fields
                          properties:
                            id:
                              type: number
                              example: 1234
                              deprecated: true
                              description: You should favor 'procedureTemplateId' to attach a procedure template.
                            title:
                              type: string
                              description: Title of the procedure
                              example: Control dashboard audit
                            fields:
                              type: array
                              items:
                                type: object
                                required:
                                - type
                                - label
                                properties:
                                  label:
                                    type: string
                                    example: 'Metal Parts: broken, loose, dented, rusty, missing'
                                  type:
                                    type: string
                                    example: INSPECTION_CHECK
                                    enum:
                                    - NUMBER
                                    - AMOUNT
                                    - TEXT
                                    - UNSUPPORTED
                                    - HEADING
                                    - FILE
                                    - SIGNATURE
                                    - MULTIPLE_CHOICE
                                    - INSPECTION_CHECK
                                    - YES_NO_NA
                                    - CHECKBOX
                                    - CHECKLIST
                                    - METER
                                    - DATE
                                    - CYCLE_COUNT
                                  description:
                                    type:
                                    - string
                                    - 'null'
                                  choices:
                                    type: array
                                    items:
                                      example: Partially
                                      type: string
                                  urls:
                                    type: array
                                    items:
                                      type: object
                                      required:
                                      - link
                                      properties:
                                        label:
                                          type: string
                                          description: Label of the url
                                          example: MaintainX Website
                                        link:
                                          type: string
                                          description: Link
                                          example: www.getmaintainx.com
                                  meterId:
                                    type:
                                    - number
                                    - 'null'
                                    example: 1
                                    description: Id of the meter
                                  isDateAndTime:
                                    type: boolean
                                    default: false
                                    description: Indicate if a DATE field also contains the time
                                    example: false
                                  index:
                                    type: number
                                    example: 1
                                    description: Order which the row is displayed
                              description: Steps of a procedure
                        tagsIds:
                          type: array
                          description: Categories IDs
                          items:
                            type: number
                            example: 1
                        teamIds:
                          type: array
                          description: Teams IDs
                          items:
                            type: number
                            example: 1
                        title:
                          type: string
                          deprecated: true
                          description: Use the `title` field at the root level. If both `title` and `data.title` are provided, `title` will be used.
                        vendorIds:
                          type: array
                          description: Vendor IDs
                          items:
                            type: number
                            example: 1
      responses:
        '201':
          description: Successfully created the meter trigger
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                properties:
                  id:
                    type: number
                    example: 1
                    description: Id of the meter trigger
        '400':
          description: Failed to create the meter trigger
          content:
            application/json:
              schema:
                type: object
                required:
                - errors
                example:
                  errors:
                  - error: Unexpected error
                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:
      - Meter Triggers
      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 meter triggers
      description: Endpoint used to list meter trigger resources
      parameters:
      - name: cursor
        in: query
        schema:
          description: Last pagination reference
          type: string
      - name: limit
        in: query
        schema:
          description: max number of Meter Triggers returned
          type: integer
          minimum: 1
          maximum: 200
          default: 100
      - name: meters
        schema:
          type: array
          title: meter ID filters
          description: 'To filter by multiple meter IDs: `meters=630&meters=634`'
          items:
            type: integer
        in: query
      - 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 Meter Triggers list
          content:
            application/json:
              schema:
                type: object
                required:
                - meterTriggers
                properties:
                  meterTriggers:
                    type: array
                    items:
                      type: object
                      required:
                      - id
                      - name
                      - meterId
                      properties:
                        id:
                          type: number
                          example: 963
                          description: Global ID of the trigger.
                        name:
                          type: string
                          example: 'Thermometer #4'
                        meterId:
                          type: number
                          example: 53
                          description: Global ID of the meter.
                  nextCursor:
                    description: The cursor to retrieve the next page of Meter Triggers.
                    type:
                    - string
                    - 'null'
                  nextPageUrl:
                    description: Path with query parameters that can be used to retrieve the next page of Meter Triggers.
                    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:
      - Meter Triggers
  /metertriggers/{id}:
    get:
      summary: Get meter trigger
      parameters:
      - schema:
          type: integer
        name: id
        in: path
        required: true
        description: ID of the meterTrigger
        example: '1'
      - in: query
        name: expand
        schema:
          title: Expand specific fields in the request
          type: array
          items:
            type: string
            enum:
            - work_order_template
      responses:
        '200':
          description: Successfully retrieved meterTrigger's information
          content:
            application/json:
              schema:
                type: object
                required:
                - meterTrigger
                properties:
                  meterTrigger:
                    type: object
                    required:
                    - id
                    - meterId
                    - organizationId
                    - amount
                    - condition
                    - createdAt
                    - creatorId
                    - dataPoints
                    - deletedAt
                    - description
                    - minDateForProcessing
                    - name
                    - nextTriggerValue
                    - period
                    - state
                    - updatedAt
                    - workOrderTemplateId
                    properties:
                      id:
                        type: integer
                        description: Global ID of the meter trigger
                      meterId:
                        type: integer
                        description: Global ID of the meter
                      organizationId:
                        type: integer
                        description: Global ID of the organization
                      amount:
                        type: number
                        description: Value used to trigger the condition
                      condition:
                        type: string
                        description: Condition of the trigger
                        enum:
                        - DECREMENTED_BY
                        - INCREMENTED_BY
                        - IS_EQUAL
                        - IS_GREATER
                        - IS_LESS
                        - INCREMENTED_BY_BASED_ON_LAST_READING
                        - DECREMENTED_BY_BASED_ON_LAST_READING
                      createdAt:
                        type: string
                        description: Date at which the meter was created
                        format: date-time
                      creatorId:
                        type: integer
                        description: Global ID of the meter trigger's creator
                      dataPoints:
                        type:
                        - object
                        - 'null'
                        properties:
                          numerator:
                            type: integer
                            description: 'The number of data points out of "denominator" data points to trigger. E.g: 3 points out of 5 must be in a triggering state'
                          denominator:
                            type: integer
                            description: The window of points where the condition gets checked
                      deletedAt:
                        type:
                        - string
                        - 'null'
                        description: Data at which the meter was delated
                        format: date-time
                      description:
                        type:
                        - string
                        - 'null'
                      minDateForProcessing:
                        type:
                        - string
                        - 'null'
                        format: date-time
                        description: Date that the trigger will start to be active
                      name:
                        type: string
                        description: Name of the trigger
                      nextTriggerValue:
                        type:
                        - number
                        - 'null'
                        description: Can be set to override the first trigger value
                      period:
                        type:
                        - integer
                        - 'null'
                        description: Window in seconds where the data points can be checked
                      state:
                        type: string
                        description: State of the trigger
                        enum:
                        - INACTIVE
                        - INSUFFICIENT_DATA
                        - PENDING
                        - STABLE
                        - TRIGGERED
                      updatedAt:
                        type: string
                        description: Date at which the meter was updated
                        format: date-time
                      workOrderTemplateId:
                        type:
                        - integer
                        - 'null'
                        description: Global ID of the work order template used by the meter trigger
                      workOrderTemplate:
                        type:
                        - object
                        - 'null'
                        description: Work Order template used by the meter trigger (expand with query parameter)
                        properties:
                          id:
                            type: integer
                            description: Global ID of the work order template
                          createdAt:
                            type: string
                            format: date-time
                            description: Date & time at which the work order template was created
                            example: '2022-01-01T00:00:00.000Z'
                          creatorId:
                            type:
                            - integer
                            - 'null'
                            description: ID of the user who created the work order
                          deletedAt:
                            type:
                            - string
                            - 'null'
                            format: date-time
                            description: Time at which the template was deleted
                            example: '2022-01-01T00:00:00.000Z'
                          organizationId:
                            type:
                            - integer
                            - 'null'
                            description: ID of the organization
                          procedureTemplateId:
                            type:
                            - integer
                            - 'null'
                            description: ID of the procedure template used if in the library
                          title:
                            type: string
                            deprecated: true
                            description: Title of the work order that will be generated. Use the meter trigger's name instead
                          updatedAt:
                            type:
                            - string
                            - 'null'
                            format: date-time
                            description: Time at which the template was updated
                            example: '2022-01-01T00:00:00.000Z'
                          data:
                            type: object
                            properties:
                              assetId:
                                type:
                                - integer
                                - 'null'
                                description: Global ID of the asset assigned to the work order
                              assigneeIds:
                                type: array
                                description: Users IDs assigned to the template
                                items:
                                  type: number
                                  example: 1
                              attachmentIds:
                                type:
                                - array
                                - 'null'
                                items:
                                  type: number
                                  example: 1
                                description: IDs of the attachments on the template
                              description:
                                type:
                                - string
                                - 'null'
                                example: A work order sample description
                              dueDate:
                                type:
                                - object
                                - 'null'
                                properties:
                                  type:
                                    type: string
                                    enum:
                                    - OFFSET
                                  offset:
                                    type: number
                              locationId:
                                type:
                                - integer
                                - 'null'
                                description: Global ID of the location assigned to the work order
                              partsUsed:
                                type:
                                - array
                                - 'null'
                                items:
                                  type: object
                                  properties:
                                    id:
                                      type: integer
                                      example: 963
                                      description: Global ID of the part
                                    name:
                                      type: string
                                      example: Locknut - 1/8
                                    description:
                                      type:
                                      - string
                                      - 'null'
                                      example: ''
                                    area:
                                      type:
                                      - string
                                      - 'null'
                                      example: tool room
                                    unitCost:
                                      type:
                                      - integer
                                      - 'null'
                                      description: Cost in cents. For example, for $1.20, put 120.
                                      example: 120
                                    availableQuantity:
                                      type: integer
                                      description: Quantity currently in stock
                                      example: 10
                                    minimumQuantity:
                                      type: integer
                                      description: Minimum quantity before you should restock
                                      example: 5
                                    barcode:
                                      type:
                                      - string
                                      - 'null'
                                      example: bWFpbnRhaW54Cg==
                                      description: String encoded barcode
                                    quantityUsed:
                                      type: integer
                                      description: Quantity used in the work order.
                                      example: 120
                                    copyOnRecurring:
                                      type: string
                                      description: Indicates if the parts will be copied to the next work order in the chain (if applicable).
                                      default: Default
                                      enum:
                                      - NoCopy
                                      - Copy
                                      - Default
                                    locationId:
                                      type:
                                      - number
                                      - 'null'
                                      description: Global ID of the location of the part
                                      example: 852
                                    extraFields:
                                      type: object
                                      description: Work Order-scoped custom fields for this Part on this specific Work Order. These are distinct from Part-level custom fields (see `partExtraFields`).
                                      additionalProperties:
                                        type: string
                              priority:
                                type: string
                                example: MEDIUM
                                enum:
                                - NONE
                                - LOW
                                - MEDIUM
                                - HIGH
                              procedure:
                                type:
                                - object
                                - 'null'
                                required:
                                - title
                                - fields
                                properties:
                                  title:
                                    example: Control dashboard audit
                                    type: string
                                  fields:
                                    type: array
                                    items:
                                      type: object
                                      required:
                                      - id
                                      - label
                                      - type
                                      properties:
                                        id:
                                          type: number
                           

# --- truncated at 32 KB (88 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/maintainx/refs/heads/main/openapi/maintainx-meter-triggers-api-openapi.yml