---
title: "PUT /request-templates"
method: PUT
path: "/request-templates"
tags: ["request-templates"]
---

# PUT /request-templates

`PUT /request-templates`

Updates a request template.

## Request body

- UpdateRequestTemplateInfo — Information for updating a request template. Omitted properties are left unchanged, but `custom_fields` replaces the template's fields wholesale when provided.
  - `request_template_id` string, uuid, required — The ID of the request template to update.
  - `name` string — The new name of the request template.
  - `custom_fields` RequestTemplateCustomFieldInput[] — The complete set of fields for the template. Any field not included is removed.
    - `name` string — The label shown to the requester. Required for every type except `CALLOUT`, which is display-only -- its name is an internal identifier, never displayed, and is generated if omitted.
    - `description` string, nullable — Helper text shown beneath the field.
    - `type` 'SHORT_TEXT' | 'LONG_TEXT' | 'BOOLEAN' | 'MULTI_CHOICE' | 'MULTI_SELECT' | 'CALLOUT', required — The type of the custom request field. `CALLOUT` fields are display-only -- they show a message to the requester and collect no answer, so they never appear in a request's `custom_fields`.
    - `required` boolean — Whether the requester must answer. Ignored for `CALLOUT` fields, which collect no answer.
    - `metadata` RequestTemplateCustomFieldMetadata — Extra configuration for field types that need it. Exactly one member is set, and which one is determined by the field's `type`.
      - `callout_data` RequestTemplateCustomFieldCalloutMetadata — The message shown to a requester by a `CALLOUT` field, and how prominently to show it.
        - `severity` 'INFO' | 'WARNING' | 'ERROR', required — How prominently the message is shown.
        - `text` string, required — The message shown to the requester.
      - `multi_choice_data` RequestTemplateCustomFieldMultiChoiceMetadata — The options a requester can pick from in a `MULTI_CHOICE` or `MULTI_SELECT` field.
        - `options` string[], required

## Response `200`

The request template just updated.

- RequestTemplate — A template describing what a requester is asked when requesting access.
  - `request_template_id` string, uuid, required — The ID of the request template.
  - `name` string, required — The name of the request template.
  - `custom_fields` RequestTemplateCustomField[] — The fields on this template, in the order they are shown.
    - `name` string, required — The label shown to the requester. `CALLOUT` fields are display-only, so their name is an internal identifier and is never displayed.
    - `description` string, nullable — Helper text shown beneath the field.
    - `type` 'SHORT_TEXT' | 'LONG_TEXT' | 'BOOLEAN' | 'MULTI_CHOICE' | 'MULTI_SELECT' | 'CALLOUT', required — The type of the custom request field. `CALLOUT` fields are display-only -- they show a message to the requester and collect no answer, so they never appear in a request's `custom_fields`.
    - `required` boolean — Whether the requester must answer. Always false for `CALLOUT` fields, which collect no answer.
    - `metadata` RequestTemplateCustomFieldMetadata — Extra configuration for field types that need it. Exactly one member is set, and which one is determined by the field's `type`.
      - `callout_data` RequestTemplateCustomFieldCalloutMetadata — The message shown to a requester by a `CALLOUT` field, and how prominently to show it.
        - `severity` 'INFO' | 'WARNING' | 'ERROR', required — How prominently the message is shown.
        - `text` string, required — The message shown to the requester.
      - `multi_choice_data` RequestTemplateCustomFieldMultiChoiceMetadata — The options a requester can pick from in a `MULTI_CHOICE` or `MULTI_SELECT` field.
        - `options` string[], required

## Changes

- **2026-08-27** `c5dec6811e07` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/opal/apis/opal-api/changes/request-templates/put.md)

---

[API](https://skmtc.dev/opal/apis/opal-api.md) · [All operations](https://skmtc.dev/opal/apis/opal-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/opal/opal-api/revisions/16339a4fd3c7/schema)
