---
title: "Service: /members [POST]"
source: https://dev.pageseeder.com/api/services/members_post.html
description: "Creates a new PageSeeder member account with customizable username, email, password, and optional personal group creation, welcome email, and auto-activation features."
last_updated: 2026-09-08T13:55:18+10:00
document_type: api_endpoint
operation_id: member-POST
resource_id: member
path_template: /members
http_method: POST
api_category: member
implementation_version: 6.2004
api_since: 4.9100
deprecated_since: null
obsolete_since: null
api_support: supported
cache_control: N/A
generated_at: 2026-09-02
tokens: ~1082
---

# /members \[POST\]

## Description

Create a new account for a [Member](../../reference/glossary/member.md) in PageSeeder but without joining the member to a [Group](../../reference/glossary/group.md).

### Member details

Both the firstname and surname are limited to 20 characters.

The member-username must be less than 100 characters, unique and cannot contain a ‘@’ or ‘,’. The username is required unless 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.

### 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 address is used if no confirmation is needed, otherwise, a new password is generated.

> **Warning:** Passwords must not be on the banned password list (for example: “passw0rd”, “pageseeder”)

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.

> **Note:** If you use longer passwords, you don’t necessarily need to include digits or special characters!

### Other options

It is possible to create a personal group using the personal-group boolean parameter.

To send a welcome email to the new member, use the welcome-email boolean parameter.

The account can be automatically activated by using the auto-activate boolean parameter. If the member-password is not set, then the member’s status is `set-password` (not `activated`), even if auto-activate is `true`.

### 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 |
| --- | --- | --- | --- | --- |
| email | The new member’s email address (required if member-username is not specified) | yes | email | *(empty)* |
| member-username | The new member’s username (required if email is not specified), defaults to the member’s email address | yes | string | *(empty)* |
| auto-activate | Whether to activate the new member automatically (member-password should also be set) | no | boolean | `false` |
| firstname | The new member’s given name | no  | string | `Member` |
| member-password | The new member’s password (is generated if unspecified) | no | string | *(generated)* |
| personal-group | Whether to create the personal group | no | boolean | `false` |
| surname | The new member’s family name | no | string | *4 random digits* |
| welcome-email | Whether to send a welcome email to the new member | no | boolean | `true` |
| notify-async | Whether emails should be sent asynchronously (for slow email servers) | no | boolean | `false` |

The password might be rejected if it isn’t strong enough – check against the [PageSeeder password policy](../../reference/glossary/password.md).

It is mandatory to put values for at least these parameters:

email or member-username

## Permission

This service requires administrator.

### Member details

## Response

```xml

<member-creation [welcome-email-failed="true"]>
  <member id="[member id]"
          firstname="[first name]"
          surname="[surname]"
          username="[username]"
          email="[email]"
          status="[activated|unactivated|set-password]">      
    <fullname>[full name]</fullname>
  </member>
</member-creation> 
```

## Error Handling

| Code | Cause / Description |
| --- | --- |
| 0x1001 | If the username contains the character ‘@’ or ‘,’ |
| 0x100A | The email is too long ( more than 100 characters) |
| 0x1002 | If the email address is invalid |
| 0x1004 | If the username or email are already in use |
| 0x1005 | If the maximum number of members on the server has been reached |
| 0x1007 | The surname or firstname is too long (more than 20 characters) |
| 0x100B | If the Password is too long ( more than 100 characters) |
| 0x1008               | At least one of email/username must be specified |
| 0x1009               | The username is too long ( more than 100 characters) |
| 0x1015 | If the Password is too weak |
| 0x1016 | If the Password is equal to the username |

