Skip to main content

Overview

Ciphers are the core vault items in Bitwarden. They can represent:
  • Login credentials (username/password)
  • Secure Notes
  • Card information (credit/debit cards)
  • Identity information (personal details)
  • SSH Keys

Get Cipher

Retrieve a specific cipher by ID.
GET /ciphers/{id}
id
string
required
The cipher ID

Response

id
string
required
Cipher unique identifier
type
number
required
Cipher type (1=Login, 2=SecureNote, 3=Card, 4=Identity, 5=SSHKey)
name
string
required
Encrypted cipher name
notes
string
Encrypted notes
login
object
Login credentials (for type=1)
card
object
Card information (for type=3)
identity
object
Identity information (for type=4)
favorite
boolean
Whether cipher is marked as favorite
organizationId
string
Organization ID if cipher is shared
collectionIds
array
Collections containing this cipher

Get Cipher Details

Retrieve detailed cipher information including collection associations.
GET /ciphers/{id}/details
id
string
required
The cipher ID

Get Cipher as Admin

Retrieve cipher details with admin permissions.
GET /ciphers/{id}/admin
id
string
required
The cipher ID
This endpoint requires admin or manager permissions for the organization.

List All Ciphers

Retrieve all ciphers accessible to the authenticated user.
GET /ciphers

Response

Returns a list of all ciphers including personal and organization ciphers.

List Organization Ciphers

Retrieve all ciphers for a specific organization.
GET /ciphers/organization-details?organizationId={organizationId}&includeMemberItems={includeMemberItems}
organizationId
string
required
The organization ID
includeMemberItems
boolean
default:"false"
Include items in user’s default collections

List Assigned Organization Ciphers

Retrieve organization ciphers assigned to the current user.
GET /ciphers/organization-details/assigned?organizationId={organizationId}
organizationId
string
required
The organization ID

Create Cipher

Create a new cipher.
curl -X POST "https://api.bitwarden.com/ciphers" \
  -H "Authorization: Bearer {access_token}" \
  -H "Content-Type: application/json" \
  -d '{
    "type": 1,
    "name": "2.encrypted_name",
    "notes": "2.encrypted_notes",
    "login": {
      "username": "2.encrypted_username",
      "password": "2.encrypted_password",
      "uris": [
        {"uri": "2.encrypted_uri"}
      ]
    },
    "folderId": null,
    "favorite": false
  }'

Request Body

type
number
required
Cipher type (1=Login, 2=SecureNote, 3=Card, 4=Identity, 5=SSHKey)
name
string
required
Encrypted cipher name
notes
string
Encrypted notes
login
object
Login data (required for type=1)
secureNote
object
Secure note data (required for type=2)
card
object
Card data (required for type=3)
identity
object
Identity data (required for type=4)
folderId
string
Folder ID to place cipher in
organizationId
string
Organization ID if creating organization cipher
favorite
boolean
default:"false"
Mark as favorite
lastKnownRevisionDate
string
Last known revision date for conflict detection

Create Cipher with Collections

Create a cipher and assign it to collections in one operation.
POST /ciphers/create
cipher
object
required
Cipher object (same as Create Cipher)
collectionIds
array
required
Array of collection IDs to assign cipher to

Update Cipher

Update an existing cipher.
PUT /ciphers/{id}
id
string
required
The cipher ID

Request Body

Same as Create Cipher, all fields should be provided.

Partial Update Cipher

Update only specific fields of a cipher (folder and favorite status).
PUT /ciphers/{id}/partial
id
string
required
The cipher ID
folderId
string
New folder ID (null for no folder)
favorite
boolean
Favorite status

Share Cipher

Share a personal cipher with an organization.
PUT /ciphers/{id}/share
id
string
required
The cipher ID
cipher
object
required
Updated cipher object with organizationId
collectionIds
array
required
Collections to share cipher with

Update Cipher Collections

Update which collections a cipher belongs to.
PUT /ciphers/{id}/collections
id
string
required
The cipher ID
collectionIds
array
required
New array of collection IDs

Bulk Update Collections

Add or remove collections for multiple ciphers.
POST /ciphers/bulk-collections
organizationId
string
required
Organization ID
cipherIds
array
required
Array of cipher IDs to update
collectionIds
array
required
Array of collection IDs
removeCollections
boolean
default:"false"
Remove collections instead of adding them

Archive Cipher

Archive a single cipher.
PUT /ciphers/{id}/archive
id
string
required
The cipher ID

Bulk Archive Ciphers

Archive multiple ciphers at once.
PUT /ciphers/archive
ids
array
required
Array of cipher IDs to archive (max 500)

Unarchive Cipher

Restore an archived cipher.
PUT /ciphers/{id}/unarchive
id
string
required
The cipher ID

Bulk Unarchive Ciphers

Restore multiple archived ciphers.
PUT /ciphers/unarchive
ids
array
required
Array of cipher IDs to unarchive (max 500)

Soft Delete Cipher

Move a cipher to trash (soft delete).
PUT /ciphers/{id}/delete
id
string
required
The cipher ID

Bulk Soft Delete

Move multiple ciphers to trash.
PUT /ciphers/delete
ids
array
required
Array of cipher IDs (max 500)

Restore Cipher

Restore a soft-deleted cipher from trash.
PUT /ciphers/{id}/restore
id
string
required
The cipher ID

Bulk Restore Ciphers

Restore multiple ciphers from trash.
PUT /ciphers/restore
ids
array
required
Array of cipher IDs (max 500)

Delete Cipher Permanently

Permanently delete a cipher (cannot be undone).
DELETE /ciphers/{id}
id
string
required
The cipher ID
This permanently deletes the cipher. This action cannot be undone.

Bulk Delete Permanently

Permanently delete multiple ciphers.
DELETE /ciphers
ids
array
required
Array of cipher IDs (max 500)

Move Ciphers to Folder

Move multiple ciphers to a folder.
PUT /ciphers/move
ids
array
required
Array of cipher IDs (max 500)
folderId
string
Destination folder ID (null for no folder)

Encryption

All sensitive cipher data must be encrypted client-side before sending to the API. The API stores encrypted data only.

Encrypted Fields

The following fields are encrypted:
  • name
  • notes
  • Login: username, password, uris, totp
  • Card: cardholderName, number, code
  • Identity: All fields
  • SSH Key: All fields

Encryption Format

Encrypted strings follow the format: {encType}.{encryptedData}|{iv}|{mac} Example: 2.abc123|def456|ghi789

Build docs developers (and LLMs) love