## Create

**post** `/compute/v1/admin/api-keys`

Create a workspace API key

### Body Parameters

- `name: string`

  API key name

- `allowed_ips: optional array of string`

  IP addresses allowed to use this key (IPv4 or IPv6). An empty array (the default) means all IPs are allowed.

- `expires_in_days: optional number`

  Days until the key expires. Omit for a key that does not expire.

- `mode: optional "live" or "test"`

  Key mode. Test keys create test-mode resources with synthetic data.

  - `"live"`

  - `"test"`

- `workspace_id: optional string`

  Workspace ID to scope this key to. Omit for default workspace.

### Returns

- `key: string`

  The full API key. This is only shown once — store it securely.

- `key_details: object { id, allowed_ips, created_at, 8 more }`

  - `id: string`

    API key ID

  - `allowed_ips: array of string`

    IP addresses allowed to use this key. An empty array means all IPs are allowed.

  - `created_at: string`

  - `expires_at: string`

    When the key expires. Null if the key does not expire.

  - `is_active: boolean`

  - `key_prefix: string`

    First 12 characters of the key

  - `key_type: "workspace"`

    - `"workspace"`

  - `last_used_at: string`

  - `livemode: boolean`

    Whether this is a live API key (false for test keys).

  - `name: string`

    API key name

  - `workspace_id: string`

    Workspace this key is scoped to

### Example

```http
curl https://api.boltz.bio/compute/v1/admin/api-keys \
    -H 'Content-Type: application/json' \
    -H "x-api-key: $BOLTZ_API_KEY" \
    -d '{
          "name": "x"
        }'
```
