---
title: "Service: /members/{member} [PATCH]"
source: https://dev.pageseeder.com/api/services/member_patch.html
description: "PATCH endpoint to edit member account details including username, email, password, and profile information. Requires authentication and enforces validation rules for credentials and name fields."
last_updated: 2026-09-08T13:57:02+10:00
document_type: api_endpoint
operation_id: member-PATCH
resource_id: member
path_template: /members/{member}
http_method: PATCH
api_category: member
implementation_version: 6.2005
api_since: 4.9100
deprecated_since: null
obsolete_since: null
api_support: supported
cache_control: N/A
generated_at: 2026-09-02
tokens: ~1108
---

# /members/\{member\} \[PATCH\]

## Description

Edit the account details of a [member](../../reference/glossary/member.md).

### Member details

Both the firstname and surname are limited to 50 characters.

The member-username must be less than 100 characters, unique and cannot contain a ‘@’. The username is required unless the an email address is specified.

The email must be less than 100 characters, unique and be a valid Email address. The email address is required unless a username is specified.

> **Note:** If the email is changed and force-email-change is not true, then the email is not changed but a [confirmation message](../../guide/configuration/emails/templates/change-email-confirm.md) is sent to the new email address.

The member details are only modified if they are specified in the request.

### Password details

The member-password must be less than 100 characters. When the [Password](../../reference/glossary/password.md) is not specified, the member’s email is used if no confirmation is needed, otherwise, a new password is generated.

Passwords must satisfy a given strength check to be accepted:

- Regular members must have at least a **MEDIUM** strength.
- Administrators must use a **STRONG** password.

Users MUST include their current password using current-password to be able to change their password.

> **Note:** By default, an email is sent to the user when their password is changed unless member status is `set-password` (i.e. the member is setting up their account). To override this behavior, set password-email to `false`.

### Email templates

This service uses the default PageSeeder templates.

To use customized emails, use the `globalTemplate` [global property](../../guide/configuration/properties/global_properties.md) 

## Parameters

| Name | Description | Required | Type | Default value |
| --- | --- | --- | --- | --- |
| current-password | The member’s current password (required by non-administrator if a new password is specified) | maybe | string |  |
| disabled | Set to `true` to disable sign-in, notifications and all permissions for this member (administrator only) | no | boolean |  |
| email | The member’s email address | no | email |  |
| email-attachments | Set to `true` to include attachments to email notifications, Set to `false` to include links to PageSeeder instead | no | boolean |  |
| firstname | The member’s given name. Max 50 characters | no | string |  |
| force-email-change | Set to `true` to change the email address without notification (administrator only) | no | boolean | `false` |
| member-password | The member’s new password  | no | string |  |
| member-username | The member’s username | no  | string |  |
| on-vacation | Set to `true` to suspend normal email notifications | no | boolean |  |
| password-email | Set to `false` to change the password without notification (administrator only) | no | boolean | `true` |
| surname | The member’s family name. Max 50 characters | no | string |  |
| token | The account activation token | yes, if not authenticated | string |  |
| notify-async | Whether emails should be sent asynchronously (for slow email servers) | no | boolean | `false` |

## Permission

This service can only be invoked by the user herself or an administrator.

Only administrators can change a password without having to submit the current password.

## Response

The XML returned is always:

```xml
<member-modification>
  <member id="[member id]"
          firstname="[first name]"
          surname="[surname]"
          username="[username]"
          status="[activated|unactivated|set-password|disabled]">
    <fullname>[full name]</fullname>
  </member>
</member-modification>
```

## Error Handling

| Code | Cause / Description |
| --- | --- |
| 0x1001 | If the username contains the character ‘@’ |
| 0x1002 | If the email address is invalid |
| 0x1004 | If the username or email are already in use |
| 0x1007 | If the first name or surname is longer than 50 characters |
| 0x1009 | If the username is too long |
| 0x100A | If the email address is longer then 100 characters |
| 0x100B | If the new password is too long |
| 0x100C | If the current password is not specified |
| 0x1015 | If the new password is too weak |
| 0x1017 | If the current password is incorrect |
| 0x6002 | If the email change notification could not be sent |
| 0x6003 | If the password change notification could not be sent |

