---
title: "List all templates"
method: GET
path: "/v1/templates"
tags: ["Templates"]
---

# List all templates

`GET /v1/templates`

## Request

- Base URL: `https://api.lunary.ai`
- URL: `https://api.lunary.ai/v1/templates`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/lunary/apis/lunary-api/docs/v1/templates/get.ts> (a function with typed inputs; its response is checked against the schema)

List all the prompt templates in your project, along with their versions.
Useful for usecases where you might want to pre-load all the templates in your application.

## Response `200`

Successful response

- Template[]
  - `id` string
  - `name` string
  - `slug` string
  - `mode` 'text' | 'openai'
  - `createdAt` string, date-time
  - `group` string
  - `projectId` string
  - `versions` TemplateVersion[]
    - `id` string
    - `templateId` string
    - `content` object[]
      - `role` string
      - `content` string
    - `metadata` PromptMetadata: Versioned key/value text, separate from model parameters and prompt variables. Keys are preserved exactly, must not be blank, and are limited to 256 characters. The reserved key __proto__ is not allowed. Values must be strings. Numbers, booleans, null, arrays, and objects are rejected. The serialized object must be no larger than 64 KiB. Returned by prompt retrieval endpoints, including public-key retrieval; do not store secrets here. Omitted metadata defaults to an empty object on creation and is preserved on PATCH.
    - `extra` object
    - `testValues` object
    - `isDraft` boolean
    - `notes` string
    - `createdAt` string, date-time
    - `version` number

---

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