Skip to main content
The API service is the primary REST API for Bitwarden Server, handling all vault operations, account management, organization administration, and integrations with client applications.

Overview

The API service provides comprehensive endpoints for:
  • Vault Management: Ciphers, folders, collections, and sync operations
  • Account Operations: User registration, authentication, profile management
  • Organization Administration: Organization and user management, groups, policies
  • Secrets Manager: Service accounts, projects, and secrets
  • Billing: Subscription management, payment processing
  • Send: Secure file and text sharing
  • Public API: Organization-level API for integrations

Architecture

Configuration

Application Settings

The API service is configured via appsettings.json and environment variables:
appsettings.json

Rate Limiting

Rate limiting is automatically enabled for cloud deployments and can be configured per-endpoint.
Rate Limit Configuration

Key Endpoints

Vault Operations

Sync

GET /api/sync - Full vault synchronization for clients

Ciphers

/api/ciphers/* - Vault item CRUD operations

Folders

/api/folders/* - Folder management

Collections

/api/collections/* - Organization collections

Account Management

1

Account Registration

POST /api/accounts/register - Create new user account
2

Profile Management

GET/PUT /api/accounts/profile - User profile operations
3

Two-Factor

/api/two-factor/* - 2FA configuration and verification

Organization Administration

Located in /src/Api/AdminConsole/Controllers/:
Key Controllers

Public API

The Public API provides organization-level access for integrations:

Service Configuration

Startup Configuration

From src/Api/Startup.cs:59:
Service Registration

Authentication Policies

The API uses multiple authorization policies:

Middleware Pipeline

From src/Api/Startup.cs:234:
Request Pipeline

Secrets Manager

Secrets Manager endpoints are available in the commercial version only.
Secrets Manager provides secure storage and access control for application secrets:
  • Service Accounts: Machine identity for API access
  • Projects: Logical grouping of secrets
  • Secrets: Key-value pairs with versioning
  • Access Policies: Fine-grained permissions
Controllers located in /src/Api/SecretsManager/Controllers/:

Health Checks

Health checks are only enabled for cloud deployments by default.
The API exposes two health check endpoints:
  • /healthz - Basic health check
  • /healthz/extended - Detailed health information including database connectivity

Swagger Documentation

API documentation is available via Swagger UI in development and self-hosted deployments:
From src/Api/Startup.cs:294:
Swagger Configuration

Background Jobs

The API service runs background jobs for:
  • Cache Synchronization: ServiceBus-based cache invalidation
  • Event Processing: Handling event integrations (Slack, Teams)
  • Scheduled Tasks: Cleanup and maintenance operations
From src/Api/Startup.cs:219:
Job Services

Deployment

Environment Variables

Key environment variables for the API service:

Docker

Performance Considerations

Distributed Cache

Uses Redis for distributed caching to improve performance across multiple instances

Rate Limiting

Endpoint-level rate limiting prevents abuse and ensures fair usage

Connection Pooling

Database connection pooling for efficient resource utilization

Async Operations

Fully async controllers and services for better throughput