---
title: "PUT /api/vaccine-types/{id}"
method: PUT
path: "/api/vaccine-types/{id}"
tags: ["VaccineTypes"]
---

# PUT /api/vaccine-types/{id}

`PUT /api/vaccine-types/{id}`

## Request

- Base URL: `https://api.clinicos.vet/backend/business`
- URL: `https://api.clinicos.vet/backend/business/api/vaccine-types/{id}`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1/docs/api/vaccine-types/:id/put.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `id` string, required

## Request body

- UpdateVaccineTypeRequest
  - `code` string, nullable
  - `name` string, nullable
  - `description` string, nullable
  - `species` string, nullable
  - `durationMonths` union: Setting months clears int? UpdateVaccineTypeRequest.DurationDays, and vice versa. Null on both means "unchanged" — use bool? UpdateVaccineTypeRequest.ClearDuration to remove the labeled duration.
    - integer
    - string, int32
  - `durationDays` union
    - integer
    - string, int32
  - `clearDuration` boolean, nullable: True removes the labeled duration (both units). A type with no duration and no schedule records doses with no expiration. Can't be combined with a duration value.
  - `isCore` boolean, nullable
  - `isRabies` boolean, nullable
  - `coversVaccineTypeIds` string[], nullable: Null = leave unchanged; empty = covers nothing but itself.
  - `isActive` boolean, nullable
  - `displayOrder` union
    - integer
    - string, int32
  - `reminderThresholdDays` union[], nullable
    - union
      - integer
      - string, int32
  - `scheduleStages` VaccineScheduleStageDto[], nullable: Null = leave the schedule unchanged; empty = clear it (revert to legacy single-duration behavior). When non-null, int? UpdateVaccineTypeRequest.RestartIfLapsedAfterDays and bool? UpdateVaccineTypeRequest.RepeatFinalDose are applied verbatim as part of the same schedule edit (including null to clear the lapse window).
    - `sequence` union: 1-based dose number within the schedule.
      - integer
      - string, int32
    - `intervalDays` union: Days after the prior dose at which THIS dose is due (null for stage 1 / expiry-driven boosters).
      - integer
      - string, int32
    - `intervalMaxDays` union: Upper bound of the recommended window (display only).
      - integer
      - string, int32
    - `durationMonths` union: Months of immunity this dose confers (falls back to the type's labeled duration).
      - integer
      - string, int32
    - `durationDays` union: Days of immunity this dose confers (weeks/days durations); exclusive with int? VaccineScheduleStageDto.DurationMonths.
      - integer
      - string, int32
    - `label` string, nullable
  - `repeatFinalDose` boolean, nullable: Null = leave unchanged; only applied alongside a non-null List&lt;VaccineScheduleStageDto&gt;? UpdateVaccineTypeRequest.ScheduleStages.
  - `restartIfLapsedAfterDays` union
    - integer
    - string, int32

## Response `200`

OK

- VaccineTypeDto: Full vaccine type details
  - `id` string
  - `code` string
  - `name` string
  - `description` string, nullable
  - `species` string
  - `durationMonths` union
    - integer
    - string, int32
  - `durationDays` union: Labeled duration in days (set in days/weeks); exclusive with int? VaccineTypeDto.DurationMonths.
    - integer
    - string, int32
  - `isCore` boolean
  - `isRabies` boolean
  - `coversVaccineTypeIds` string[]: Other vaccine types a dose of this type also satisfies (a combo's components, or a retired equivalent). One-way and followed transitively; empty = only itself.
  - `isActive` boolean
  - `displayOrder` union
    - integer
    - string, int32
  - `reminderThresholdDays` union[]
    - union
      - integer
      - string, int32
  - `scheduleStages` VaccineScheduleStageDto[]: Explicitly configured dose schedule; empty when the type uses legacy single-duration behavior.
    - `sequence` union: 1-based dose number within the schedule.
      - integer
      - string, int32
    - `intervalDays` union: Days after the prior dose at which THIS dose is due (null for stage 1 / expiry-driven boosters).
      - integer
      - string, int32
    - `intervalMaxDays` union: Upper bound of the recommended window (display only).
      - integer
      - string, int32
    - `durationMonths` union: Months of immunity this dose confers (falls back to the type's labeled duration).
      - integer
      - string, int32
    - `durationDays` union: Days of immunity this dose confers (weeks/days durations); exclusive with int? VaccineScheduleStageDto.DurationMonths.
      - integer
      - string, int32
    - `label` string, nullable
  - `repeatFinalDose` boolean: False = the series ends after the last dose (no ongoing booster, no next-due date).
  - `restartIfLapsedAfterDays` union: Grace window (days past due) after which a new dose restarts the series at stage 1.
    - integer
    - string, int32
  - `createdAt` string, date-time
  - `updatedAt` string, date-time

## Other responses

- `404`: Not Found
- `409`: Conflict

## Changes

- **2026-10-21** `85ee96c0bb96`: 21 info
  - added the new optional request property `clearDuration` (media type: application/json)
  - added the new optional request property `clearDuration` (media type: text/json)
  - added the new optional request property `clearDuration` (media type: application/*+json)
  - added the new optional request property `coversVaccineTypeIds` (media type: application/json)
  - …17 more
- **2026-08-07** `a905bde4e796`: 21 info
  - added the new optional request property `isRabies` (media type: application/json)
  - added the new optional request property `isRabies` (media type: text/json)
  - added the new optional request property `isRabies` (media type: application/*+json)
  - added the new optional request property `repeatFinalDose` (media type: application/json)
  - …17 more

[Operation history](https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1/changes/api/vaccine-types/:id/put.md)

---

[API](https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1.md) - [All operations](https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1/llms.txt) - [OpenAPI document](https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1/revisions/099cf36186e0?raw)
