---
title: "Create a new PDF template with a form POST file upload"
method: POST
path: "/templates"
tags: ["Templates"]
---

# Create a new PDF template with a form POST file upload

`POST /templates`

Creates a new PDF template by uploading a PDF file. The uploaded PDF becomes the foundation
for your template, and you can then add fillable fields using the template editor. Use the
wait parameter to control whether the request waits for document processing to complete.

## Query parameters

- `wait` boolean

## Response `201`

returns a pending template

- TemplatePreview
  - `add_data_request_submission_id_footers` boolean, required
  - `allow_additional_properties` boolean, required
  - `description` string, nullable, required
  - `document_filename` string, nullable, required
  - `document_md5` string, nullable, required
  - `document_parse_error` boolean, required
  - `document_processed` boolean, required
  - `document_state` 'pending' | 'processed' | 'password_required' | 'malformed_pdf' | 'unknown_error', required
  - `document_url` string, nullable, required
  - `editable_submissions` boolean, required
  - `embed_domains` string, nullable, required
  - `embed_edit_allow_settings` boolean, required
  - `embed_edit_allow_versioning` boolean, required
  - `embed_edit_allow_document_replacement` boolean, required
  - `encrypt_pdfs_password` string, nullable, required
  - `encrypt_pdfs` boolean, required
  - `expiration_interval` string, required
  - `expire_after` integer, required
  - `expire_submissions` boolean, required
  - `external_predefined_fields_template_id` string, nullable, required
  - `external_predefined_fields_template_name` string, nullable, required
  - `first_template` boolean, required
  - `id` string, nullable, required
  - `locked` boolean, required
  - `merge_audit_trail_pdf` boolean, required
  - `name` string, nullable, required
  - `page_count` integer, required
  - `page_dimensions` array[], nullable, required
    - number[]
  - `parent_folder_id` string, nullable, required
  - `path` string, nullable, required
  - `permanent_document_url` string, nullable, required
  - `public_submissions` boolean, required
  - `public_web_form` boolean, required
  - `redirect_url` string, nullable, required
  - `slack_webhook_url` string, nullable, required
  - `template_type` 'pdf' | 'html', required
  - `updated_at` string, nullable, required
  - `version_published_at` string, nullable, required
  - `version` string, nullable, required
  - `webhook_url` string, nullable, required
  - `embed_edit_token` string, nullable
  - `demo` boolean, required
  - `latest_version` string, nullable, required
  - `last_changed_at` string, nullable, required
  - `last_changed_by_type` 'user' | 'api' | 'external_user', nullable, required
  - `last_changed_by_id` string, nullable, required
  - `last_changed_by_external_name` string, nullable, required
  - `last_changed_by_external_email` string, nullable, required
  - `last_changed_by_external_id` string, nullable, required

## Other responses

- `401` — authentication failed

---

[API](https://skmtc.net/docspring/apis/docspring-api.md) · [All operations](https://skmtc.net/docspring/apis/docspring-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/docspring/docspring-api/versions/88e2ef4f5847/schema)
