---
title: "Update Template"
method: PATCH
path: "/companies/{company_id}/templates/{template_id}"
tags: ["creatives"]
---

# Update Template

`PATCH /companies/{company_id}/templates/{template_id}`

## Request

- Base URL: `https://app.zalster.com` (the document declares no server; this is the origin it was published from)
- URL: `https://app.zalster.com/companies/{company_id}/templates/{template_id}`
- Auth: none declared

## Path parameters

- `company_id` string, uuid, required: Company id
- `template_id` string, uuid, required

## Request body

- TemplateUpdate
  - `name` string, nullable
  - `status` 'active' | 'archived'
  - `auto_render` boolean, nullable
  - `source_ids` string[], nullable

## Response `200`

Successful Response

- TemplateOut
  - `id` string, uuid, required
  - `name` string, required
  - `status` string, required
  - `active_version_id` string, uuid, nullable, required
  - `archived_at` string, date-time, nullable
  - `auto_render` boolean
  - `needs_render_since` string, date-time, nullable
  - `all_sources` boolean
  - `source_ids` string[]
  - `draft_saved_at` string, date-time, nullable
  - `editor_url` string, nullable
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `renders_purge_at` string, date-time, nullable, required: When this archived template's renders are deleted; null if active. Derived rather than stored, and derived *here* rather than in the portal, so the countdown the operator reads comes from the same retention setting the sweep obeys. A client that computed it from its own idea of "30 days" would go quietly wrong the day that setting changed.

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/zalster/apis/zalster-feed-processor.md) - [All operations](https://skmtc.dev/zalster/apis/zalster-feed-processor/llms.txt) - [OpenAPI document](https://skmtc.dev/zalster/apis/zalster-feed-processor/revisions/d0b9dc66ad36?raw)
