> ## Documentation Index
> Fetch the complete documentation index at: https://dev.puppetvendors.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Account Settings

> Update the authenticated user's account information or password

<Note>
  **V2 Preview** — This endpoint is part of the V2 API preview. Breaking changes may occur.
</Note>

## Overview

Update the authenticated user's account. Can modify first name, last name, email, and password. For password changes, `currentPassword` and `confirmPassword` are required, and `currentPassword` must match the user's existing password. For email changes, the new email must not already be in use. Vendor tokens can only update their own account.

## Request Body

<ParamField body="firstName" type="string" />

<ParamField body="lastName" type="string" />

<ParamField body="email" type="string">New email address (must be unique).</ParamField>
<ParamField body="currentPassword" type="string">Required when changing password.</ParamField>
<ParamField body="password" type="string">New password.</ParamField>
<ParamField body="confirmPassword" type="string">Must match `password`.</ParamField>

## Response

```json 200 theme={null}
{
  "success": true,
  "data": {
    "_id": "507f1f77bcf86cd799439011",
    "firstName": "John",
    "lastName": "Doe",
    "email": "john.doe@example.com",
    "lastLogin": "2026-04-15T14:22:31.000Z"
  }
}
```

### Error Responses

```json 400 theme={null}
{ "success": false, "error": { "message": "Current password is incorrect" } }
```

```json 409 theme={null}
{ "success": false, "error": { "message": "Email already in use" } }
```

## Example

```bash theme={null}
curl -X PUT "https://staging-api.puppetvendors.com/settings/accounts" \
  -H "x-access-token: YOUR_VENDOR_JWT" \
  -H "Content-Type: application/json" \
  -d '{
    "firstName": "John",
    "lastName": "Doe",
    "email": "john.doe@example.com",
    "currentPassword": "myCurrentPassword123",
    "password": "newSecurePassword123",
    "confirmPassword": "newSecurePassword123"
  }'
```

### More Examples

**Change password**

```bash theme={null}
curl -X PUT "https://staging-api.puppetvendors.com/settings/accounts" \
  -H "Content-Type: application/json" \
  -H "x-access-token: YOUR_VENDOR_JWT" \
  -d '{
    "currentPassword": "old-password-123",
    "password": "new-secure-password-456",
    "confirmPassword": "new-secure-password-456"
  }'
```
