**Source URL:** https://limited.veevavault.dev/qualityone/vault-api/api-reference/22.3/metadata-definition-language-mdl/execute-mdl-script-asynchronously.md

# Execute MDL Script Asynchronously



This asynchronous endpoint executes the given MDL script on a Vault.

While you can execute any MDL script with this endpoint, it is required if you’re operating on 10,000+ `high_volume` object records and executing one of the following operations:

* Enabling lifecycles

* Enabling or disabling object types

* Adding or removing a field

* Updating the max length of any variable-length field, such as *Text*, *Long Text*, or *Rich Text*

* Adding or removing an `Index`

* Changing the fields that compose an `Index` or otherwise would cause reindexing to occur

After initiating this request, your high volume object’s `configuration_state` becomes `IN_DEPLOYMENT`. While an HVO is `IN_DEPLOYMENT`, you cannot edit its fields, list layouts, or indexes. If your HVO deployment request has not yet begun execution, you can [cancel](/vault-api/api-reference/22.3/metadata-definition-language-mdl/cancel-hvo-deployment) the deployment.

This endpoint can only queue one asynchronous change at a time. If you have multiple requests, you must wait for the previous request to complete or use a VPK.

<Endpoint path="/api/mdl/execute_async" method="POST"></Endpoint>

## Headers {#headers}

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

## Body Parameters {#body-parameters}

The body of the request should contain the MDL script to execute. Enter the body as raw data. The body must start with one of the following values:

* `CREATE`

* `RECREATE`

* `RENAME`

* `ALTER`

* `DROP`

Learn more in the [MDL Commands](/mdl/documentation/mdl-commands) documentation.

## Request {#request}

<CodeExample title="">
```
curl -X POST -H "Authorization: {SESSION_ID}" \
-H "Content-Type: application/json" \
--data-binary @"hvo.txt" \
https://myvault.veevavault.com/api/mdl/execute_async

```
</CodeExample>

## Example Body: RECREATE Picklist {#example-body-recreate-picklist}

<CodeExample title="">
```
RECREATE Picklist color__c (
   label('Color'),
   active(true),
   Picklistentry red__c(
      value('Red'),
      order(1),
      active(true)
   ),
   Picklistentry blue__c(
      value('Blue'),
      order(2),
      active(true)
   ),
   Picklistentry green__c(
      value('Green'),
      order(3),
      active(true)
   )
);

```
</CodeExample>

## Response {#response}

<CodeExample title="">
```
{
   "responseStatus": "SUCCESS",
   "script_execution": {
       "code": "GEN-S-0",
       "message": "OK",
       "warnings": 0,
       "failures": 0,
       "exceptions": 0,
       "components_affected": 1,
       "execution_time": 0.622
   },
   "job_id": 327103,
   "url": "/api/v20.3/services/jobs/327103"
}

```
</CodeExample>

## Response Details {#response-details}

On SUCCESS, the response includes the following information:



---

**Previous:** [Execute MDL Script](/qualityone/vault-api/api-reference/22.3/metadata-definition-language-mdl/execute-mdl-script)  
**Next:** [Retrieve Asynchronous MDL Script Results](/qualityone/vault-api/api-reference/22.3/metadata-definition-language-mdl/retrieve-asynchronous-mdl-script-results)