---
title: "Get a template (or one frozen version of it)"
method: GET
path: "/api/v1/templates/{id}"
tags: ["Template Management"]
---

# Get a template (or one frozen version of it)

`GET /api/v1/templates/{id}`

## Request

- Base URL: `https://api.imagestep.dev`
- URL: `https://api.imagestep.dev/api/v1/templates/{id}`
- Auth: API key in header `Authorization`

`{id}` is a template id (or your own slug) for the current version, or `{id}@{version}` for one
specific version — the same spelling `render_template` accepts as `templateId`, so what a job
rendered with can always be read back. Built-ins have exactly one version.

An earlier version comes back as a document whose `id` is `{id}@{version}`, without `slug`,
`description` or `updatedAt` — those belong to the template, not to a version of it.

## Path parameters

- `id` string, required

## Response `200`

The template document

## Other responses

- `400`: `invalid_param` on `templateId` — the `@version` is not a positive number
- `404`: `not_found` on `templateId` — no such template or version, or it is not yours
- `429`: Rate limited — `error.code` is `rate_limited` and `retryable` is true. `Retry-After` says how many seconds to wait.

---

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