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

# List templates

`GET /api/v1/templates`

## Request

- Base URL: `https://makespdf.com`
- URL: `https://makespdf.com/api/v1/templates`
- Auth: none required

Metadata for visible templates, newest first. Anonymous callers see the curated library only. Fetch one with GET /api/v1/templates/{id} to get its DSL.

## Query parameters

- `owner` 'mine' | 'library' | 'all'
- `category` string
- `tags` string
- `q` string
- `limit` integer
- `offset` integer

## Response `200`

Visible templates.

- TemplateList
  - `templates` TemplateSummary[], required
    - `templateId` string, required: Library slug or user template UUID.
    - `ownerUserId` string, nullable: null for curated library rows.
    - `name` string, required
    - `description` string
    - `category` string, nullable, required
    - `tags` string[], required
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
  - `total` integer, required
  - `limit` integer, required
  - `offset` integer, required

## Other responses

- `400`: Malformed body or failed validation. Never billed.
- `429`: Rate limit exceeded.
- `500`: Unexpected server error. Never billed.

---

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