# Create a key

> Makes a key and shows it once. Without a sign-in the request must be JSON and the key reads data only. launch: true needs a signed-in account.


`POST https://payday.direct/api/v1/keys`

Makes a key and shows it once. Without a sign-in the request must be JSON and the key reads data only. `launch: true` needs a signed-in account.

## Body

- `label` (string): A name for the key
- `purpose` (string): What it is for (optional)
- `launch` (boolean): Allow this key to launch coins. Needs a signed-in account.

```json
{
  "label": "My terminal",
  "purpose": "Show fee recipients in my terminal",
  "launch": false
}
```

## Responses

- 201: Created
- 403: A launch key without a sign-in
- 415: Not sent as JSON
- 429: Too many new keys

```json
{
  "id": "pd_aB3dE9xQ",
  "key": "pd_aB3dE9xQ...SHOWN_ONCE",
  "label": "My terminal",
  "status": "active",
  "limit_per_minute": 600,
  "can_launch": false,
  "signed_in": false,
  "note": "Copy this key now. It is shown only once."
}
```

## Example

```bash
curl -X POST "https://payday.direct/api/v1/keys" \
  -H "Content-Type: application/json" \
  -d '{"label":"My terminal","purpose":"Show fee recipients in my terminal","launch":false}'
```