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

# List templates

`GET /api/templates`

## Request

- Base URL: `https://morfee.furo.solutions`
- URL: `https://morfee.furo.solutions/api/templates`
- Auth: one of:
  - API key in header `X-Api-Key`
  - HTTP bearer

A page at a time. Loop on `nextOffset` until it is null and you have the lot without having to work out from the counts whether you are done.

Any scope may call this: every key may read.

## Query parameters

- `search` string
- `folder` string
- `limit` integer
- `offset` integer

## Response `200`

A page of templates.

- TemplateList: A page of templates, always, whether or not a page was asked for. `nextOffset` is the whole stop condition: ask again with that value until it comes back null.
  - `templates` TemplateMeta[], required
    - `id` string, required: The id to render with. Lower case, digits and dashes.
    - `name` string, required
    - `createdAt` string, date-time
    - `updatedAt` string, date-time
    - `createdBy` string, nullable: The email address that saved it first.
    - `folderId` string, nullable: null means it is in no folder.
    - `bindingCount` integer: How many fields are pointed at.
    - `listCount` integer: How many of those are lists.
    - `byHand` boolean: True when the template has logic in it but no bindings: written directly rather than built by pointing at a design. The builder cannot rebuild such a template and opens it read only.
    - `sizeKb` integer
  - `total` integer, required: How many match, not how many are in this answer.
  - `limit` integer, required
  - `offset` integer, required
  - `nextOffset` integer, nullable, required: null on the last page.

## Other responses

- `401`: No key, an unknown key or a revoked one.

---

[API](https://skmtc.dev/furo/apis/morfee.md) · [All operations](https://skmtc.dev/furo/apis/morfee/llms.txt) · [OpenAPI document](https://skmtc.dev/furo/apis/morfee/revisions/83f95f89653f?raw)
