---
title: "Get work request"
method: GET
path: "/workrequests/{id}"
tags: ["Work Requests"]
---

# Get work request

`GET /workrequests/{id}`

## Path parameters

- `id` integer, required

## Query parameters

- `expand` string[] — To expand multiple fields: `expand=asset&expand=location`

## Response `200`

Successfully retrieved workRequest's information

- object
  - `workRequest` object, required
    - `id` number, required — Global ID of the work request
    - `title` string, required
    - `attachments` object[] — List of attachments linked to the Work Request
      - `id` number, required — Global ID of the attachment
      - `mimeType` string, required — MIME type of the file
      - `fileName` string, required — Attachment's file name
      - `url` string, required — Url of the file. Valid for 60 minutes.
      - `createdAt` string, date-time, required — Date & time at which the attachment was uploaded
      - `width` number, nullable — Width if the file is an image
      - `height` number, nullable — Height if the file is an image
    - `thumbnail` object, nullable
      - `id` number, required — Global ID of the attachment
      - `mimeType` string, required — MIME type of the file
      - `fileName` string, required — Attachment's file name
      - `url` string, required — Url of the file. Valid for 60 minutes.
      - `createdAt` string, date-time, required — Date & time at which the attachment was uploaded
      - `width` number, nullable — Width if the file is an image
      - `height` number, nullable — Height if the file is an image
    - `priority` 'NONE' | 'LOW' | 'MEDIUM' | 'HIGH', required
    - `description` string, nullable
    - `requestStatus` 'PENDING' | 'REJECTED' | 'APPROVED' | 'DONE', required
    - `assetId` number, nullable
    - `locationId` number, nullable
    - `workOrderId` number, nullable — Global ID of the work order attached to the work request. A work order is created once a work request is approved.
    - `sendEmailNotification` boolean
    - `extraFields` object — Custom Fields on the entity. The object keys are the exact Custom Field labels, including spaces or special characters. (ie: "Request Type") (expand with query parameter)
    - `approverTeamId` number, nullable — ID of the team that is reponsible for approving the request.
    - `creatorContactInfo` object, nullable — The creator's contact information associated with this work order request
      - `type` 'PHONE' | 'EMAIL' | 'OTHER'
      - `value` string
    - `createdAt` string, date-time — Date & time at which the work request was created
    - `updatedAt` string, date-time — Date & time at which the work request was last updated
    - `asset` object — Asset linked to the element (expand with query parameter)
      - `id` integer, required — Global ID of the asset
      - `name` string, required
      - `description` string, nullable, required
      - `parentId` integer, nullable, required — ID of the parent asset
      - `criticalityId` integer, nullable, required — ID of the criticality of the asset
      - `locationId` integer, nullable, required — ID of the location where the asset is located
      - `serialNumber` string, nullable, required — Serial number of the asset
      - `createdAt` string, date-time, required — Date & time at which the asset was created
      - `updatedAt` string, date-time, required — Date & time at which the asset was last updated. This doesn't include comments
      - `creatorId` integer, nullable, required — ID of the asset creator
    - `location` object — Location linked to the element (expand with query parameter)
      - `id` integer, required — Global ID of the location
      - `name` string, required
      - `description` string, nullable
      - `address` string, nullable — Postal address of the location
      - `parentId` integer, nullable — ID of the parent location
      - `createdAt` string, date-time — Date & time at which the location was created
      - `updatedAt` string, date-time — Date & time at which the location was last updated. This doesn't include comments
    - `workOrder` object — Work Order linked to the element (expand with query parameter)
      - `id` integer, required — Global ID of the work order
      - `sequentialId` integer, required — Organization specific ID of the work order
      - `assetId` integer, nullable
      - `attachments` object[] — List of attachments linked to the work order
        - `id` number, required — Global ID of the attachment
        - `mimeType` string, required — MIME type of the file
        - `fileName` string, required — Attachment's file name
        - `url` string, required — Url of the file. Valid for 60 minutes.
        - `createdAt` string, date-time, required — Date & time at which the attachment was uploaded
        - `width` number, nullable — Width if the file is an image
        - `height` number, nullable — Height if the file is an image
      - `categories` string[] — List of categories that identify the work order
      - `completedAt` string, date-time, nullable — Date & time at which the work order was last marked as DONE
      - `completerId` integer, nullable — ID of the user who completed the work order
      - `createdAt` string, date-time, required — Date & time at which the work order was created
      - `creatorId` integer, nullable, required — ID of the user who created the work order
      - `deletedAt` string, date-time, nullable — Date & time at which the work order was deleted
      - `description` string, nullable
      - `dueDateIsFullDay` boolean, nullable
      - `dueDate` string, date-time, nullable — Date & time at which the work order is due
      - `estimatedTime` integer, nullable — The estimated time taken in seconds to complete the work order
      - `externalData` union — Extra data that can be attached to the work order, for example to help reference to a matching record in an external system.
        - object
        - number
        - string
      - `isParent` boolean, nullable — If this is a parent work order
      - `lastMessageSentAt` string, date-time, nullable — Date & time at which the last comment was added to the work order
      - `startDate` string, date-time, nullable — Date & time at which the work order will show up in the inbox</br>Only valid when <b>dueDate</b> is set
      - `locationId` integer, nullable — Global ID of the location assigned to the work order
      - `nextId` integer, nullable
      - `organizationId` number, required
      - `parentId` integer, nullable — The ID of the parent work order
      - `partsAvailability` 'PARTS_AVAILABLE' | 'PARTS_UNAVAILABLE' | 'PARTIAL_PARTS' | 'PARTS_AVAILABLE_BUT_OVERCOMMITTED' — Computed parts availability for this work order based on current inventory levels.
      - `partStatus` 'NO_PARTS' | 'ASSIGNED' | 'RESERVED' | 'KITTED' | 'STAGED' | 'ISSUED' — Part stage indicates the current readiness state of parts for this work order.
      - `previousId` integer, nullable
      - `priority` 'NONE' | 'LOW' | 'MEDIUM' | 'HIGH'
      - `recurrenceInfo` union
        - object, nullable
          - `type` 'DAILY', required
          - `automationMeterTrigger` object, nullable — Automation meter trigger configuration
            - `automationTriggerInput` object
              - …
            - `lastTriggerValue` number — Last trigger value for the meter
            - `newDueDateOffsetSeconds` integer — Offset in seconds for new due date. If you want to set the due date to 2 days from now set this to 172800 - (24 * 60 * 60 * 2)
        - object, nullable
          - `type` 'WEEKLY', required
          - `interval` integer — Number of weeks between events
          - `days` string[], required — Days of the week the event will occur
          - `automationMeterTrigger` object, nullable — Automation meter trigger configuration
            - `automationTriggerInput` object
              - …
            - `lastTriggerValue` number — Last trigger value for the meter
            - `newDueDateOffsetSeconds` integer — Offset in seconds for new due date. If you want to set the due date to 2 days from now set this to 172800 - (24 * 60 * 60 * 2)
        - object, nullable
          - `type` 'MONTHLY', required
          - `interval` integer — Number of months between events
          - `day` integer, required — Day of the month the event will occur
          - `automationMeterTrigger` object, nullable — Automation meter trigger configuration
            - `automationTriggerInput` object
              - …
            - `lastTriggerValue` number — Last trigger value for the meter
            - `newDueDateOffsetSeconds` integer — Offset in seconds for new due date. If you want to set the due date to 2 days from now set this to 172800 - (24 * 60 * 60 * 2)
        - object, nullable
          - `type` 'YEARLY', required
          - `interval` integer — Number of years between events
          - `automationMeterTrigger` object, nullable — Automation meter trigger configuration
            - `automationTriggerInput` object
              - …
            - `lastTriggerValue` number — Last trigger value for the meter
            - `newDueDateOffsetSeconds` integer — Offset in seconds for new due date. If you want to set the due date to 2 days from now set this to 172800 - (24 * 60 * 60 * 2)
        - object, nullable
          - `type` 'PERIODICALLY', required
          - `interval` integer — Number of seconds between events
          - `automationMeterTrigger` object, nullable — Automation meter trigger configuration
            - `automationTriggerInput` object
              - …
            - `lastTriggerValue` number — Last trigger value for the meter
            - `newDueDateOffsetSeconds` integer — Offset in seconds for new due date. If you want to set the due date to 2 days from now set this to 172800 - (24 * 60 * 60 * 2)
      - `requesterId` integer, nullable — ID of the user who requested the work order through the Work Request feature
      - `status` 'OPEN' | 'IN_PROGRESS' | 'ON_HOLD' | 'DONE' | 'CANCELED' | 'SKIPPED', required — <br /><em>Note:</em> It is also possible to register a webhook to get notified when the status of any work order changes. Please see the <a href="#tag/Subscriptions">Subscriptions</a> section for more information.
      - `thumbnail` object, nullable
        - `id` number, required — Global ID of the attachment
        - `mimeType` string, required — MIME type of the file
        - `fileName` string, required — Attachment's file name
        - `url` string, required — Url of the file. Valid for 60 minutes.
        - `createdAt` string, date-time, required — Date & time at which the attachment was uploaded
        - `width` number, nullable — Width if the file is an image
        - `height` number, nullable — Height if the file is an image
      - `title` string, required
      - `type` 'CYCLE_COUNT' | 'OTHER' | 'PREVENTIVE' | 'REACTIVE', nullable — Valid types of Work Orders, including options that are not available for creation/update. Historical Work Orders may have a null type.
      - `updatedAt` string, date-time, required — Date & time at which the work order was last updated. This doesn't include comments
      - `extraFields` object — Custom Fields on the entity. The object keys are the exact Custom Field labels, including spaces or special characters. (ie: "Estimated Time Allotted")
      - `vendorIds` number[] — Vendor IDs
      - `assigneeIds` integer[] — List of user ids assigned to the work order
      - `teamIds` integer[] — List of team ids assigned to the work order
      - `customerId` integer, nullable — ID of the customer linked to the work order
      - `procedure` object, nullable — Procedure attached to the work order
        - `id` number — ID representing a procedure
        - `templateIds` number[], nullable — IDs of the procedure template of the procedure
        - `title` string, required — Title of the procedure
        - `maxScore` number — Maximum score of a procedure
        - `score` number — Score of a procedure
        - `fields` object[], required
          - `id` number, required — ID of the procedure field
          - `parentId` number, nullable — ID of the parent of the current procedure field
          - `procedureTemplateId` number, nullable — ID of the procedure template this field originated from.
          - `procedureTemplateFieldId` number, nullable — ID of the procedure template field this field originated from.
          - `required` boolean, required — Indicate if field is required to be filled.
          - `description` string, nullable — Description of the procedure field
          - `type` 'NUMBER' | 'AMOUNT' | 'TEXT' | 'UNSUPPORTED' | 'HEADING' | 'FILE' | 'SIGNATURE' | 'MULTIPLE_CHOICE' | 'INSPECTION_CHECK' | 'YES_NO_NA' | 'CHECKBOX' | 'CHECKLIST' | 'METER' | 'DATE' | 'CYCLE_COUNT', required — Type of procedure field
          - `label` string, required — Label of a procedure field
          - `maxScore` number — Maximum score of a procedure field
          - `score` number — Score of a procedure field
          - `value` object, required — Current value of a procedure field
            - `text` string, nullable
            - `attachment` object
              - …
            - `attachments` object[]
              - …
            - `notes` object, nullable — Note added to a procedure field
              - …
            - `hasAttachments` boolean, nullable
          - `meter` object, nullable — Meter of a procedure field. Will be filled if the type of the field is meter
            - `id` number — Global ID of the meter.
            - `name` string — Name of the meters
          - `assignees` object, nullable
            - `userIds` number[]
            - `teamIds` number[]
          - `isDateAndTime` boolean, nullable — Indicate if a DATE field also contains the time
      - `progress` object, nullable — Progress information on the work order
        - `openCount` number
        - `inProgressCount` number
        - `onHoldCount` number
        - `doneCount` number
      - `workOrderSummary` object, nullable — Work Order Summary. Null when no summary is available.
        - `content` string — The original completion note content
        - `summary` string, nullable — AI-generated summary of the content
        - `authorId` integer, nullable — ID of the user who authored the completion note

## Other responses

- `400` — Error with query
- `401` — Invalid token
- `404` — Could not find the specified workRequest or the user cannot access it.

---

[API](https://skmtc.net/getmaintainx/apis/maintainx-api.md) · [All operations](https://skmtc.net/getmaintainx/apis/maintainx-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/getmaintainx/maintainx-api/revisions/ef9153fcac7c/schema)
