# Create sub-account API key

> Create sub-account API key. Requires a parent project API key; sub-account API keys receive HTTP 403.

`POST https://api.zavu.dev/v1/sub-accounts/{id}/api-keys`

Create sub-account API key. Requires a parent project API key; sub-account API keys receive HTTP 403.

## Parameters

- `id` (path, string, required): Sub-account ID.

## Body

- `name` (string, required)
- `environment` (string) One of: `live`, `test`.
- `permissions` (string[])

## Responses

### 201

API key created. The full key is only returned once.

- `apiKey` (object, required)
  - `id` (string, required)
  - `key` (string, required)
  - `name` (string, required)
  - `environment` (string, required) One of: `live`, `test`.

### 400

Invalid request.

- `code` (string, required)
- `message` (string, required)
- `details` (object)

### 401

Unauthorized.

- `code` (string, required)
- `message` (string, required)
- `details` (object)

### 403

Forbidden. Sub-account API keys cannot manage sub-accounts.

- `code` (string, required)
- `message` (string, required)
- `details` (object)

### 404

Not a sub-account of this team. The parent project's own id is not a sub-account and answers 404.

- `code` (string, required)
- `message` (string, required)
- `details` (object)

## Example

```bash
curl -X POST "https://api.zavu.dev/v1/sub-accounts/id_abc123/api-keys" \
  -H "Authorization: Bearer $ZAVUDEV_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Production Key",
  "environment": "live"
}'
```

```typescript
import Zavudev from "@zavudev/sdk";

const zavu = new Zavudev({ apiKey: process.env.ZAVUDEV_API_KEY });

const result = await zavu.subAccounts.apiKeys.create("id_abc123", {
  name: "Production Key",
  environment: "live",
});

console.log(result);
```
