Maintenance Connection Web API

RESTful CMMS API for the Accruent Maintenance Connection product. 126 paths / 255 operations across assets, asset specifications, meter history, images and documents, classifications, companies, parts and inventory, labor, lookup tables, purchase orders, receipts and invoices, specifications and work orders (tasks, assignments, labor/misc/part estimates and actuals, status updates). HTTP Basic auth over a base64 "ConnectionKey:APIKey" token; OData-style $filter / $top / $skip / $orderby query options; 200 requests per minute per connection.

Operations 255

Showing the first 250 of 255. The full set is in the contract, and via get_provider_operations.

GET /Assets/{assetPK}/documents #
POST /Assets/{assetPK}/documents #
GET /Assets/{assetPK}/documents/{PK} #
GET /AssetDocuments #
GET /AssetDocuments/{assetPK} #
POST /AssetDocuments/{assetPK} #
GET /Assets/{assetPK}/images #
POST /Assets/{assetPK}/images #
GET /Assets/{assetPK}/images/{imagePK} #
GET /AssetImages #
GET /AssetImages/{assetPK} #
POST /AssetImages/{assetPK} #
GET /Assets/{assetPK}/meterhistory #
POST /Assets/{assetPK}/meterhistory #
GET /Assets/{assetPK}/meterhistory/{historyPK} #
PUT /Assets/{assetPK}/meterhistory/{historyPK} #
GET /Assets/{assetPK}/meternumberhistory #
PUT /Assets/{assetPK}/meternumberhistory #
POST /Assets/{assetPK}/meternumberhistory #
GET /Assets/{assetPK}/meternumberhistory/{meterNumber} #
GET /AssetMeterHistory #
PUT /AssetMeterHistory #
GET /AssetMeterHistory/{assetPK} #
PUT /AssetMeterHistory/{assetPK} #
POST /AssetMeterHistory/{assetPK} #
GET /Assets #
PUT /Assets #
POST /Assets #
GET /Assets/{assetPK} #
PUT /Assets/{assetPK} #
POST /Assets/{assetPK} #
GET /Assets/{assetPK}/specifications/{PK} #
PUT /Assets/{assetPK}/specifications/{PK} #
GET /Assets/{assetPK}/specifications #
POST /Assets/{assetPK}/specifications #
GET /AssetSpecifications #
PUT /AssetSpecifications #
GET /AssetSpecifications/{assetPK} #
PUT /AssetSpecifications/{assetPK} #
POST /AssetSpecifications/{assetPK} #
GET /classifications #
PUT /classifications #
POST /classifications #
GET /classifications/{classificationPK} #
PUT /classifications/{classificationPK} #
GET /Companies #
PUT /Companies #
POST /Companies #
GET /Companies/{companyPK} #
PUT /Companies/{companyPK} #
GET /ExternalInterface #
POST /ExternalInterface #
GET /ExternalInterface/{externalInterfacePK} #
PUT /ExternalInterface/{externalInterfacePK} #
GET /Invoices #
PUT /Invoices #
POST /Invoices #
GET /Invoices/{invoicePK} #
PUT /Invoices/{invoicePK} #
GET /PurchaseOrders/{purchaseOrderPK}/Invoices/{invoicePK} #
PUT /PurchaseOrders/{purchaseOrderPK}/Invoices/{invoicePK} #
GET /PurchaseOrders/{purchaseOrderPK}/Invoices #
POST /PurchaseOrders/{purchaseOrderPK}/Invoices #
GET /Labors #
PUT /Labors #
POST /Labors #
GET /Labors/{laborPK} #
PUT /Labors/{laborPK} #
POST /Labors/{laborPK} #
GET /Logs #
POST /Logs #
GET /Logs/{logPK} #
GET /LookupTables #
PUT /LookupTables #
POST /LookupTables #
GET /LookupTables/{lookupTableID} #
PUT /LookupTables/{lookupTableID} #
GET /LookupTables/{lookupTableID}/values #
POST /LookupTables/{lookupTableID}/values #
GET /LookupTables/{lookupTableID}/values/{codeName} #
PUT /LookupTables/{lookupTableID}/values/{codeName} #
GET /LookupTableValues #
PUT /LookupTableValues #
GET /LookupTableValues/{lookupTableID} #
PUT /LookupTableValues/{lookupTableID} #
POST /LookupTableValues/{lookupTableID} #
GET /Parts/{partPK}/documents #
POST /Parts/{partPK}/documents #
GET /Parts/{partPK}/documents/{PK} #
GET /PartDocuments #
GET /PartDocuments/{partPK} #
POST /PartDocuments/{partPK} #
GET /Parts/{partPK}/locations #
POST /Parts/{partPK}/locations #
GET /Parts/{partPK}/locations/{partLocationPK} #
PUT /Parts/{partPK}/locations/{partLocationPK} #
GET /PartLocations #
PUT /PartLocations #
POST /PartLocations #
GET /PartLocations/{partLocationPK} #
PUT /PartLocations/{partLocationPK} #
GET /Parts #
PUT /Parts #
POST /Parts #
GET /Parts/{partPK} #
PUT /Parts/{partPK} #
POST /Parts/{partPK} #
GET /Parts/{partPK}/transactions #
POST /Parts/{partPK}/transactions #
GET /Parts/{partPK}/transactions/{partTransactionPK} #
GET /PartTransactions #
POST /PartTransactions #
GET /PartTransactions/{partTransactionPK} #
GET /Parts/{partPK}/vendors #
POST /Parts/{partPK}/vendors #
GET /Parts/{partPK}/vendors/{partVendorPK} #
PUT /Parts/{partPK}/vendors/{partvendorPK} #
GET /PartVendors #
PUT /PartVendors #
POST /PartVendors #
GET /PartVendors/{partVendorPK} #
PUT /PartVendors/{partvendorPK} #
GET /PurchaseOrderLineItems #
PUT /PurchaseOrderLineItems #
POST /PurchaseOrderLineItems #
GET /PurchaseOrderLineItems/{lineItemPK} #
PUT /PurchaseOrderLineItems/{lineItemPK} #
GET /PurchaseOrders/{purchaseOrderPK}/LineItems/{lineItemPK} #
PUT /PurchaseOrders/{purchaseOrderPK}/LineItems/{lineItemPK} #
GET /PurchaseOrders/{purchaseOrderPK}/LineItems #
POST /PurchaseOrders/{purchaseOrderPK}/LineItems #
GET /PurchaseOrderNote #
POST /PurchaseOrderNote #
GET /PurchaseOrderNote/{purchaseOrderNotePK} #
GET /PurchaseOrders/{purchaseOrderPK}/Notes #
GET /purchaseorders #
PUT /purchaseorders #
POST /purchaseorders #
GET /purchaseorders/{purchaseOrderPK} #
PUT /purchaseorders/{purchaseOrderPK} #
GET /PurchaseOrders/{purchaseOrderPK}/StatusUpdates #
GET /ReceiptLineItems #
PUT /ReceiptLineItems #
POST /ReceiptLineItems #
GET /ReceiptLineItems/{lineItemPK} #
PUT /ReceiptLineItems/{lineItemPK} #
GET /PurchaseOrders/{purchaseOrderPK}/Receipts/{receiptPK}/LineItems/{lineItemPK} #
PUT /PurchaseOrders/{purchaseOrderPK}/Receipts/{receiptPK}/LineItems/{lineItemPK} #
GET /PurchaseOrders/{purchaseOrderPK}/Receipts/{receiptPK}/LineItems #
POST /PurchaseOrders/{purchaseOrderPK}/Receipts/{receiptPK}/LineItems #
GET /Receipts #
PUT /Receipts #
POST /Receipts #
GET /Receipts/{receiptPK} #
PUT /Receipts/{receiptPK} #
GET /PurchaseOrders/{purchaseOrderPK}/Receipts/{receiptPK} #
PUT /PurchaseOrders/{purchaseOrderPK}/Receipts/{receiptPK} #
GET /PurchaseOrders/{purchaseOrderPK}/Receipts #
POST /PurchaseOrders/{purchaseOrderPK}/Receipts #
GET /Schema/{model} #
GET /specifications/{specificationPK}/AssetSpecifications #
GET /specifications/{specificationPK}/AssetSpecifications/{assetspecPK} #
GET /specifications #
GET /specifications/{specificationPK} #
GET /WorkOrders/{workOrderPK}/Assignments/{assignmentPK} #
PUT /WorkOrders/{workOrderPK}/Assignments/{assignmentPK} #
GET /WorkOrders/{workOrderPK}/Assignments #
POST /WorkOrders/{workOrderPK}/Assignments #
GET /WorkOrderAssignments #
PUT /WorkOrderAssignments #
POST /WorkOrderAssignments #
GET /WorkOrderAssignments/{assignmentPK} #
PUT /WorkOrderAssignments/{assignmentPK} #
GET /WorkOrders/{workOrderPK}/documents #
POST /WorkOrders/{workOrderPK}/documents #
GET /WorkOrders/{workOrderPK}/documents/{PK} #
GET /WorkOrderDocuments #
GET /WorkOrderDocuments/{workOrderPK} #
POST /WorkOrderDocuments/{workOrderPK} #
GET /WorkOrders/{workOrderPK}/images #
POST /WorkOrders/{workOrderPK}/images #
GET /WorkOrders/{workOrderPK}/images/{imagePK} #
GET /WorkOrderImages #
GET /WorkOrderImages/{workOrderPK} #
POST /WorkOrderImages/{workOrderPK} #
GET /WorkOrders/{workOrderPK}/LaborActuals/{costPK} #
PUT /WorkOrders/{workOrderPK}/LaborActuals/{costPK} #
GET /WorkOrders/{workOrderPK}/LaborActuals #
POST /WorkOrders/{workOrderPK}/LaborActuals #
GET /WorkOrderLaborActuals #
PUT /WorkOrderLaborActuals #
POST /WorkOrderLaborActuals #
GET /WorkOrderLaborActuals/{costPK} #
PUT /WorkOrderLaborActuals/{costPK} #
GET /WorkOrders/{workOrderPK}/LaborEstimates/{costPK} #
PUT /WorkOrders/{workOrderPK}/LaborEstimates/{costPK} #
GET /WorkOrders/{workOrderPK}/LaborEstimates #
POST /WorkOrders/{workOrderPK}/LaborEstimates #
GET /WorkOrderLaborEstimates #
PUT /WorkOrderLaborEstimates #
POST /WorkOrderLaborEstimates #
GET /WorkOrderLaborEstimates/{costPK} #
PUT /WorkOrderLaborEstimates/{costPK} #
GET /WorkOrders/{workOrderPK}/MiscActuals/{costPK} #
PUT /WorkOrders/{workOrderPK}/MiscActuals/{costPK} #
GET /WorkOrders/{workOrderPK}/MiscActuals #
POST /WorkOrders/{workOrderPK}/MiscActuals #
GET /WorkOrderMiscActuals #
PUT /WorkOrderMiscActuals #
POST /WorkOrderMiscActuals #
GET /WorkOrderMiscActuals/{costPK} #
PUT /WorkOrderMiscActuals/{costPK} #
GET /WorkOrders/{workOrderPK}/MiscEstimates/{costPK} #
PUT /WorkOrders/{workOrderPK}/MiscEstimates/{costPK} #
GET /WorkOrders/{workOrderPK}/MiscEstimates #
POST /WorkOrders/{workOrderPK}/MiscEstimates #
GET /WorkOrderMiscEstimates #
PUT /WorkOrderMiscEstimates #
POST /WorkOrderMiscEstimates #
GET /WorkOrderMiscEstimates/{costPK} #
PUT /WorkOrderMiscEstimates/{costPK} #
GET /WorkOrders/{workOrderPK}/PartActuals/{PK} #
PUT /WorkOrders/{workOrderPK}/PartActuals/{PK} #
GET /WorkOrders/{workOrderPK}/PartActuals #
POST /WorkOrders/{workOrderPK}/PartActuals #
GET /WorkOrderPartActuals #
PUT /WorkOrderPartActuals #
POST /WorkOrderPartActuals #
GET /WorkOrderPartActuals/{PK} #
PUT /WorkOrderPartActuals/{PK} #
GET /WorkOrders/{workOrderPK}/PartEstimates/{PK} #
PUT /WorkOrders/{workOrderPK}/PartEstimates/{PK} #
GET /WorkOrders/{workOrderPK}/PartEstimates #
POST /WorkOrders/{workOrderPK}/PartEstimates #
GET /WorkOrderPartEstimates #
PUT /WorkOrderPartEstimates #
POST /WorkOrderPartEstimates #
GET /WorkOrderPartEstimates/{PK} #
PUT /WorkOrderPartEstimates/{PK} #
GET /workorders #
PUT /workorders #
POST /workorders #
GET /workorders/{workOrderPK} #
PUT /workorders/{workOrderPK} #
GET /WorkOrders/{workOrderPK}/StatusUpdates #
GET /WorkOrders/{workOrderPK}/Tasks/{taskPK} #
PUT /WorkOrders/{workOrderPK}/Tasks/{taskPK} #
GET /WorkOrders/{workOrderPK}/Tasks #
POST /WorkOrders/{workOrderPK}/Tasks #
GET /WorkOrderTasks #

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/maintenance-connection-web-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

accruent-maintenance-connection-openapi.yml Raw ↑
# Accruent Maintenance Connection Web API v8 — verbatim YAML serialization of the
# Swagger 2.0 document Accruent publishes at
# https://api.maintenanceconnection.com/v8/swagger/docs/v8 (fetched 2026-09-06, HTTP 200).
# No content was added, removed or edited; only the serialization format differs.
# Raw source: openapi/_original/accruent-maintenance-connection-v8-swagger-original.json
swagger: '2.0'
info:
  version: v8
  title: Maintenance Connection REST API
host: api.maintenanceconnection.com:80
basePath: /v8
schemes:
- https
paths:
  /Assets/{assetPK}/documents:
    get:
      tags:
      - AssetDocuments
      operationId: AssetDocuments_Get
      consumes: []
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: assetPK
        in: path
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/ApiResponse'
    post:
      tags:
      - AssetDocuments
      operationId: AssetDocuments_Post
      consumes: []
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: assetPK
        in: path
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/ApiResponse'
  /Assets/{assetPK}/documents/{PK}:
    get:
      tags:
      - AssetDocuments
      operationId: AssetDocuments_Get
      consumes: []
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: assetPK
        in: path
        required: true
        type: integer
        format: int32
      - name: PK
        in: path
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/ApiResponse'
  /AssetDocuments:
    get:
      tags:
      - AssetDocuments
      operationId: AssetDocuments_Get
      consumes: []
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/ApiResponse'
  /AssetDocuments/{assetPK}:
    get:
      tags:
      - AssetDocuments
      operationId: AssetDocuments_Get
      consumes: []
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: assetPK
        in: path
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/ApiResponse'
    post:
      tags:
      - AssetDocuments
      operationId: AssetDocuments_Post
      consumes: []
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: assetPK
        in: path
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/ApiResponse'
  /Assets/{assetPK}/images:
    get:
      tags:
      - AssetImages
      operationId: AssetImages_Get
      consumes: []
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: assetPK
        in: path
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/ApiResponse'
    post:
      tags:
      - AssetImages
      operationId: AssetImages_Post
      consumes: []
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: assetPK
        in: path
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/ApiResponse'
  /Assets/{assetPK}/images/{imagePK}:
    get:
      tags:
      - AssetImages
      operationId: AssetImages_Get
      consumes: []
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: assetPK
        in: path
        required: true
        type: integer
        format: int32
      - name: imagePK
        in: path
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/ApiResponse'
  /AssetImages:
    get:
      tags:
      - AssetImages
      operationId: AssetImages_Get
      consumes: []
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/ApiResponse'
  /AssetImages/{assetPK}:
    get:
      tags:
      - AssetImages
      operationId: AssetImages_Get
      consumes: []
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: assetPK
        in: path
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/ApiResponse'
    post:
      tags:
      - AssetImages
      operationId: AssetImages_Post
      consumes: []
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: assetPK
        in: path
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/ApiResponse'
  /Assets/{assetPK}/meterhistory:
    get:
      tags:
      - AssetMeterHistory
      operationId: AssetMeterHistory_GetMeterHistoryForAsset
      consumes: []
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: assetPK
        in: path
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/ApiResponse'
    post:
      tags:
      - AssetMeterHistory
      operationId: AssetMeterHistory_Post
      consumes:
      - application/json
      - text/json
      - application/xml
      - text/xml
      - application/x-www-form-urlencoded
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: assetPK
        in: path
        required: true
        type: integer
        format: int32
      - name: newMeterHistory
        in: body
        required: true
        schema:
          type: array
          items:
            $ref: '#/definitions/AssetMeterHistoryViewModel'
      responses:
        '200':
          description: OK
          schema:
            type: object
  /Assets/{assetPK}/meterhistory/{historyPK}:
    get:
      tags:
      - AssetMeterHistory
      operationId: AssetMeterHistory_GetMeterHistoryRecord
      consumes: []
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: assetPK
        in: path
        required: true
        type: integer
        format: int32
      - name: historyPK
        in: path
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/ApiResponse'
    put:
      tags:
      - AssetMeterHistory
      operationId: AssetMeterHistory_Put
      consumes:
      - application/json
      - text/json
      - application/xml
      - text/xml
      - application/x-www-form-urlencoded
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: assetPK
        in: path
        required: true
        type: integer
        format: int32
      - name: historyPK
        in: path
        required: true
        type: integer
        format: int32
      - name: updatedViewModel
        in: body
        required: true
        schema:
          $ref: '#/definitions/AssetMeterHistoryViewModel'
      responses:
        '200':
          description: OK
          schema:
            type: object
  /Assets/{assetPK}/meternumberhistory:
    get:
      tags:
      - AssetMeterHistory
      operationId: AssetMeterHistory_GetMeterHistoryForAsset
      consumes: []
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: assetPK
        in: path
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/ApiResponse'
    put:
      tags:
      - AssetMeterHistory
      operationId: AssetMeterHistory_Put
      consumes:
      - application/json
      - text/json
      - application/xml
      - text/xml
      - application/x-www-form-urlencoded
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: assetPK
        in: path
        required: true
        type: integer
        format: int32
      - name: historyPK
        in: query
        required: true
        type: integer
        format: int32
      - name: updatedViewModel
        in: body
        required: true
        schema:
          $ref: '#/definitions/AssetMeterHistoryViewModel'
      responses:
        '200':
          description: OK
          schema:
            type: object
    post:
      tags:
      - AssetMeterHistory
      operationId: AssetMeterHistory_Post
      consumes:
      - application/json
      - text/json
      - application/xml
      - text/xml
      - application/x-www-form-urlencoded
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: assetPK
        in: path
        required: true
        type: integer
        format: int32
      - name: newMeterHistory
        in: body
        required: true
        schema:
          type: array
          items:
            $ref: '#/definitions/AssetMeterHistoryViewModel'
      responses:
        '200':
          description: OK
          schema:
            type: object
  /Assets/{assetPK}/meternumberhistory/{meterNumber}:
    get:
      tags:
      - AssetMeterHistory
      operationId: AssetMeterHistory_GetMeterNumberHistory
      consumes: []
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: assetPK
        in: path
        required: true
        type: integer
        format: int32
      - name: meterNumber
        in: path
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/ApiResponse'
  /AssetMeterHistory:
    get:
      tags:
      - AssetMeterHistory
      operationId: AssetMeterHistory_GetMeterHistory
      consumes: []
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/ApiResponse'
    put:
      tags:
      - AssetMeterHistory
      operationId: AssetMeterHistory_Put
      consumes:
      - application/json
      - text/json
      - application/xml
      - text/xml
      - application/x-www-form-urlencoded
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: updViews
        in: body
        required: true
        schema:
          type: array
          items:
            $ref: '#/definitions/AssetMeterHistoryViewModel'
      responses:
        '200':
          description: OK
          schema:
            type: object
  /AssetMeterHistory/{assetPK}:
    get:
      tags:
      - AssetMeterHistory
      operationId: AssetMeterHistory_GetMeterHistoryForAsset
      consumes: []
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: assetPK
        in: path
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/ApiResponse'
    put:
      tags:
      - AssetMeterHistory
      operationId: AssetMeterHistory_Put
      consumes:
      - application/json
      - text/json
      - application/xml
      - text/xml
      - application/x-www-form-urlencoded
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: assetPK
        in: path
        required: true
        type: integer
        format: int32
      - name: historyPK
        in: query
        required: true
        type: integer
        format: int32
      - name: updatedViewModel
        in: body
        required: true
        schema:
          $ref: '#/definitions/AssetMeterHistoryViewModel'
      responses:
        '200':
          description: OK
          schema:
            type: object
    post:
      tags:
      - AssetMeterHistory
      operationId: AssetMeterHistory_Post
      consumes:
      - application/json
      - text/json
      - application/xml
      - text/xml
      - application/x-www-form-urlencoded
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: assetPK
        in: path
        required: true
        type: integer
        format: int32
      - name: newMeterHistory
        in: body
        required: true
        schema:
          type: array
          items:
            $ref: '#/definitions/AssetMeterHistoryViewModel'
      responses:
        '200':
          description: OK
          schema:
            type: object
  /Assets:
    get:
      tags:
      - Assets
      operationId: Assets_Get
      consumes: []
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/ApiResponse'
    put:
      tags:
      - Assets
      operationId: Assets_Put
      consumes:
      - application/json
      - text/json
      - application/xml
      - text/xml
      - application/x-www-form-urlencoded
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: updViews
        in: body
        required: true
        schema:
          type: array
          items:
            $ref: '#/definitions/AssetViewModel'
      responses:
        '200':
          description: OK
          schema:
            type: object
    post:
      tags:
      - Assets
      operationId: Assets_Post
      consumes:
      - application/json
      - text/json
      - application/xml
      - text/xml
      - application/x-www-form-urlencoded
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: newAssets
        in: body
        required: true
        schema:
          type: array
          items:
            $ref: '#/definitions/AssetViewModel'
      responses:
        '200':
          description: OK
          schema:
            type: object
  /Assets/{assetPK}:
    get:
      tags:
      - Assets
      operationId: Assets_Get
      consumes: []
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: assetPK
        in: path
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/ApiResponse'
    put:
      tags:
      - Assets
      operationId: Assets_Put
      consumes:
      - application/json
      - text/json
      - application/xml
      - text/xml
      - application/x-www-form-urlencoded
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: assetPK
        in: path
        required: true
        type: integer
        format: int32
      - name: updatedViewModel
        in: body
        required: true
        schema:
          $ref: '#/definitions/AssetViewModel'
      responses:
        '200':
          description: OK
          schema:
            type: object
    post:
      tags:
      - Assets
      operationId: Assets_Post
      consumes: []
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: assetPK
        in: path
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: OK
          schema:
            type: object
  /Assets/{assetPK}/specifications/{PK}:
    get:
      tags:
      - AssetSpecifications
      operationId: AssetSpecifications_Get
      consumes: []
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: assetPK
        in: path
        required: true
        type: integer
        format: int32
      - name: PK
        in: path
        required: true
        type: integer
        format: int64
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/ApiResponse'
    put:
      tags:
      - AssetSpecifications
      operationId: AssetSpecifications_Put
      consumes:
      - application/json
      - text/json
      - application/xml
      - text/xml
      - application/x-www-form-urlencoded
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: assetPK
        in: path
        required: true
        type: integer
        format: int32
      - name: PK
        in: path
        required: true
        type: integer
        format: int64
      - name: updatedViewModel
        in: body
        required: true
        schema:
          $ref: '#/definitions/AssetSpecificationViewModel'
      responses:
        '200':
          description: OK
          schema:
            type: object
  /Assets/{assetPK}/specifications:
    get:
      tags:
      - AssetSpecifications
      operationId: AssetSpecifications_GetSpecificationsForAsset
      consumes: []
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: assetPK
        in: path
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/ApiResponse'
    post:
      tags:
      - AssetSpecifications
      operationId: AssetSpecifications_Post
      consumes:
      - application/json
      - text/json
      - application/xml
      - text/xml
      - application/x-www-form-urlencoded
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: assetPK
        in: path
        required: true
        type: integer
        format: int32
      - name: newAssetSpecs
        in: body
        required: true
        schema:
          type: array
          items:
            $ref: '#/definitions/AssetSpecificationViewModel'
      responses:
        '200':
          description: OK
          schema:
            type: object
  /AssetSpecifications:
    get:
      tags:
      - AssetSpecifications
      operationId: AssetSpecifications_Get
      consumes: []
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/ApiResponse'
    put:
      tags:
      - AssetSpecifications
      operationId: AssetSpecifications_Put
      consumes:
      - application/json
      - text/json
      - application/xml
      - text/xml
      - application/x-www-form-urlencoded
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: updViews
        in: body
        required: true
        schema:
          type: array
          items:
            $ref: '#/definitions/AssetSpecificationViewModel'
      responses:
        '200':
          description: OK
          schema:
            type: object
  /AssetSpecifications/{assetPK}:
    get:
      tags:
      - AssetSpecifications
      operationId: AssetSpecifications_Get
      consumes: []
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: assetPK
        in: path
        required: true
        type: integer
        format: int32
      - name: PK
        in: query
        required: true
        type: integer
        format: int64
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/ApiResponse'
    put:
      tags:
      - AssetSpecifications
      operationId: AssetSpecifications_Put
      consumes:
      - application/json
      - text/json
      - application/xml
      - text/xml
      - application/x-www-form-urlencoded
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: assetPK
        in: path
        required: true
        type: integer
        format: int32
      - name: PK
        in: query
        required: true
        type: integer
        format: int64
      - name: updatedViewModel
        in: body
        required: true
        schema:
          $ref: '#/definitions/AssetSpecificationViewModel'
      responses:
        '200':
          description: OK
          schema:
            type: object
    post:
      tags:
      - AssetSpecifications
      operationId: AssetSpecifications_Post
      consumes:
      - application/json
      - text/json
      - application/xml
      - text/xml
      - application/x-www-form-urlencoded
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: assetPK
        in: path
        required: true
        type: integer
        format: int32
      - name: newAssetSpecs
        in: body
        required: true
        schema:
          type: array
          items:
            $ref: '#/definitions/AssetSpecificationViewModel'
      responses:
        '200':
          description: OK
          schema:
            type: object
  /classifications:
    get:
      tags:
      - Classifications
      operationId: Classifications_Get
      consumes: []
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/ApiResponse'
    put:
      tags:
      - Classifications
      operationId: Classifications_Put
      consumes:
      - application/json
      - text/json
      - application/xml
      - text/xml
      - application/x-www-form-urlencoded
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: updViews
        in: body
        required: true
        schema:
          type: array
          items:
            $ref: '#/definitions/ClassificationViewModel'
      responses:
        '200':
          description: OK
          schema:
            type: object
    post:
      tags:
      - Classifications
      operationId: Classifications_Post
      consumes:
      - application/json
      - text/json
      - application/xml
      - text/xml
      - application/x-www-form-urlencoded
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: newClassifications
        in: body
        required: true
        schema:
          type: array
          items:
            $ref: '#/definitions/ClassificationViewModel'
      responses:
        '200':
          description: OK
          schema:
            type: object
  /classifications/{classificationPK}:
    get:
      tags:
      - Classifications
      operationId: Classifications_Get
      consumes: []
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: classificationPK
        in: path
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/ApiResponse'
    put:
      tags:
      - Classifications
      operationId: Classifications_Put
      consumes:
      - application/json
      - text/json
      - application/xml
      - text/xml
      - application/x-www-form-urlencoded
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: classificationPK
        in: path
        required: true
        type: integer
        format: int32
      - name: updatedViewModel
        in: body
        required: true
        schema:
          $ref: '#/definitions/ClassificationViewModel'
      responses:
        '200':
          description: OK
          schema:
            type: object
  /Companies:
    get:
      tags:
      - Companies
      operationId: Companies_Get
      consumes: []
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/ApiResponse'
    put:
      tags:
      - Companies
      operationId: Companies_Put
      consumes:
      - application/json
      - text/json
      - application/xml
      - text/xml
      - application/x-www-form-urlencoded
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: updViews
        in: body
        required: true
        schema:
          type: array
          items:
            $ref: '#/definitions/CompanyViewModel'
      responses:
        '200':
          description: OK
          schema:
            type: object
    post:
      tags:
      - Companies
      operationId: Companies_Post
      consumes:
      - application/json
      - text/json
      - application/xml
      - text/xml
      - application/x-www-form-urlencoded
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: newCompanies
        in: body
        required: true
        schema:
          type: array
          items:
            $ref: '#/definitions/CompanyViewModel'
      responses:
        '200':
          description: OK
          schema:
            type: object
  /Companies/{companyPK}:
    get:
      tags:
      - Companies
      operationId: Companies_Get
      consumes: []
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: companyPK
        in: path
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/ApiResponse'
    put:
      tags:
      - Companies
      operationId: Companies_Put
      consumes:
      - application/json
      - text/json
      - application/xml
      - text/xml
      - application/x-www-form-urlencoded
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: companyPK
        in: path
        required: true
        type: integer
        format: int32
      - name: updatedViewModel
        in: body
        required: true
        schema:
          $ref: '#/definitions/CompanyViewModel'
      responses:
        '200':
          description: OK
          schema:
            type: object
  /ExternalInterface:
    get:
      tags:
      - ExternalInterface
      operationId: ExternalInterface_Get
      consumes: []
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/ApiResponse'
    post:
      tags:
      - ExternalInterface
      operationId: ExternalInterface_Post
      consumes:
      - application/json
      - text/json
      - application/xml
      - text/xml
      - application/x-www-form-urlencoded
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: _externalInterfaces
        in: body
        required: true
        schema:
          type: array
          items:
            $ref: '#/definitions/ExternalInterface'
      responses:
        '200':
          description: OK
          schema:
            type: object
  /ExternalInterface/{externalInterfacePK}:
    get:
      tags:
      - ExternalInterface
      operationId: ExternalInterface_Get
      consumes: []
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: externalInterfacePK
        in: path
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/ApiResponse'
    put:
      tags:
      - ExternalInterface
      operationId: ExternalInterface_Put
      consumes:
      - application/json
      - text/json
      - application/xml
      - text/xml
      - application/x-www-form-urlencoded
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: externalInterfacePK
        in: path
        required: true
        type: integer
        format: int32
      - name: updatedViewModel
        in: body
        required: true
        schema:
          $ref: '#/definitions/ExternalInterfaceViewModel'
      responses:
        '200':
          description: OK
          schema:
            type: object
  /Invoices:
    get:
      tags:
      - Invoices
      operationId: Invoices_Get
      consumes: []
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/ApiResponse'
    put:
      tags:
      - Invoices
      operationId: Invoices_Put
      consumes:
      - application/json
      - text/json
      - application/xml
      - text/xml
      - application/x-www-form-urlencoded
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: updViews
        in: body
        required: true
        schema:
          type: array
          items:
            $ref: '#/definitions/InvoiceViewModel'
      responses:
        '200':
          description: OK
          schema:
            type: object
    post:
      tags:
      - Invoices
      operationId: Invoices_Post
      consumes:
      - application/json
      - text/json
      - application/xml
      - text/xml
      - application/x-www-form-urlencoded
      produces:
      - application/json
      - text/json
      - application/xml
      - text/xml
      parameters:
      - name: purchaseOrderPK
        in: query
        required: true
        type: integer
        format: int32
      - name: newInvoices
        in: body
        required: true
        schema:
          type: array
          items:
            $ref: '#/definitions/InvoiceViewModel'
      responses:
        '200':
          description: OK
          schema:
            type: object
  /Invoices/{invoicePK}:
    get:
      tags:
      - Invoices
      operationId: Invoices_Get
      

# --- truncated at 32 KB (213 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/accruent/refs/heads/main/openapi/accruent-maintenance-connection-openapi.yml