---
title: "Service: /administrators [POST]"
source: https://dev.pageseeder.com/api/services/administrators_post.html
description: "POST service that adds members to administrator privileges on the server. Creates new accounts if needed and resets passwords for existing members. Requires administrator permission."
last_updated: 2026-09-08T12:22:26+10:00
document_type: api_endpoint
operation_id: member-POST
resource_id: member
path_template: /administrators
http_method: POST
api_category: member
implementation_version: 6.3000
api_since: 5.9500
deprecated_since: null
obsolete_since: null
api_support: supported
cache_control: N/A
generated_at: 2026-09-02
tokens: ~889
---

# /administrators \[POST\]

## Description

Add a member to the list of accounts with [administrator](../../reference/glossary/administrator.md) privileges on the server.

If no member exists for the email address or username specified, an account is created.

> **Note:** When existing members are made administrators, their [password](../../reference/glossary/password.md) is automatically reset. The system does not prevent a member from entering their previous password again, but it does not accept that password unless it is strong enough.

## Parameters

| Name | Description | Required | Type | Default |
| --- | --- | --- | --- | --- |
| auto-activate | If a new member account should automatically activate (member-password should also be set) | no | boolean | `false` |
| email | The email address of the member (required if `member-username`  is not provided) | conditional | string |  |
| firstname | The given name of the member (used to create a new account) | no | string | `Member` |
| group | Group name or ID for email template to override the group on the request | no | string |  |
| member-password | The password of the member account (only to be set if no account exists) | no | string | `[random]` |
| member-username | The username of the member. This  defaults to the member email address (username is required if `email` is not provided) | conditional | string |  |
| notify-async | If email messages should be sent asynchronously (for slow or sensitive email servers) | no | boolean | `false` |
| send-email | If the member should receive a “welcome and reset password” message (always `false` if internal sign-in not allowed for email domain by identity config) | no | boolean | `true` |
| surname | The family name of the member (used to create a new account) | no | string | `[4 digits]` |

Either `email` or `member-username` must be provided.

## Permission

This service requires administrator.

## Response

Returns HTTP 200 on success.

### Response structure

The response contains an `administrator-creation` element or object with:

- `member-created`: whether a new member was created (`true`) or an existing member was used (`false`);
- `member`: the member details including `id`, `firstname`, `surname`, `username`, `status` and `fullname`.

```xml
<administrator-creation [member-created="true"]>
  <member id="[member id]"
          firstname="[first name]"
          surname="[surname]"
          username="[username]"
          status="[activated|unactivated|set-password]">
    <fullname>[first and last name of the member]</fullname>
  </member>
</administrator-creation>
```

### Example response

```properties
POST /ps/service/administrators.xml HTTP/1.1
Content-Type: application/x-www-form-urlencoded

email=admin%40example.com&firstname=Jane&surname=Smith&member-password=SecurePass123
```

```xml
<administrator-creation member-created="true">
  <member id="123"
          firstname="Jane"
          surname="Smith"
          username="admin@example.com"
          status="set-password">
    <fullname>Jane Smith</fullname>
  </member>
</administrator-creation>
```

## Error Handling

| 0x1002 | If the email address is invalid |
| --- | --- |
| 0x1005 | If the maximum number of members on the server has been reached |
| 0x100F | If `send-email=true` and member doesn't have an email address |
| 0x101A | The username and email are not from the same member |
| 0x1015 | Password is too weak |
| 0x1016 | Password cannot be equal to username |
| 0x1025 | The member is already an administrator |

