# Update the user

To update an existing user, send a `PATCH` request to the `/api/user` endpoint.

Here below the list of all the possible arguments that you can pass with the request body.

## Request

**PATCH** <https://provisioning.commercelayer.io/ap&#x69;**/user>\*\*

### Arguments

| Body Parameter                   | Type     | Required |
| -------------------------------- | -------- | -------- |
| **type**                         | `string` | Required |
| attributes.**email**             | `string` | Optional |
| attributes.**first\_name**       | `string` | Optional |
| attributes.**last\_name**        | `string` | Optional |
| attributes.**time\_zone**        | `string` | Optional |
| attributes.**reference**         | `string` | Optional |
| attributes.**reference\_origin** | `string` | Optional |
| attributes.**metadata**          | `object` | Optional |

### Example

{% tabs %}
{% tab title="Request" %}
The following request updates the user identified by the ID "xYZkjABcde":

```sh
curl -g -X PATCH \
  'https://provisioning.commercelayer.io/api/user' \
  -H 'Accept: application/vnd.api+json' \
  -H 'Authorization: Bearer {{your_access_token}}' \
  -H 'Content-Type: application/vnd.api+json' \
  -d '{
  "data": {
    "type": "users",
    "attributes": {
      "reference": "ANY-EXTERNAL-REFEFERNCE"
    }
  }
}'
```

{% endtab %}

{% tab title="Response" %}
On success, the API responds with a `200 OK` status code, returning the updated resource object:

```javascript
{
  "data": {
    "id": "xYZkjABcde",
    "type": "users",
    "attributes": {
      "email": "user@commercelayer.io",
      "first_name": "John",
      "last_name": "Doe",
      "time_zone": "UTC",
      "otp_required_for_login": false,
      "created_at": "2018-01-01T12:00:00.000Z",
      "updated_at": "2018-01-01T12:00:00.000Z",
      "reference": "ANY-EXTERNAL-REFEFERNCE",
      "reference_origin": "ANY-EXTERNAL-REFEFERNCE-ORIGIN",
      "metadata": {
        "foo": "bar"
      }
    }
  }
}
```

{% endtab %}
{% endtabs %}
