# ai.newnal.pdn.server.createAppPassword

> Published by [newnal-platform.newnal.id](https://lexicon.garden/identity/did:plc:vciktevzoffubdvdaajz2yp3)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:vciktevzoffubdvdaajz2yp3/ai.newnal.pdn.server.createAppPassword)
- [Documentation](https://lexicon.garden/lexicon/did:plc:vciktevzoffubdvdaajz2yp3/ai.newnal.pdn.server.createAppPassword/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:vciktevzoffubdvdaajz2yp3/ai.newnal.pdn.server.createAppPassword/examples)

## Definitions

### `ai.newnal.pdn.server.createAppPassword#appPassword`

**Type**: `object`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `createdAt` | `string` (datetime) | Yes |  |
| `name` | `string` | Yes |  |
| `password` | `string` | Yes |  |
| `privileged` | `boolean` | No |  |
| `scope` | `string` | Yes |  |

### `ai.newnal.pdn.server.createAppPassword`

**Type**: `procedure`

Create an App Password bound to an OAuth scope. Sessions created from it through com.atproto.server.createSession carry exactly the permissions of that scope, as an OAuth session would. Requires a full-access session.

#### Input

**Encoding**: `application/json`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `name` | `string` | Yes | A short name for the App Password, to help distinguish them. |
| `privileged` | `boolean` | No | If an app password has 'privileged' access to possibly sensitive account state. Meant for use with trusted clients. |
| `scope` | `string` | Yes | OAuth scope string (space separated; must include 'atproto'; may use include:<permission-set>). |

#### Output

**Encoding**: `application/json`

#### Errors

- **AccountTakedown**
- **InvalidScope**

## Raw Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "appPassword": {
      "properties": {
        "createdAt": {
          "format": "datetime",
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "password": {
          "type": "string"
        },
        "privileged": {
          "type": "boolean"
        },
        "scope": {
          "type": "string"
        }
      },
      "required": [
        "name",
        "password",
        "createdAt",
        "scope"
      ],
      "type": "object"
    },
    "main": {
      "description": "Create an App Password bound to an OAuth scope. Sessions created from it through com.atproto.server.createSession carry exactly the permissions of that scope, as an OAuth session would. Requires a full-access session.",
      "errors": [
        {
          "name": "AccountTakedown"
        },
        {
          "name": "InvalidScope"
        }
      ],
      "input": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "name": {
              "description": "A short name for the App Password, to help distinguish them.",
              "type": "string"
            },
            "privileged": {
              "description": "If an app password has 'privileged' access to possibly sensitive account state. Meant for use with trusted clients.",
              "type": "boolean"
            },
            "scope": {
              "description": "OAuth scope string (space separated; must include 'atproto'; may use include:<permission-set>).",
              "type": "string"
            }
          },
          "required": [
            "name",
            "scope"
          ],
          "type": "object"
        }
      },
      "output": {
        "encoding": "application/json",
        "schema": {
          "ref": "#appPassword",
          "type": "ref"
        }
      },
      "type": "procedure"
    }
  },
  "id": "ai.newnal.pdn.server.createAppPassword",
  "lexicon": 1
}
```
