---
title: "Service: /members/register [POST]"
source: https://dev.pageseeder.com/api/services/register-member-POST.html
description: "POST service for self-registering a new PageSeeder member account. Requires email, firstname, surname, and password (MEDIUM strength minimum). Optional username defaults to email. Returns member details with activation status. Requires `publicEnable=self-register` configuration."
last_updated: 2026-09-02T11:36:17+10:00
document_type: api_endpoint
operation_id: member-POST
resource_id: member
path_template: /members/register
http_method: POST
api_category: member
implementation_version: 6.2000
api_since: 4.9100
deprecated_since: null
obsolete_since: null
api_support: supported
cache_control: N/A
generated_at: 2026-09-02
tokens: ~731
---

# /members/register \[POST\]

## Description

Self-register a [member](../../reference/glossary/member_registration.md)

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

> **Note:** If longer passwords are used, it is not necessary to include digits or special characters!

Allows a user to create a PageSeeder member account.

Use this service to 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).

### Email templates

This service uses the default PageSeeder templates.

To use customized emails, use the `globalTemplate` [global property](../../guide/configuration/properties/global_properties.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 ‘@’. 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.

The member-password must be less than 100 characters. The password is required and must have at least a **MEDIUM** strength.

## Parameters

| Name | Description | Required | Type | Default value |
| --- | --- | --- | --- | --- |
| email | The new member’s email address | yes | email |  |
| firstname | The new member’s given name | yes | string |  |
| member-password | The new member’s password | yes | string |  |
| surname | The new member’s family name | yes | string |  |
| member-username | The new member’s username | no | string | *member's email* |
| notify-async | Whether emails should be sent asynchronously (for slow email servers) | no | boolean | `false` |

## Permission

Open to public but only accessible if PageSeeder global.properties contains `publicEnable=self-register`.

### Email templates

## Response

```xml

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

## 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 |
| 0x1005 | If the maximum number of members on the server has been reached |
| 0x1007 | If the Firstname or Surname is too long |
| 0x100B | If the Password is too long |
| 0x100C | Password must be specified |
| 0x1015 | If the Password is too weak |
| 0x1016 | If the Password is equal to the username |
| 0x101B | The first name and surname are required |
| 0x101C | Email is required |

