**Source URL:** https://general.veevavault.dev/medical/vault-api/api-reference/22.3/documents/update-documents/update-multiple-documents

# Update Multiple Documents

Bulk update editable field values on multiple documents. You can only update the latest version of each document. To update past document versions, see [Update Document Version](/medical/vault-api/api-reference/22.3/documents/update-documents/update-document-version).

*   The maximum CSV input file size is 1GB.
*   The values in the input must be UTF-8 encoded.
*   CSVs must follow the standard RFC 4180 format, with some [exceptions](/medical/vault-api/references/csv-rfc-deviations).
*   The maximum batch size is 1,000.

<Endpoint path="/api/{version}/objects/documents/batch" method="PUT" />

## Headers

<FieldTable>
| Name | Description |
| --- | --- |
| `Content-Type` | `text/csv` or `application/x-www-form-urlencoded` |
| `Accept` | `application/json` (default) or `text/csv` |
| `X-VaultAPI-MigrationMode` | When set to `true`, Vault applies Document Migration Mode limitations to documents updated with the request. You must have the *Document Migration* permission to use this header. Learn more about [Document Migration Mode in Vault Help](https://platform.veevavault.help/en/gr/54028). |
</FieldTable>

## Body Parameters

You can use Name-Value pairs in the body of your request or upload a CSV file. `id` is the only required field, and you can update values of any editable document field. To find these fields, [Retrieve Document Fields](/medical/vault-api/api-reference/22.3/documents/retrieve-document-fields/retrieve-all-document-fields) configured on documents. Editable fields will have `editable:true`. To remove existing field values, include the field name and set its value to null.

The following table includes required fields, and some optional document fields you may want to update:

<FieldTable>
| Name | Description |
| --- | --- |
| `id` | ID of the document to update |
| `archive__v` | Optional: To archive a document, set to `true`. To unarchive a document, set to `false`. |
| `template_doctype__v` | Optional: If you need to create a controlled document template from this document, enter a value for the *Template Document Type* field. To retrieve a list of all possible field values for this field, [Retrieve the Object Collection](/medical/vault-api/api-reference/22.3/vault-objects/retrieve-object-record-collection) for `doc_type_detail__v`. Learn more about [controlled document template creation in Vault Help](https://platform.veevavault.help/en/gr/46025). |
</FieldTable>

 

<DownloadButton href="/sample-files/vault-update-documents-sample-csv-input.csv" label="Download Input File" />

## Request

<CodeExample title="">
```bash
curl -X PUT -H "Authorization: {SESSION_ID}" \
-H "Content-Type: text/csv" \
-H "Accept: text/csv" \
--data-binary @"filename" \
https://myvault.veevavault.com/api/v9.0/objects/documents/batch
```
</CodeExample>

## Response

<CodeExample title="">
```json
{
    "responseStatus": "SUCCESS",
    "data": [
        {
            "responseStatus": "SUCCESS",
            "id": 771,
            "external_id__v": "ALT-DOC-0771"
        },
        {
            "responseStatus": "SUCCESS",
            "id": 772,
            "external_id__v": "CHO-DOC-0772"
        },
        {
            "responseStatus": "SUCCESS",
            "id": 773,
            "external_id__v": "GLU-DOC-0773"
        }
    ]
}
```
</CodeExample>

---

**Previous:** [Update Single Document](/medical/vault-api/api-reference/22.3/documents/update-documents/update-single-document)  
**Next:** [Reclassify Document](/medical/vault-api/api-reference/22.3/documents/update-documents/reclassify-document)