# rip.pds.admin.createAccount

> Published by [pds.rip](https://lexicon.garden/identity/did:plc:w24v65i3bcsxk6mbbgfdukve)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:w24v65i3bcsxk6mbbgfdukve/rip.pds.admin.createAccount)
- [Documentation](https://lexicon.garden/lexicon/did:plc:w24v65i3bcsxk6mbbgfdukve/rip.pds.admin.createAccount/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:w24v65i3bcsxk6mbbgfdukve/rip.pds.admin.createAccount/examples)

## Definitions

### `rip.pds.admin.createAccount`

**Type**: `procedure`

Issue an account on any configured domain, including operator-only and permanent ones, optionally on somebody else's behalf. Bypasses the quota. Operators only.

#### Input

**Encoding**: `application/json`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `domain` | `string` | No | Handle domain to mint under. Defaults to the server's first configured domain, which is never the operator-only one. |
| `handle` | `string` (handle) | No | Desired handle. A two-word handle under the chosen domain is generated when omitted. |
| `ownerDid` | `string` (did) | No | Who ends up holding the account, and sees it in their own dashboard. Defaults to the operator. |
| `password` | `string` | No | One is generated and returned when omitted. |

#### Output

**Encoding**: `application/json`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `account` | `ref` → `rip.pds.admin.defs#accountView` | Yes |  |
| `password` | `string` | Yes | Shown once. |
| `pdsEndpoint` | `string` (uri) | Yes |  |

#### Errors

- **NotAnOperator**: The calling account does not operate this server.
- **HandleUnavailable**: The requested handle is taken or not valid for the domain.
- **UnknownDomain**: The requested domain is not configured on this server.

## Raw Schema

```json
{
  "id": "rip.pds.admin.createAccount",
  "defs": {
    "main": {
      "type": "procedure",
      "input": {
        "schema": {
          "type": "object",
          "properties": {
            "domain": {
              "type": "string",
              "description": "Handle domain to mint under. Defaults to the server's first configured domain, which is never the operator-only one."
            },
            "handle": {
              "type": "string",
              "format": "handle",
              "description": "Desired handle. A two-word handle under the chosen domain is generated when omitted."
            },
            "ownerDid": {
              "type": "string",
              "format": "did",
              "description": "Who ends up holding the account, and sees it in their own dashboard. Defaults to the operator."
            },
            "password": {
              "type": "string",
              "maxLength": 256,
              "minLength": 8,
              "description": "One is generated and returned when omitted."
            }
          }
        },
        "encoding": "application/json"
      },
      "errors": [
        {
          "name": "NotAnOperator",
          "description": "The calling account does not operate this server."
        },
        {
          "name": "HandleUnavailable",
          "description": "The requested handle is taken or not valid for the domain."
        },
        {
          "name": "UnknownDomain",
          "description": "The requested domain is not configured on this server."
        }
      ],
      "output": {
        "schema": {
          "type": "object",
          "required": [
            "account",
            "password",
            "pdsEndpoint"
          ],
          "properties": {
            "account": {
              "ref": "rip.pds.admin.defs#accountView",
              "type": "ref"
            },
            "password": {
              "type": "string",
              "description": "Shown once."
            },
            "pdsEndpoint": {
              "type": "string",
              "format": "uri"
            }
          }
        },
        "encoding": "application/json"
      },
      "description": "Issue an account on any configured domain, including operator-only and permanent ones, optionally on somebody else's behalf. Bypasses the quota. Operators only."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}
```
