UpKeep · Capability

UpKeep API — Work Orders

UpKeep API — Work Orders. 5 operations. Lead operation: List Work Orders. Self-contained Naftiko capability covering one Upkeep business surface.

Run with Naftiko UpkeepWork Orders

What You Can Do

GET
Listworkorders — List Work Orders
/v1/work-orders
POST
Createworkorder — Create Work Order
/v1/work-orders
GET
Getworkorder — Get Work Order
/v1/work-orders/{id}
PATCH
Updateworkorder — Update Work Order
/v1/work-orders/{id}
DELETE
Deleteworkorder — Delete Work Order
/v1/work-orders/{id}

MCP Tools

list-work-orders

List Work Orders

read-only idempotent
create-work-order

Create Work Order

get-work-order

Get Work Order

read-only idempotent
update-work-order

Update Work Order

idempotent
delete-work-order

Delete Work Order

idempotent

Capability Spec

upkeep-work-orders.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: UpKeep API — Work Orders
  description: 'UpKeep API — Work Orders. 5 operations. Lead operation: List Work Orders. Self-contained Naftiko capability
    covering one Upkeep business surface.'
  tags:
  - Upkeep
  - Work Orders
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    UPKEEP_API_KEY: UPKEEP_API_KEY
capability:
  consumes:
  - type: http
    namespace: upkeep-work-orders
    baseUri: https://api.onupkeep.com/api/v2
    description: UpKeep API — Work Orders business capability. Self-contained, no shared references.
    resources:
    - name: work-orders
      path: /work-orders
      operations:
      - name: listworkorders
        method: GET
        description: List Work Orders
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: page
          in: query
          type: integer
          description: Pagination offset (number of records to skip)
        - name: limit
          in: query
          type: integer
          description: Number of records to return
        - name: status
          in: query
          type: string
          description: Filter by work order status
        - name: priority
          in: query
          type: string
          description: Filter by priority level
        - name: includes
          in: query
          type: string
          description: Comma-separated list of related resources to include (e.g., assignedTo,location,asset)
        - name: sort
          in: query
          type: string
          description: Sort field and direction (e.g., createdAt:desc)
      - name: createworkorder
        method: POST
        description: Create Work Order
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: work-orders-id
      path: /work-orders/{id}
      operations:
      - name: getworkorder
        method: GET
        description: Get Work Order
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Work order identifier
          required: true
        - name: includes
          in: query
          type: string
          description: Related resources to include
      - name: updateworkorder
        method: PATCH
        description: Update Work Order
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: deleteworkorder
        method: DELETE
        description: Delete Work Order
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
    authentication:
      type: apikey
      key: session-token
      value: '{{env.UPKEEP_API_KEY}}'
      placement: header
  exposes:
  - type: rest
    namespace: upkeep-work-orders-rest
    port: 8080
    description: REST adapter for UpKeep API — Work Orders. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/work-orders
      name: work-orders
      description: REST surface for work-orders.
      operations:
      - method: GET
        name: listworkorders
        description: List Work Orders
        call: upkeep-work-orders.listworkorders
        with:
          page: rest.page
          limit: rest.limit
          status: rest.status
          priority: rest.priority
          includes: rest.includes
          sort: rest.sort
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createworkorder
        description: Create Work Order
        call: upkeep-work-orders.createworkorder
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/work-orders/{id}
      name: work-orders-id
      description: REST surface for work-orders-id.
      operations:
      - method: GET
        name: getworkorder
        description: Get Work Order
        call: upkeep-work-orders.getworkorder
        with:
          id: rest.id
          includes: rest.includes
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: updateworkorder
        description: Update Work Order
        call: upkeep-work-orders.updateworkorder
        with:
          id: rest.id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deleteworkorder
        description: Delete Work Order
        call: upkeep-work-orders.deleteworkorder
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: upkeep-work-orders-mcp
    port: 9090
    transport: http
    description: MCP adapter for UpKeep API — Work Orders. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: list-work-orders
      description: List Work Orders
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: upkeep-work-orders.listworkorders
      with:
        page: tools.page
        limit: tools.limit
        status: tools.status
        priority: tools.priority
        includes: tools.includes
        sort: tools.sort
      outputParameters:
      - type: object
        mapping: $.
    - name: create-work-order
      description: Create Work Order
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: upkeep-work-orders.createworkorder
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-work-order
      description: Get Work Order
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: upkeep-work-orders.getworkorder
      with:
        id: tools.id
        includes: tools.includes
      outputParameters:
      - type: object
        mapping: $.
    - name: update-work-order
      description: Update Work Order
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: upkeep-work-orders.updateworkorder
      with:
        id: tools.id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-work-order
      description: Delete Work Order
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: upkeep-work-orders.deleteworkorder
      with:
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.