**Source URL:** https://limited.veevavault.dev/commercial/vault-api/api-reference/24.2/documents/document-templates/create-multiple-document-templates.md

# Create Multiple Document Templates



Create up to 500 document templates. You cannot create templates if your Vault exceeds template limits. Learn more about [document template limits in Vault Help](https://platform.veevavault.help/en/lr/5509).

<Endpoint path="/api/{version}/objects/documents/templates" method="POST"></Endpoint>

## Headers {#headers}

<FieldTable>
| Name | Description |
| --- | --- |
| `Content-Type` | `application/json` or `text/csv` |
| `Accept` | `application/json` (default) or `application/xml` |
</FieldTable>

## Body Parameters: Basic Document Templates {#body-parameters-basic-document-templates}

To create basic document templates, create a CSV or JSON input file with the following fields:

<FieldTable>
| Name | Description |
| --- | --- |
| `name__v` | The name of the new document template. If not included, Vault will use the specified `label__v` value to generate a value for the `name__v` field. |
| `label__v` | The label of the new document template. This is the name users will see among the available binder templates in the UI. |
| `type__v` | The name of the document type to which the template will be associated. |
| `subtype__v` | The name of the document subtype to which the template will be associated. |
| `classification__v` | The name of the document classification to which the template will be associated. |
| `active__v` | Set to `true` or `false` to indicate whether or not the new document template should be set to active, i.e., available for selection when creating a document. |
| `file` | The filepath of the file for this document template, from the file staging server. Maximum allowed size is 4GB. |
</FieldTable>
<DownloadButton href="/sample-files/bulk-create-document-templates.json" label="Download Input File"></DownloadButton>

## Body Parameters: Controlled Document Templates {#body-parameters-controlled-document-templates}

To create controlled document templates, create a CSV or JSON input file with the following fields:

<FieldTable>
| Name | Description |
| --- | --- |
| `name__v` | The name of the new document template. If not included, Vault will use the specified `label__v` value to generate a value for the `name__v` field. |
| `label__v` | The label of the new document template. This is the name users will see among the available binder templates in the UI. |
| `active__v` | Set to `true` or `false` to indicate whether or not the new document template should be set to active, i.e., available for selection when creating a document. |
| `is_controlled__v` | Set to `true` to indicate this template is a controlled document template. |
| `template_doc_id__v` | The document `id` value to use as the Template Document for this controlled document template. Learn more about [setting up valid Template Documents in Vault Help](https://platform.veevavault.help/en/lr/46025). |
</FieldTable>

## Example CSV Input: Basic Document Templates {#example-csv-input-basic-document-templates}

<FieldTable>
| `file` | `name__v` | `label__v` | `type__v` | `subtype__v` | `classification__v` | `active__v` |
| --- | --- | --- | --- | --- | --- | --- |
| templates/doc_template_1.doc | site_document_template__c | SMF Template | site_master_file__v |  |  | true |
| templates/doc_template_2.doc |  | TMF Document Template | trial_master_file__v |  |  | true |
| templates/doc_template_3.doc |  | Trial Protocol Document Template | central_trial_documents__vs | trial_documents__vs | protocol__vs | true |
| templates/doc_template_4.doc |  | Clinical Study Report Document Template | central_trial_documents__vs | reports__vs | clinical_study_report__vs | false |
</FieldTable>
In this example input, we're creating four new document templates in our Vault:

* We've included the `file` parameter with the path/name of four document template source files located in the "templates" directory of our Vault's staging server.

* We've only specified the `name__v` value for the first template and given it a different `label__v` value. The other templates will inherit their `name__v` values from the `label__v` values.

* We've specified the document type, subtype, and classification to which each document template will be associated.

## Request {#request}

<CodeExample title="">
```
curl -X POST -H "Authorization: {SESSION_ID}" \
-H "Content-Type: text/csv" \
--data-binary @"C:\Vault\Templates\add_document_templates.csv" \
https://myvault.veevavault.com/api/v15.0/objects/documents/templates

```
</CodeExample>

## Response {#response}

<CodeExample title="">
```
{
   "responseStatus":"SUCCESS",
   "data":[
      {
         "responseStatus":"SUCCESS",
         "name":"site_document_template__c"
      },
      {
         "responseStatus":"SUCCESS",
         "name":"tmf_document_template__c"
      },
      {
         "responseStatus":"SUCCESS",
         "name":"trial_protocol_document_template__c"
      },
      {
         "responseStatus":"FAILURE",
         "errors":[
            {
               "type":"INVALID_DATA",
               "message":"Error message describing why this template was not created."
            }
         ]
      }
   ]
}

```
</CodeExample>

---

**Previous:** [Create Single Document Template](/commercial/vault-api/api-reference/24.2/documents/document-templates/create-single-document-template)  
**Next:** [Update Single Document Template](/commercial/vault-api/api-reference/24.2/documents/document-templates/update-single-document-template)