# Update Member
> Source: /api-reference/members/profile/update-member
> Update basic member information
> Endpoint: PATCH /members/me

# Update Member

Update basic member information including name, avatar, and onboarding status.

## Request [#request]

```http
PATCH /members/me
Authorization: Bearer <CLERK_JWT_TOKEN>
Content-Type: application/json
```

<ParamField body="firstName" type="string">
  Member's first name
</ParamField>

<ParamField body="lastName" type="string">
  Member's last name
</ParamField>

<ParamField body="displayName" type="string">
  Public display name
</ParamField>

<ParamField body="avatarUrl" type="string">
  Profile picture URL
</ParamField>

<ParamField body="onboardingCompleted" type="boolean">
  Sets onboardingCompletedAt timestamp when true
</ParamField>

<ParamField body="dateOfBirth" type="string">
  Date of birth in YYYY-MM-DD format
</ParamField>

## Response [#response]

Returns the updated member object.

## Example [#example]

```typescript
const response = await fetch('https://api.journey.com/members/me', {
  method: 'PATCH',
  headers: {
    'Authorization': `Bearer ${clerkToken}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    firstName: 'John',
    lastName: 'Smith',
    displayName: 'JohnS',
    dateOfBirth: '1990-05-15',
    onboardingCompleted: true
  })
});

const updatedMember = await response.json();
console.log('Member updated:', updatedMember.member.displayName);
```

## Validation [#validation]

- `dateOfBirth`: Must be YYYY-MM-DD format
- `avatarUrl`: Must be valid URL
- `onboardingCompleted`: One-way flag (cannot be set to false)

## Bruno [#bruno]

`bruno/Members (Surface)/Me/Update Me.bru`
