You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.4 KiB
2.4 KiB
Vaultwarden API Integration Guide
Overview
Vaultwarden implements the Bitwarden Client API. This guide covers the main endpoints for integration.
Authentication
Register
POST /api/accounts/register
Content-Type: application/json
{
"email": "user@example.com",
"password": "master_password_hash",
"passwordHint": "optional hint",
"name": "User Name",
"keys": {
"encryptedPrivateKey": "...",
"publicKey": "..."
}
}
Login
POST /identity/connect/token
Content-Type: application/x-www-form-urlencoded
grant_type=password&username=user@example.com&password=...&scope=api offline_access&client_id=web&client_secret=...
Vault Operations
Get Vault
GET /api/sync
Authorization: Bearer <access_token>
Create Item
POST /api/ciphers
Content-Type: application/json
Authorization: Bearer <access_token>
{
"type": 1,
"name": "Login Item Name",
"login": {
"username": "user",
"password": "encrypted_password",
"uri": "https://example.com"
},
"favorite": false,
"organizationId": null
}
Update Item
PUT /api/ciphers/:id
Content-Type: application/json
Authorization: Bearer <access_token>
{
"id": "uuid",
"type": 1,
"name": "Updated Name",
"login": {...},
"revisionDate": "2026-04-10T00:00:00Z"
}
Delete Item
POST /api/ciphers/:id/delete
Authorization: Bearer <access_token>
Organization API
Create Organization
POST /api/organizations
Authorization: Bearer <access_token>
{
"name": "My Org",
"billingEmail": "admin@example.com",
"planType": 0
}
Invite User
POST /api/organizations/:id/users
Authorization: Bearer <access_token>
{
"emails": ["user@example.com"],
"type": 0
}
Emergency Access
Grant Emergency Access
POST /api/emergency-access/:id/grant
Authorization: Bearer <access_token>
Admin API
Enable with ADMIN_TOKEN environment variable.
GET /admin
Authorization: Bearer <admin_token>
Rate Limiting
Default limits:
- Login: 5 requests per IP per 5 minutes
- API: 100 requests per IP per minute
Configure via RATE_LIMIT_* environment variables.
Webhooks
Configure WEBHOOK_URL and WEBHOOK_EVENTS to receive events:
{
"event": "cipher.create",
"userId": "uuid",
"organizationId": "uuid",
"timestamp": "2026-04-10T00:00:00Z"
}
Community contribution - not official documentation