---
title: "Create WR Submission"
method: POST
path: "/v2/work-requests/work-request-submissions"
tags: ["Routes", "Tasks", "Work Request Submissions"]
---

# Create WR Submission

`POST /v2/work-requests/work-request-submissions`

Creates a new work request submission. The submission enters a pending state and must be approved or declined by a reviewer.

`locationID` and `dueDateUnit` are required. All other fields are optional.

## Request body

- object
  - `locationID` integer, required — The location ID for the work request submission.
  - `assetID` integer, nullable — The asset ID associated with the submission.
  - `parts` object[]
    - `partID` number
    - `quantity` number
  - `attachments` string[]
  - `timeUnix` integer — Unix timestamp for the request.
  - `priorityID` integer, nullable — Priority ID for the submission.
  - `dueDateUnit` string, required — Unit for the due date. Can be "days" or "hours".
  - `requesterName` string — Name of the person submitting the request.
  - `requestTitle` string — Title of the work request submission.
  - `requestDescription` string — Description of the problem.
  - `requestInformation` object — Additional information from the Work Request Portal form.
    - `customerCode` string
    - `requesterName` string
    - `requesterEmail` string
    - `requesterPhone` string
    - `geoLocation` string
    - `timeUnix` integer
    - `customFieldOne` string
    - `customFieldTwo` string
    - `customFieldThree` string
    - `customFieldOneTitle` string
    - `customFieldTwoTitle` string
    - `customFieldThreeTitle` string

## Response `200`

Work request submission created

- WorkRequestSubmission
  - `workRequestSubmissionId` integer
  - `status` 'Pending' | 'Approved' | 'Rejected'
  - `createdByUserId` integer
  - `createdAt` string
  - `updatedAt` string
  - `deletedAt` string, nullable
  - `reviewedByUserId` integer, nullable
  - `reviewedAt` string, nullable
  - `reviewedReason` string, nullable
  - `additionalNotes` string, nullable
  - `locationId` integer
  - `assetId` integer, nullable
  - `priorityId` integer, nullable
  - `dueDateUnit` string, nullable
  - `requestInformation` object
  - `customerID` integer
  - `requestTitle` string
  - `assignedToProfileId` integer, nullable
  - `requestDescription` string, nullable
  - `checklistID` integer, nullable
  - `requesterName` string

## Other responses

- `400` — The request was malformed — either invalid JSON syntax or a validation failure (missing required field, wrong type, etc.).
- `401` — No `Authorization` header was provided on the request.
- `403` — The supplied credentials are invalid, the customer account is inactive, or the credentials do not have permission to perform this action.
- `429` — The per-minute or per-hour rate limit for this credential and method has been exhausted. Inspect the `X-RateLimit-*` headers to determine when to retry.
- `500` — An unhandled server-side error. The body message is generic (`System unavailable...`) when the underlying cause is a database fault; otherwise it reflects the raised error.

---

[API](https://skmtc.net/limblecmms/apis/limble-api-v2.md) · [All operations](https://skmtc.net/limblecmms/apis/limble-api-v2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/limblecmms/limble-api-v2/revisions/20801e23f7f2/schema)
