---
title: "Create a reusable template"
method: POST
path: "/api/v1/templates"
tags: ["Templates"]
---

# Create a reusable template

`POST /api/v1/templates`

## Request

- Base URL: `https://swiftsign.ca`
- URL: `https://swiftsign.ca/api/v1/templates`
- Auth: HTTP bearer

## Request body

- CreateTemplateBody
  - `name` string, required
  - `description` string
  - `documents` DocumentInput[], required
    - `name` string, required
    - `base64` string, required: Base64-encoded PDF bytes.
  - `roles` TemplateRoleInput[], required
    - `roleName` string, required
    - `routingOrder` integer
    - `recipientType` 'SIGNER' | 'CC'
  - `fields` TemplateFieldInput[]
    - `role` integer, required: Index into roles[].
    - `document` integer, required: Index into documents[].
    - `type` 'SIGNATURE' | 'NAME' | 'DATE' | 'TEXT' | 'INITIALS' | 'CHECKBOX' | 'RADIO' | 'DROPDOWN' | 'ATTACHMENT', required: Signature/data field type to place on a document.
    - `page` integer
    - `anchor` string
    - `x` number
    - `y` number
    - `width` number
    - `height` number
    - `required` boolean
    - `options` string[]

## Response `201`

Template created.

- Template
  - `id` string, required
  - `name` string, required
  - `description` string, nullable, required
  - `createdAt` string, required
  - `updatedAt` string, required

## Other responses

- `400`: Validation error.
- `401`: Missing or invalid API key.
- `403`: API key lacks the envelopes:write scope.

---

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