---
title: "Update Template"
method: PATCH
path: "/api/interview-templates/{template_id}"
tags: ["interview-templates"]
---

# Update Template

`PATCH /api/interview-templates/{template_id}`

## Request

- Base URL: `https://api.ruzora.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.ruzora.com/api/interview-templates/{template_id}`
- Auth: HTTP bearer

Update meta and/or replace questions wholesale.

Question replace is a delete-and-recreate to keep order_index ints clean.
Existing candidate_interviews referencing the OLD question rows would
keep their question_id FK fine — Postgres won't cascade because we
don't ON DELETE on interview_responses.question_id. Once a question is
deleted from the template, in-flight interviews still display the old
question_text from the response row's joined data... wait, they don't.
Existing responses keep their question_id, but the question row is gone.
For V1: don't allow editing questions on a template that has any
in-flight interviews. Simpler than versioning.

## Path parameters

- `template_id` string, uuid, required

## Request body

- InterviewTemplateUpdate
  - `name` string, nullable
  - `role_type` string, nullable
  - `description` string, nullable
  - `is_active` boolean, nullable
  - `questions` InterviewQuestionPayload[], nullable
    - `id` string, uuid, nullable
    - `question_text` string, required
    - `time_limit_seconds` integer
    - `order_index` integer, required

## Response `200`

Successful Response

- InterviewTemplateResponse
  - `id` string, uuid, required
  - `name` string, required
  - `role_type` string, required
  - `description` string, nullable, required
  - `is_active` boolean, required
  - `created_by` string, uuid, nullable, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, nullable, required
  - `questions` InterviewQuestionResponse[]
    - `id` string, uuid, required
    - `template_id` string, uuid, required
    - `question_text` string, required
    - `time_limit_seconds` integer, required
    - `order_index` integer, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/ruzora/apis/ruzora-candidate-crm-api.md) · [All operations](https://skmtc.dev/ruzora/apis/ruzora-candidate-crm-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ruzora/apis/ruzora-candidate-crm-api/revisions/f9b8223f3ac4?raw)
