## Overview

API Keys provide secure programmatic access to Pulze’s API, allowing you to integrate Pulze functionality into your applications and workflows. Each API key is associated with a specific space and can be managed through the Permissions interface.

API Keys are available exclusively with the **Pulze X Suite** subscription plan.

## Subscription Requirements

### Free & Pulze One Plans

Users on Free and Pulze One plans will see an upgrade prompt when accessing the API Keys section:

- **Exclusive Feature** - API Keys require Pulze X Suite subscription
- **Easy Upgrade** - Click “Upgrade to Pulze X Suite” to unlock this feature
- **Full Feature Access** - Upgrade provides unlimited API keys and advanced rate limits

### Pulze X Suite Plan

Pulze X Suite subscribers have full access to:

- Create unlimited API keys
- Full API access and functionality
- Advanced rate limits
- All Pulze features unlocked

## Viewing API Keys

The API Keys table displays:

- **Name** - Descriptive name for the API key
- **Key Preview** - Masked API key (e.g., `pk_...xxxxx`)
- **Space** - Associated space with logo
- **Owner** - User who created the key with avatar
- **Created at** - Date and time of creation

## Creating API Keys

### Step-by-Step Process

1. Click the **“New API Key”** button
2. Provide a descriptive name for the key
3. Select the space to associate with the key
4. Click **“Create”** to generate the key
5. **Important**: Copy the full API key immediately - it won’t be shown again

**Copy your API key immediately!** For security reasons, the full key is only displayed once during creation. After you close the dialog, only a masked version will be visible.

### Best Practices for Naming

- Use descriptive names that indicate the purpose
- Include the environment (e.g., “Production API”, “Development Key”)
- Reference the application or service using the key
- Examples:
  - “Mobile App - Production”
  - “Analytics Dashboard - Dev”
  - “CI/CD Pipeline”

## Managing API Keys

### Viewing Key Details

Click on any API key row to view:

- Full key details (masked for security)
- Associated space information
- Creation date and owner
- Usage information

### API Key Actions

For each API key, you can: **View Details** - Click the menu icon (⋮) to access:

- Copy key (masked version)
- View full details
- Remove the key

**Remove API Key**:

1. Click the menu icon (⋮) next to the key
2. Select **“Remove”**
3. Confirm the deletion
4. The key is immediately revoked and cannot be used

Removing an API key immediately revokes access. Any applications using that key will stop working.

## API Key Security

### Security Features

- **One-time Display** - Full keys are shown only once at creation
- **Masked Storage** - Keys are masked in the interface after creation
- **Immediate Revocation** - Deleted keys stop working instantly
- **Space Association** - Keys are scoped to specific spaces
- **Owner Tracking** - Each key has an associated creator

### Security Best Practices

**Secure Storage**: Store API keys securely using environment variables or secret management systems. Never commit keys to version control.

**Rotate Regularly**: Create new keys periodically and remove old ones to maintain security.

**Least Privilege**: Create separate keys for different applications or environments. This limits the impact if a key is compromised.

**Monitor Usage**: Regularly review your active API keys and remove any that are no longer needed.

## Search and Filtering

### Search Functionality

Search API keys by:

- **Name** - Find keys by their descriptive name
- Real-time search results
- Clear search with the X button

### Empty State

When no API keys exist:

- Helpful empty state message
- **“New API Key”** button prominently displayed
- Quick start instructions

## Using API Keys

### Authentication

Include your API key in API requests:

```
curl https://api.pulze.ai/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4",
    "messages": [{"role": "user", "content": "Hello!"}]
  }'
```

### Key Format

API keys follow the format:

- Prefix: `pk_` (for production keys)
- Random alphanumeric string
- Example: `pk_abc123def456ghi789jkl`

## Pagination

For organizations with many API keys:

- Navigate through pages using pagination controls
- Adjust items per page
- View total key count

## Common Use Cases

### Development and Testing

Create separate keys for:

- Local development environment
- Staging/testing environment
- Production environment

### Application Integration

Use API keys to integrate Pulze with:

- Web applications
- Mobile apps
- Backend services
- CI/CD pipelines
- Analytics tools

### Team Collaboration

- Create keys for different team members or services
- Track which keys are used by whom
- Easy revocation if team members leave

## Troubleshooting

### Key Not Working

If an API key stops working:

1. Verify the key hasn’t been removed
2. Check if the associated space still exists
3. Ensure your subscription is active
4. Verify the key is being sent correctly in requests

### Lost Key

If you lose an API key:

1. You cannot retrieve the original key
2. Create a new API key
3. Update your applications with the new key
4. Remove the lost key for security

## Permission Requirements

Creating and managing API keys requires appropriate permissions within your organization and the associated space.
