**Source URL:** https://limited.veevavault.dev/regulatory/vault-api/api-reference/24.3/vault-loader/multi-file-load/load-data-objects.md

# Load Data Objects



Create a loader job and load a set of data files. You can load a maximum of 10 data objects per request.

<Endpoint path="/api/{version}/services/loader/load" method="POST"></Endpoint>

## Headers {#headers}

<FieldTable>
| Name | Description |
| --- | --- |
| `Content-Type` | `application/json` |
| `Accept` | `application/json` |
</FieldTable>

## Body Parameters {#body-parameters}

The body of your request should be a JSON file containing the set of data objects to load.

<FieldTable>
| Name | Description |
| --- | --- |
| `object_type` | The type of data object to load. The following values are allowed: `vobjects__v``documents__v` `document_versions__v``document_relationships__v` `groups__v``document_roles__v``document_versions_roles__v``document_renditions__v``document_attachments__v` |
| `object` | If the `object_type` = `vobjects__v`, include the object name. For example, `product__v`. |
| `action` | The action type to `create`, `update`, `upsert`, or `delete` data objects. If the `object_type`=`vobjects__v`, the action types `create_attachments`, `delete_attachments`, `assign_roles`, and `remove_roles` are also available. |
| `file` | Include the filepath to reference the CSV load file on the [file staging server](/vault-api/guides/file-staging). |
| `order` | Specifies the order of the load task. |
| `idparam` | Identify object records by any unique field value. Can only be used if `object_type` is `vobjects__v` and `action` is `upsert`, `update`, or `delete`. You can use any object field which has `unique` set to `true` in the object metadata. For example, `idParam=external_id__v`. |
| `recordmigrationmode` | Set to `true` to create or update object records in a noninitial state and with minimal validation, bypass rules such as entry criteria, create inactive records, and set system-managed fields such as `created_by__v`. Does not bypass record triggers. Use `notriggers` to bypass triggers. The `recordmigrationmode` parameter can only be used if `object_type` is `vobjects__v` and `action` is `create`, `update`, or `upsert`. You must have the [Record Migration](https://platform.veevavault.help/en/lr/22824) permission to use this parameter. Learn more about [Record Migration Mode in Vault Help](https://platform.veevavault.help/en/lr/761685). |
| `notriggers` | If set to `true`, Record Migration Mode bypasses record triggers. |
| `documentmigrationmode` | Set to `true` to create documents, document versions, document version roles, or document renditions in a specific state or state type. Also allows you to set the name, document number, and version number. For `update` actions, only allows you to manually reset document numbers. You must have the [Document Migration](https://platform.veevavault.help/en/lr/22824) permission to use this parameter. Learn more about [Document Migration Mode in Vault Help](https://platform.veevavault.help/en/lr/54028). |
</FieldTable>

## Query Parameters {#query-parameters}

<FieldTable>
| Name | Description |
| --- | --- |
| `sendNotification` | To send a Vault notification when the job completes, set to `true`. If omitted, this defaults to `false` and Vault does not send a notification when the job completes. |
</FieldTable>

## About File Validation {#about-file-validation}

Vault evaluates header rows in CSV load files to ensure they include all required fields. Required fields vary depending on the `object_type` and `action`. Learn more about Vault Loader input files for [documents](https://platform.veevavault.help/en/lr/26605), [document roles](https://platform.veevavault.help/en/lr/26613), [document attachments](https://platform.veevavault.help/en/lr/67267), [objects](https://platform.veevavault.help/en/lr/26607), and [object attachments](https://platform.veevavault.help/en/lr/67288) in Vault Help.

## Request {#request}

<CodeExample title="">
```
curl -X POST -H "Authorization: {SESSION_ID}" \
- H "Content-Type: application/json" \
--data-binary @"filename.json" \
https://myvault.veevavault.com/api/v20.2/services/loader/load

```
</CodeExample>

## Body {#body}

<CodeExample title="">
```
[
  {
    "object_type": "documents__v",
    "action": "create",
    "file": "documents.csv",
    "documentmigrationmode": true,
    "order": 1
  },
  {
    "object_type": "vobjects__v",
    "object": "veterinary_patient__c",
    "action": "create",
    "file": "patients.csv",
    "recordmigrationmode": true,
    "order": 2
  },
  {
    "object_type": "vobjects__v",
    "object": "product__v",
    "action": "upsert",
    "file": "products.csv",
    "order": 3,
    "idparam": "external_id__v"
  },
  {
    "object_type": "groups__v",
    "action": "update",
    "file": "groups.csv",
    "order": 4
  }
]

```
</CodeExample>

## Response {#response}

<CodeExample title="">
```
{
    "responseStatus": "SUCCESS",
    "url": "/api/v20.2/services/jobs/92201",
    "job_id": 92201,
    "tasks": [
        {
            "task_id": "1",
            "object_type": "documents__v",
            "action": "create",
            "documentmigrationmode": true,
            "file": "documents.csv"
        },
        {
            "task_id": "2",
            "object_type": "vobjects__v",
            "object": "veterinary_patient__c",
            "action": "create",
            "recordmigrationmode": true,
            "file": "patients.csv"
        },
        {
            "task_id": "3",
            "object_type": "vobjects__v",
            "object": "product__v",
            "action": "upsert",
            "idparam": "external_id__v",
            "file": "products.csv"
        },
        {
            "task_id": "4",
            "object_type": "groups__v",
            "action": "update",
            "file": "groups.csv"
        }
    ]
}

```
</CodeExample>

## Response Details {#response-details}

On `SUCCESS`, the response includes the following information:



---

**Previous:** [Multi-File Load](/regulatory/vault-api/api-reference/24.3/vault-loader/multi-file-load)  
**Next:** [Retrieve Load Success Log Results](/regulatory/vault-api/api-reference/24.3/vault-loader/multi-file-load/retrieve-load-success-log-results)