**Source URL:** https://limited.veevavault.dev/clinical/vault-api/api-reference/26.2/clinical-operations/promote-person-to-user.md

# Promote Person to User



Create a *User* record from an existing *Person* record. This operation creates a *User* record and populates its *Source Person* field, in addition to populating the *User* object reference field on the *Person* record. This request is equivalent to the [*Promote Person to User*](https://clinical.veevavault.help/en/lr/31637/#promote-person-to-user) action in the Vault UI.

<Endpoint path="/api/{version}/app/clinical/persons/actions/promote_to_user" method="POST"></Endpoint>

## Headers {#headers}

| Name | Description |
| --- | --- |
| `Content-Type` | `application/x-www-form-urlencoded` |
| `Accept` | `application/json` |

## Body Parameters {#body-parameters}

The following table provides the required parameters to create a *User* record. Depending on your Vault's configuration, there may be additional fields required for the *User* object.

<FieldTable>
| Name | Description |
| --- | --- |
| `source_person_id` | The ID of the *Person* record to create a *User* record from. |
| `first_name__sys` | The user's first name. |
| `last_name__sys` | The user's last name. |
| `username__sys` | The user's Vault username. For example, `ewoodhouse@veepharm.com`. |
| `email__sys` | The user's email address. |
| `license_type__sys` | The license type, which is the first level of access control that Vault applies to a user. The `license_type__v` cannot be less permissive than a user's application licensing. If omitted, the default value is `full__v`. |
| `language__sys` | The user's preferred language. Retrieve values from [Retrieve All Users](/vault-api/api-reference/26.2/users/retrieve-all-users). |
| `timezone__sys` | The user's time zone. Retrieve values from [Retrieve All Users](/vault-api/api-reference/26.2/users/retrieve-all-users). |
| `locale__sys` | The user's location. Retrieve values from [Retrieve All Users](/vault-api/api-reference/26.2/users/retrieve-all-users). |
| `security_profile__sys` | The user's security profile. If omitted, the default value is `document_user__v`. |
</FieldTable>

## Request {#request}

<CodeExample title="">
```
curl -X POST -H "Authorization: {SESSION_ID}" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json" \
--data-raw '[
    {
        "source_person_id": "V0B00000000D001",
        "first_name__sys": "Kate",
        "last_name__sys": "Grossman",
        "username__sys": "kate.grossman@myvault.veevavault.com",
        "email__sys": "kate.grossman@veeva.com",
        "license_type__sys": "full__v",
        "language__sys": "0LU000000000101",
        "timezone__sys": "america_new_york__sys",
        "locale__sys": "0LO000000000104",
        "security_profile__sys": "0SP000000000109",
        "alias__sys": "test22",
        "company__sys": "veeva",
        "title__sys": "software engineer",
        "location__sys": "milpitas",
        "office_phone__sys": "6821368372",
        "fax__sys": "6821368372",
        "holiday_schedule__sys": "V7P000000001001",
        "activation_date__sys": "2026-10-26",
        "domain_admin__sys": false,
        "salesforce_username__sys": "user1test22s",
        "send_welcome_email__sys": true,
        "system_availability_emails__sys": false,
        "product_announcement_emails__sys": true,
        "test_custom__c": "test custom"
    }, {
        "source_person_id": "V0B00000000D002",
        "first_name__sys": "Olivia",
        "last_name__sys": "Rue",
        "username__sys": "olivia.rue@veeva.com",
        "email__sys": "olivia.rue@myvault.veevavault.com",
        "license_type__sys": "full__v",
        "language__sys": "0LU000000000101",
        "timezone__sys": "america_new_york__sys",
        "locale__sys": "0LO000000000104",
        "security_profile__sys": "0SP000000000109",
        "alias__sys": "test22",
        "company__sys": "veeva",
        "title__sys": "software engineer",
        "location__sys": "milpitas",
        "office_phone__sys": "6821368372",
        "fax__sys": "6821368372",
        "holiday_schedule__sys": "V7P000000001001",
        "activation_date__sys": "2026-10-26",
        "domain_admin__sys": false,
        "salesforce_username__sys": "user1test22s",
        "send_welcome_email__sys": true,
        "system_availability_emails__sys": false,
        "product_announcement_emails__sys": true,
        "test_custom__c": "test custom"
    }
]' \
https://myvault.veevavault.com/api/v26.2/app/clinical/persons/actions/promote_to_user

```
</CodeExample>

## Response {#response}

<CodeExample title="">
```
{
    "responseStatus": "SUCCESS",
    "responseMessage": "Success",
    "data": [
        {
            "source_person_id": "V0B000000000001",
            "user_id": "39"
        },
        {
            "source_person_id": "V0B000000000002",
            "user_id": "40"
        }
    ]
}

```
</CodeExample>

## Response Details {#response-details}

On `SUCCESS`, Vault creates a *User* record from the specified *Person* record. The response includes the original `person_id` and the corresponding `user_id`.

On `FAILURE`, the response includes an error message explaining the failure. For example, it may fail if the request doesn't provide a required field for the *User* record or the *Person* record referenced already has a corresponding *User* record in your Vault.



---

**Previous:** [Submit Data Change Request](/clinical/vault-api/api-reference/26.2/clinical-operations/submit-data-change-request)  
**Next:** [Errors](/clinical/vault-api/api-reference/26.2/errors)