Coperniq workOrders API

The workOrders API from Coperniq — 9 operation(s) for workorders.

Operations 15

GET /work-orders List Work Orders #
GET /projects/{projectId}/work-orders List Project Work Orders #
POST /projects/{projectId}/work-orders Create Project Work Order #
GET /opportunities/{opportunityId}/work-orders List Opportunity Work Orders #
POST /opportunities/{opportunityId}/work-orders Create Opportunity Work Order #
GET /accounts/{accountId}/work-orders List Account Work Orders #
POST /accounts/{accountId}/work-orders Create Account Work Order #
GET /work-orders/{workOrderId} Get Work Order #
GET /work-orders/templates List Work Order Templates #
PATCH /projects/{projectId}/work-orders/{workOrderId} Update Project Work Order #
DELETE /projects/{projectId}/work-orders/{workOrderId} Delete Project Work Order #
PATCH /opportunities/{opportunityId}/work-orders/{workOrderId} Update Opportunity Work Order #
DELETE /opportunities/{opportunityId}/work-orders/{workOrderId} Delete Opportunity Work Order #
PATCH /accounts/{accountId}/work-orders/{workOrderId} Update Account Work Order #
DELETE /accounts/{accountId}/work-orders/{workOrderId} Delete Account Work Order #

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/coperniq-workorders-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

coperniq-workorders-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Key accounts Work Orders API
  version: 1.0.0
servers:
- url: https://api.coperniq.io/v1
  description: Production server
tags:
- name: workOrders
paths:
  /work-orders:
    get:
      operationId: list-work-orders
      summary: List Work Orders
      description: 'Retrieve a paginated list of work orders across all projects.


        Supports:

        - Pagination (`page_size`, `page`)

        - Date filtering (`updated_after`, `updated_before`)

        - Sorting (`order_by`)

        '
      tags:
      - workOrders
      parameters:
      - name: page_size
        in: query
        description: Number of items per page (max 100)
        required: false
        schema:
          type: integer
          default: 20
      - name: page
        in: query
        description: Page number (1-based)
        required: false
        schema:
          type: integer
          default: 1
      - name: updated_after
        in: query
        description: Filter items updated after this timestamp (ISO 8601)
        required: false
        schema:
          type: string
          format: date-time
      - name: updated_before
        in: query
        description: Filter items updated before this timestamp (ISO 8601)
        required: false
        schema:
          type: string
          format: date-time
      - name: order_by
        in: query
        description: Sort order for results
        required: false
        schema:
          $ref: '#/components/schemas/WorkOrdersGetParametersOrderBy'
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
      responses:
        '200':
          description: List of work orders
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/WorkOrder'
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListWorkOrdersRequestUnauthorizedError'
  /projects/{projectId}/work-orders:
    get:
      operationId: list-project-work-orders
      summary: List Project Work Orders
      description: 'Retrieve work orders for a specific project.


        Supports:

        - Pagination (`page_size`, `page`)

        - Date filtering (`updated_after`, `updated_before`)

        - Sorting (`order_by`)

        '
      tags:
      - workOrders
      parameters:
      - name: projectId
        in: path
        description: Project identifier
        required: true
        schema:
          type: integer
      - name: page_size
        in: query
        description: Number of items per page (max 100)
        required: false
        schema:
          type: integer
          default: 20
      - name: page
        in: query
        description: Page number (1-based)
        required: false
        schema:
          type: integer
          default: 1
      - name: updated_after
        in: query
        description: Filter items updated after this timestamp (ISO 8601)
        required: false
        schema:
          type: string
          format: date-time
      - name: updated_before
        in: query
        description: Filter items updated before this timestamp (ISO 8601)
        required: false
        schema:
          type: string
          format: date-time
      - name: order_by
        in: query
        description: Sort order for results
        required: false
        schema:
          $ref: '#/components/schemas/ProjectsProjectIdWorkOrdersGetParametersOrderBy'
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
      responses:
        '200':
          description: List of work orders
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/WorkOrder'
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListProjectWorkOrdersRequestUnauthorizedError'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListProjectWorkOrdersRequestNotFoundError'
    post:
      operationId: create-project-work-order
      summary: Create Project Work Order
      description: 'Create a new work order in a project.


        Notes:

        - `templateId` is required.

        - `phaseInstanceId` is optional; if provided the referenced phase must be started (active) for creation to succeed.

        '
      tags:
      - workOrders
      parameters:
      - name: projectId
        in: path
        description: Project identifier
        required: true
        schema:
          type: integer
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Work order created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkOrderCreateResponse'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateProjectWorkOrderRequestBadRequestError'
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateProjectWorkOrderRequestUnauthorizedError'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateProjectWorkOrderRequestNotFoundError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                templateId:
                  type: integer
                  description: Template to use for the work order
                phaseInstanceId:
                  type: integer
                  description: Optional. Phase instance id where the work order will be created (phase must be started). You can gather phase instance ids from the get project endpoint.
              required:
              - templateId
  /opportunities/{opportunityId}/work-orders:
    get:
      operationId: list-opportunity-work-orders
      summary: List Opportunity Work Orders
      description: 'Retrieve work orders for a specific opportunity


        **Note:** The `/requests` path is an alias for `/opportunities` and will continue to work until users are individually notified and migrated.

        '
      tags:
      - workOrders
      parameters:
      - name: opportunityId
        in: path
        description: Opportunity identifier
        required: true
        schema:
          type: integer
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
      responses:
        '200':
          description: List of work orders
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/WorkOrder'
    post:
      operationId: create-opportunity-work-order
      summary: Create Opportunity Work Order
      description: 'Create a new work order for an opportunity.


        Notes:

        - `templateId` is required.

        - `phaseInstanceId` is optional. The phase does not need to be started to create an opportunity work order.


        **Note:** The `/requests` path is an alias for `/opportunities` and will continue to work until users are individually notified and migrated.

        '
      tags:
      - workOrders
      parameters:
      - name: opportunityId
        in: path
        description: Opportunity identifier
        required: true
        schema:
          type: integer
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Work order created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkOrderCreateResponse'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateOpportunityWorkOrderRequestBadRequestError'
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateOpportunityWorkOrderRequestUnauthorizedError'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateOpportunityWorkOrderRequestNotFoundError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                templateId:
                  type: integer
                  description: The ID of the work order template to use
                phaseInstanceId:
                  type: integer
                  description: Optional. The ID of the phase instance to use. If provided, the phase does not need to be started to create an opportunity work order. You can gather phase instance ids from the get opportunity endpoint.
              required:
              - templateId
  /accounts/{accountId}/work-orders:
    get:
      operationId: list-account-work-orders
      summary: List Account Work Orders
      description: 'Retrieve work orders for a specific account


        **Note:** The `/clients` path is an alias for `/accounts` and will continue to work until users are individually notified and migrated.

        '
      tags:
      - workOrders
      parameters:
      - name: accountId
        in: path
        description: Account identifier
        required: true
        schema:
          type: integer
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
      responses:
        '200':
          description: List of work orders
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/WorkOrder'
    post:
      operationId: create-account-work-order
      summary: Create Account Work Order
      description: 'Create a new work order for an account (no phases)


        **Note:** The `/clients` path is an alias for `/accounts` and will continue to work until users are individually notified and migrated.

        '
      tags:
      - workOrders
      parameters:
      - name: accountId
        in: path
        description: Account identifier
        required: true
        schema:
          type: integer
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Work order created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkOrderCreateResponse'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateAccountWorkOrderRequestBadRequestError'
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateAccountWorkOrderRequestUnauthorizedError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                templateId:
                  type: integer
              required:
              - templateId
  /work-orders/{workOrderId}:
    get:
      operationId: get-work-order
      summary: Get Work Order
      description: 'Retrieve a specific work order by ID.


        The `lineItems` property is returned **only** for service work orders on an **account** (parent project type `ACCOUNT`), and **only** when at least one line item exists. Otherwise the field is omitted from the JSON object.

        '
      tags:
      - workOrders
      parameters:
      - name: workOrderId
        in: path
        description: Work order identifier
        required: true
        schema:
          type: integer
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Work order details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkOrder'
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetWorkOrderRequestUnauthorizedError'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetWorkOrderRequestNotFoundError'
  /work-orders/templates:
    get:
      operationId: list-work-order-templates
      summary: List Work Order Templates
      description: Retrieve available work order templates. Returns all templates (not paginated).
      tags:
      - workOrders
      parameters:
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
      responses:
        '200':
          description: List of work order templates
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/WorkOrderTemplate'
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListWorkOrderTemplatesRequestUnauthorizedError'
  /projects/{projectId}/work-orders/{workOrderId}:
    patch:
      operationId: update-project-work-order
      summary: Update Project Work Order
      description: "Update a project's work order. Supports partial updates.\n\nUpdatable fields:\n- title, description, priority\n- startDate, endDate, startDateAllDay, endDateAllDay\n- status (label string)\n- assigneeId\n- visits: Only applicable on field work orders. When provided, the `visits` array REPLACES the full set of visits for the work order. Include all existing visits you wish to keep or update (with their `id`), and include new visits without an `id`. Any existing visit not included in the request will be removed. Visit booleans default to false when omitted.\n- checklist: Update the checklist for the work order.\n    When this field is provided, the `checklist` array REPLACES the full set of checklist items on the work order.\n    - Include every existing item you want to keep or modify (identified by `id`). \n    - Any existing item NOT included in this array will be removed.\n    - Each item MUST include an `id`. Items without an `id` are ignored (checklist item creation is not supported).\n"
      tags:
      - workOrders
      parameters:
      - name: projectId
        in: path
        description: Project identifier
        required: true
        schema:
          type: integer
      - name: workOrderId
        in: path
        description: Work order identifier
        required: true
        schema:
          type: integer
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Work order updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkOrder'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateProjectWorkOrderRequestBadRequestError'
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateProjectWorkOrderRequestUnauthorizedError'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateProjectWorkOrderRequestNotFoundError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkOrderUpdate'
    delete:
      operationId: delete-project-work-order
      summary: Delete Project Work Order
      description: Delete a specific work order from a project
      tags:
      - workOrders
      parameters:
      - name: projectId
        in: path
        description: Project identifier
        required: true
        schema:
          type: integer
      - name: workOrderId
        in: path
        description: Work order identifier
        required: true
        schema:
          type: integer
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful response
        '400':
          description: Invalid request (missing or invalid parameters)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteProjectWorkOrderRequestBadRequestError'
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteProjectWorkOrderRequestUnauthorizedError'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteProjectWorkOrderRequestNotFoundError'
  /opportunities/{opportunityId}/work-orders/{workOrderId}:
    patch:
      operationId: update-opportunity-work-order
      summary: Update Opportunity Work Order
      description: "Update an opportunity's work order. Supports partial updates.\n\n**Note:** The `/requests` path is an alias for `/opportunities` and will continue to work until users are individually notified and migrated.\n\nUpdatable fields:\n- title, description, priority\n- startDate, endDate, startDateAllDay, endDateAllDay\n- status (label string)\n- assigneeId\n- visits: Only applicable on field work orders. When provided, the `visits` array REPLACES the full set of visits for the work order. Include all existing visits you wish to keep or update (with their `id`), and include new visits without an `id`. Any existing visit not included in the request will be removed. Visit booleans default to false when omitted.\n- checklist: Update the checklist for the work order.\n    When this field is provided, the `checklist` array REPLACES the full set of checklist items on the work order.\n    - Include every existing item you want to keep or modify (identified by `id`). \n    - Any existing item NOT included in this array will be removed.\n    - Each item MUST include an `id`. Items without an `id` are ignored (checklist item creation is not supported).\n"
      tags:
      - workOrders
      parameters:
      - name: opportunityId
        in: path
        description: Opportunity identifier
        required: true
        schema:
          type: integer
      - name: workOrderId
        in: path
        description: Work order identifier
        required: true
        schema:
          type: integer
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Work order updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkOrder'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateOpportunityWorkOrderRequestBadRequestError'
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateOpportunityWorkOrderRequestUnauthorizedError'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateOpportunityWorkOrderRequestNotFoundError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkOrderUpdate'
    delete:
      operationId: delete-opportunity-work-order
      summary: Delete Opportunity Work Order
      description: 'Delete an opportunity''s work order by ID


        **Note:** The `/requests` path is an alias for `/opportunities` and will continue to work until users are individually notified and migrated.

        '
      tags:
      - workOrders
      parameters:
      - name: opportunityId
        in: path
        description: Opportunity identifier
        required: true
        schema:
          type: integer
      - name: workOrderId
        in: path
        description: Work order identifier
        required: true
        schema:
          type: integer
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful response
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteOpportunityWorkOrderRequestBadRequestError'
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteOpportunityWorkOrderRequestUnauthorizedError'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteOpportunityWorkOrderRequestNotFoundError'
  /accounts/{accountId}/work-orders/{workOrderId}:
    patch:
      operationId: update-account-work-order
      summary: Update Account Work Order
      description: "Update an account's work order. Supports partial updates.\n\n**Note:** The `/clients` path is an alias for `/accounts` and will continue to work until users are individually notified and migrated.\n\nUpdatable fields:\n- title, description, priority\n- startDate, endDate, startDateAllDay, endDateAllDay\n- status (label string)\n- assigneeId\n- visits: Only applicable on field work orders. When provided, the `visits` array REPLACES the full set of visits for the work order. Include all existing visits you wish to keep or update (with their `id`), and include new visits without an `id`. Any existing visit not included in the request will be removed. Visit booleans default to false when omitted.\n- checklist: Update the checklist for the work order.\n    When this field is provided, the `checklist` array REPLACES the full set of checklist items on the work order.\n    - Include every existing item you want to keep or modify (identified by `id`). \n    - Any existing item NOT included in this array will be removed.\n    - Each item MUST include an `id`. Items without an `id` are ignored (checklist item creation is not supported).\n\n**Line items** are not updated here. For account (service) work orders, replace quote line items with **`PUT /work-orders/{workOrderId}/line-items`** (see **Line Items** in this reference).\n"
      tags:
      - workOrders
      parameters:
      - name: accountId
        in: path
        description: Account identifier
        required: true
        schema:
          type: integer
      - name: workOrderId
        in: path
        description: Work order identifier
        required: true
        schema:
          type: integer
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Work order updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkOrder'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateAccountWorkOrderRequestBadRequestError'
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateAccountWorkOrderRequestUnauthorizedError'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateAccountWorkOrderRequestNotFoundError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkOrderUpdate'
    delete:
      operationId: delete-account-work-order
      summary: Delete Account Work Order
      description: 'Delete a specific work order for an account


        **Note:** The `/clients` path is an alias for `/accounts` and will continue to work until users are individually notified and migrated.

        '
      tags:
      - workOrders
      parameters:
      - name: accountId
        in: path
        description: Account identifier
        required: true
        schema:
          type: integer
      - name: workOrderId
        in: path
        description: Work order identifier
        required: true
        schema:
          type: integer
      - name: x-api-key
        in: header
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful response
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteAccountWorkOrderRequestBadRequestError'
        '401':
          description: Authentication failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteAccountWorkOrderRequestUnauthorizedError'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteAccountWorkOrderRequestNotFoundError'
components:
  schemas:
    ListProjectWorkOrdersRequestUnauthorizedError:
      type: object
      properties:
        message:
          type: string
        code:
          $ref: '#/components/schemas/ProjectsProjectIdWorkOrdersGetResponsesContentApplicationJsonSchemaCode'
      title: ListProjectWorkOrdersRequestUnauthorizedError
    CreateProjectWorkOrderRequestBadRequestError:
      type: object
      properties:
        message:
          type: string
        code:
          $ref: '#/components/schemas/ProjectsProjectIdWorkOrdersPostResponsesContentApplicationJsonSchemaCode'
        field:
          type: string
          description: Field that caused the validation error (if applicable)
      title: CreateProjectWorkOrderRequestBadRequestError
    WorkOrderLabelsItems:
      type: object
      properties:
        label:
          $ref: '#/components/schemas/WorkOrderLabelsItemsLabel'
      title: WorkOrderLabelsItems
    DeleteAccountWorkOrderRequestUnauthorizedError:
      type: object
      properties:
        message:
          type: string
        code:
          $ref: '#/components/schemas/AccountsAccountIdWorkOrdersWorkOrderIdDeleteResponsesContentApplicationJsonSchemaCode'
      title: DeleteAccountWorkOrderRequestUnauthorizedError
    CatalogCategoryCode:
      oneOf:
      - $ref: '#/components/schemas/ProductCategory'
      - $ref: '#/components/schemas/ServiceCategory'
      description: 'Catalog item category code.

        Must be:

        - one of `ProductCategory` when `type` is `PRODUCT`, or

        - one of `ServiceCategory` when `type` is `SERVICE`.

        '
      title: CatalogCategoryCode
    WorkOrderVisits:
      type: object
      properties:
        visits:
          type: array
          items:
            $ref: '#/components/schemas/Visit'
          description: List of visits
      description: Site visits associated with the work order (legacy shape)
      title: WorkOrderVisits
    ProjectsProjectIdWorkOrdersGetResponsesContentApplicationJsonSchemaCode:
      type: string
      enum:
      - NOT_FOUND
      title: ProjectsProjectIdWorkOrdersGetResponsesContentApplicationJsonSchemaCode
    GetWorkOrderRequestUnauthorizedError:
      type: object
      properties:
        message:
          type: string
        code:
          $ref: '#/components/schemas/WorkOrdersWorkOrderIdGetResponsesContentApplicationJsonSchemaCode'
      title: GetWorkOrderRequestUnauthorizedError
    WorkOrderFileRequestItemType:
      type: string
      enum:
      - FILE_REQUEST
      title: WorkOrderFileRequestItemType
    DeleteProjectWorkOrderRequestBadRequestError:
      type: object
      properties:
        message:
          type: string
        code:
          type: string
      title: DeleteProjectWorkOrderRequestBadRequestError
    ProductCategory:
      type: string
      enum:
      - BATTERY_SYSTEM
      - BATTERY_MANAGEMENT_SYSTEM
      - CHARGING_GATEWAY
      - COMBINER_BOX
      - EV_CHARGER
      - LOAD_CENTER
      - MICROINVERTER
      - MOUNTING
      - POWER_OPTIMIZER
      - PRODUCTION_METER
      - PV_INVERTER
      - PV_MODULE
      - RACKING
      - RAPID_SHUTDOWN_DEVICE
      - TRACKER
      - WEATHER_STATION
      - AIR_CONDITIONER
      - AIR_HANDLING_UNIT
      - BOILER
      - CHILLER
      - COOLING_TOWER
      - FAN
      - HEAT_EXCHANGER
      - HEAT_PUMP
      - MAKE_UP_AIR_UNIT
      - PUMP
      - ROOFTOP_UNIT
      - THERMOSTAT
      - VARIABLE_FREQUENCY_DRIVE
      - AUTOMATIC_TRANSFER_SWITCH
      - BREAKER
      - DISCONNECT_SWITCH
      - ELECTRIC_METER
      - GENERATOR
      - LIGHTING_PANEL
      - PANELBOARD
      - SWITCHGEAR
      - TRANSFORMER
      - UNINTERRUPTIBLE_POWER_SUPPLY
      - WIRE
      - BACKFLOW_PREVENTER
      - BOOSTER_PUMP
      - GREASE_INTERCEPTOR
      - STORAGE_TANK
      - SUMP_PUMP
      - VALVE
      - WATER_FILTRATION_SYSTEM
      - WATER_HEATER
      - WATER_SOFTENER
      - ACCESS_CONTROLLER
      - AUTOMATION_CONTROLLER
      - CAMERA
      - CARD_READER
      - DOOR_STRIKE
      - MAGLOCK
      - NETWORK_SWITCH
      - NETWORK_VIDEO_RECORDER
      - SENSOR
      - WIRELESS_ACCESS_POINT
      - ROOF_COVERING
      - ROOF_UNDERLAYMENT
      - ROOF_MEMBRANE
      - ROOF_FLASHING
      - ROOF_VENT
      - WALL_CLADDING
      - WALL_TRIM
      - WEATHER_BARRIER
      - WINDOW
      - EXTERIOR_DOOR
      - SKYLIGHT
      - OPENING_FLASHING
      - GUTTER
      - DOWNSPOUT
      - INSULATION
      - SEALANT
      - SHEATHING
      - OTHER
      description: Product catalog category.
      title: ProductCategory
    UserSummary:
      type: object
      properties:
        id:
          type: integer
        firstName:
          type:
          - string
          - 'null'
        lastName:
          type:
          - string
          - 'null'
        email:
          type:
          - string
          - 'null'
          format: email
        avatarUrl:
          type:
          - string
          - 'null'
      description: Minimal user representation used in responses
      title: UserSummary
    DeleteOpportunityWorkOrderRequestBadRequestError:
      type: object
      properties:
        message:
          type: string
        code:
          $ref: '#/components/schemas/OpportunitiesOpportunityIdWorkOrdersWorkOrderIdDeleteResponsesContentApplicationJsonSchemaCode'
        field:
          type: string
          description: Field that caused the validation error (if applicable)
      title: DeleteOpportunityWorkOrderRequestBadRequestErr

# --- truncated at 32 KB (65 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/coperniq/refs/heads/main/openapi/coperniq-workorders-api-openapi.yml