---
title: "POST /api/work-item-rules"
method: POST
path: "/api/work-item-rules"
tags: ["WorkItemRules"]
---

# POST /api/work-item-rules

`POST /api/work-item-rules`

## Request body

- CreateWorkItemRuleRequest
  - `name` string
  - `description` string, nullable
  - `kind` string — WorkItemRuleKind name (e.g. "Exam", "Wellness", "Custom").
  - `emitType` string — WorkItemType name; only "Reminder" is supported today.
  - `emitReminderCategory` string, nullable
  - `emitTaskCategory` string, nullable
  - `emitTaskPriority` string, nullable
  - `titleTemplate` string, nullable
  - `descriptionTemplate` string, nullable
  - `triggerEventTypes` string[] — e.g. ["ServicePerformed"] or ["ServiceDeclined"].
  - `speciesIds` string[], nullable
  - `requiredTagIds` string[], nullable
  - `excludedTagIds` string[], nullable
  - `triggerTagId` string, nullable
  - `minAgeMonths` union
    - integer
    - string, int32
  - `maxAgeMonths` union
    - integer
    - string, int32
  - `locationId` string, nullable
  - `cadenceOffsetsDays` union[]
    - union
      - integer
      - string, int32
  - `recurrenceIntervalMonths` union
    - integer
    - string, int32
  - `autoSatisfyOnTrigger` boolean
  - `isActive` boolean
  - `itemMaps` CreateWorkItemRuleItemMapRequest[]
    - `billableItemId` string, nullable
    - `vaccineTypeId` string, nullable
    - `serviceCatalogItemId` string, nullable
    - `inventoryItemId` string, nullable

## Response `201`

Created

- WorkItemRuleDto
  - `id` string
  - `name` string
  - `description` string, nullable
  - `kind` integer — What domain a `WorkItemRule` governs. Drives which dimension columns apply and how the debugger/admin UI render the rule in clinic language.
  - `emitType` integer — Which work-item table a WorkItemEventType history row refers to.
  - `emitReminderCategory` integer
  - `emitTaskCategory` integer
  - `emitTaskPriority` integer
  - `titleTemplate` string, nullable
  - `descriptionTemplate` string, nullable
  - `triggerEventTypes` string[]
  - `speciesIds` string[], nullable
  - `requiredTagIds` string[], nullable
  - `excludedTagIds` string[], nullable
  - `triggerTagId` string, nullable
  - `minAgeMonths` union
    - integer
    - string, int32
  - `maxAgeMonths` union
    - integer
    - string, int32
  - `locationId` string, nullable
  - `cadenceOffsetsDays` union[]
    - union
      - integer
      - string, int32
  - `recurrenceIntervalMonths` union
    - integer
    - string, int32
  - `autoSatisfyOnTrigger` boolean
  - `isActive` boolean
  - `version` union
    - integer
    - string, int32
  - `itemMaps` WorkItemRuleItemMapDto[]
    - `id` string
    - `billableItemId` string, nullable
    - `billableItemName` string, nullable
    - `vaccineTypeId` string, nullable
    - `vaccineTypeName` string, nullable
    - `serviceCatalogItemId` string, nullable
    - `serviceCatalogItemName` string, nullable
    - `inventoryItemId` string, nullable
    - `inventoryItemName` string, nullable
  - `createdAt` string, date-time
  - `updatedAt` string, date-time

## Other responses

- `400` — Bad Request

---

[API](https://skmtc.net/clinicos/apis/pawthosx-business-api-v1.md) · [All operations](https://skmtc.net/clinicos/apis/pawthosx-business-api-v1/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/clinicos/pawthosx-business-api-v1/versions/a905bde4e796/schema)
