---
title: "Change a saved template"
method: PUT
path: "/templates/{id}"
tags: ["templates"]
---

# Change a saved template

`PUT /templates/{id}`

## Request

- Base URL: `https://api.gogoscreen.com/api/v1`
- URL: `https://api.gogoscreen.com/api/v1/templates/{id}`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

Change a template's name, description or settings. Every field is optional and an absent one is left alone; `settings` is replaced WHOLE when it is sent, not merged, so a partial settings object silently drops what it leaves out. A template belonging to another account is 404.

## Path parameters

- `id` string, required

## Headers

- `Idempotency-Key` string, required

## Request body

- object
  - `description` string
  - `name` string
  - `settings` object: The render settings this template pins: limits, voice, length preset, orientation, capture, language, background, voice speed. Open shape, may gain keys; ≤65536 bytes, ≤16 deep.

## Response `200`

Change a saved template

- object
  - `template` object, required
    - `background` string, nullable, required
    - `captureId` string, nullable, required
    - `custom` boolean, required: true for one of this account's saved templates, false for a system template.
    - `description` string, required
    - `id` string, required
    - `isDefault` boolean, required
    - `language` string, nullable, required
    - `lengthPreset` string, nullable, required
    - `limits` object, nullable, required: The engine limits this template pins. Open shape, may gain keys; ≤65536 bytes, ≤16 deep.
    - `name` string, required
    - `orientationId` string, nullable, required
    - `sourceRenderId` string, nullable
    - `speedFactor` number, nullable: System templates only: a factor on the voice's own speed.
    - `ttsSpeed` number, nullable, required
    - `updatedAt` string, date-time, nullable
    - `voiceId` string, nullable, required
    - `voiceStyle` string, nullable: System templates only: the delivery the narrator reads in.

## Other responses

- `400`: `validation_failed` — That request is not valid. · `idempotency_key_required` — This operation needs an Idempotency-Key header: a string of up to 128 characters, unique to this request, so a retry cannot do the work twice. · `name_invalid` — That template name is not valid. · `description_invalid` — That template description is too long. · `settings_invalid` — Those template settings are not valid. · `voice_unknown` — No such voice. The catalogue is at GET /api/v1/catalog/voices. · `orientation_unknown` — No such orientation. The catalogue is at GET /api/v1/catalog/render-options. · `length_below_minimum` — That length is shorter than a walkthrough can be.
- `401`: `unauthorized` — Authentication is required.
- `403`: `forbidden_scope` — This credential does not carry the scope this operation needs.
- `404`: `not_found` — No such resource. · `template_not_found` — No such template. · `source_render_not_found` — No such render on this account.
- `409`: `idempotency_conflict` — That idempotency key was already used with a different request. · `idempotency_in_progress` — That idempotency key is still being processed. · `conflict` — That request conflicts with the current state. · `template_limit` — This account already holds the most templates it may. Delete one to save another.
- `413`: `payload_too_large` — That request body is too large.
- `415`: `unsupported_media_type` — That content type is not supported.
- `429`: `rate_limited` — Too many requests. Try again shortly.
- `500`: `internal_error` — Something went wrong. Try again.

---

[API](https://skmtc.dev/gogoscreen/apis/gogoscreen-api.md) · [All operations](https://skmtc.dev/gogoscreen/apis/gogoscreen-api/llms.txt) · [OpenAPI document](https://skmtc.dev/gogoscreen/apis/gogoscreen-api/revisions/2fd812319d75?raw)
