<!-- BusyBot node reference — https://busybot.net/tools/bitwarden/ -->

> Node: Bitwarden (`bitwarden`) · Action · v1
> Category: Data & Storage · Credentials: Bitwarden API (`bitwardenApi`)
> Updated: 2026-08-16

# Bitwarden

> Manage Bitwarden organization collections, events, groups, and members

## Overview

Bitwarden is a password management solution. This tool interacts with the Bitwarden Public API (Organization API) to manage collections, events, groups, and members within an organization. It supports CRUD operations on groups and members, listing/updating collections, and retrieving audit events. Authentication uses OAuth2 client_credentials flow with a client ID and secret obtained from the organization admin console. Supports both cloud-hosted and self-hosted Bitwarden instances.

**Category:** Data & Storage  
**Tool Name:** `bitwarden`  
**Version:** 1

**Appearance:** Icon: `si-bitwarden` | Color: `#175DDC`

## Node Type

**Action** — processes input items and produces output

## Input / Output

| Direction | Port(s) |
|-----------|--------|
| Input | `Input` |
| Output | `Output`, `Error` |

## Credentials

This tool requires **Bitwarden API** credentials.
See the [Credentials Guide](https://busybot.net/credentials/bitwarden-api/) for setup instructions.

### Resources

| Resource | Value |
|----------|-------|
| Collection | `collection` |
| Event | `event` |
| Group | `group` |
| Member | `member` |

### Operations

Operations for the `collection` resource:

| Operation | Value | Description |
|-----------|-------|-------------|
| Delete | `delete` | Delete a collection |
| Get | `get` | Retrieve one collection |
| Get Many | `getAll` | List the organization's collections |
| Update | `update` | Update a collection |

Operations for the `event` resource:

| Operation | Value | Description |
|-----------|-------|-------------|
| Get Many | `getAll` | Retrieve organization audit events |

Operations for the `group` resource:

| Operation | Value | Description |
|-----------|-------|-------------|
| Create | `create` | Create a group |
| Delete | `delete` | Delete a group |
| Get | `get` | Retrieve one group |
| Get Many | `getAll` | List the organization's groups |
| Get Members | `getMembers` | List the member IDs in a group |
| Update | `update` | Update a group |
| Update Members | `updateMembers` | Replace a group's member assignments |

Operations for the `member` resource:

| Operation | Value | Description |
|-----------|-------|-------------|
| Create | `create` | Invite a member to the organization |
| Delete | `delete` | Remove a member |
| Get | `get` | Retrieve one member |
| Get Groups | `getGroups` | List the group IDs a member belongs to |
| Get Many | `getAll` | List the organization's members |
| Update | `update` | Update a member |
| Update Groups | `updateGroups` | Replace a member's group assignments |

### Parameters

#### Collection: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Collection ID | `string` | Yes | — | The identifier of the collection. |

#### Collection: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Collection ID | `string` | Yes | — | The identifier of the collection. |

#### Collection: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Return All | `boolean` | No | `false` | Whether to return all results or only up to a given limit. |
| Limit | `number` | No | `10` | Max number of results to return. _(shown when Return All is `false`)_ |

#### Collection: Update

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Collection ID | `string` | Yes | — | The identifier of the collection. |
| Update Fields | `collection` | Yes | `{}` | Fields to update on the collection. |
| — Group IDs (`groups`) | `string` | No | — | Comma-separated group IDs to assign to this collection. Each group is mapped with ReadOnly=false. Find group IDs via the Group > Get Many operation. |
| — External ID | `string` | No | — | The external identifier to set on this collection. |

#### Event: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Return All | `boolean` | No | `false` | Whether to return all results or only up to a given limit. |
| Limit | `number` | No | `10` | Max number of results to return. _(shown when Return All is `false`)_ |
| Filters | `collection` | No | `{}` | Filters for retrieving events. |
| — Acting User ID | `string` | No | — | The unique identifier of the acting user. |
| — End Date | `dateTime` | No | — | The end date for the search. |
| — Item ID | `string` | No | — | The unique identifier of the item that the event describes. |
| — Start Date | `dateTime` | No | — | The start date for the search. |

#### Group: Create

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Name | `string` | Yes | — | The name of the group to create. |
| Access All | `boolean` | No | `false` | Whether to allow this group to access all collections within the organization, instead of only its associated collections. If set to true, this option overrides any collection assignments. |
| Additional Fields | `collection` | No | `{}` | Additional fields for group creation. |
| — Collection IDs | `string` | No | — | Comma-separated collection IDs to assign to this group. Each collection is mapped with ReadOnly=false. Find collection IDs via the Collection > Get Many operation. |
| — External ID | `string` | No | — | The external identifier to set on this group. |

#### Group: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Group ID | `string` | Yes | — | The identifier of the group. |

#### Group: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Group ID | `string` | Yes | — | The identifier of the group. |

#### Group: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Return All | `boolean` | No | `false` | Whether to return all results or only up to a given limit. |
| Limit | `number` | No | `10` | Max number of results to return. _(shown when Return All is `false`)_ |

#### Group: Get Members

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Group ID | `string` | Yes | — | The identifier of the group. |

#### Group: Update

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Group ID | `string` | Yes | — | The identifier of the group. |
| Update Fields | `collection` | No | `{}` | Fields to update on the group. At least one field must be provided. |
| — Access All | `boolean` | No | `false` | Whether to allow this group to access all collections within the organization. |
| — Collection IDs | `string` | No | — | Comma-separated collection IDs to assign to this group. Each collection is mapped with ReadOnly=false. |
| — External ID | `string` | No | — | The external identifier to set on this group. |
| — Name | `string` | No | — | The new name for the group. |

#### Group: Update Members

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Group ID | `string` | Yes | — | The identifier of the group. |
| Member IDs | `string` | No | — | Comma-separated list of IDs of members to set in the group. This replaces all existing member assignments. |

#### Member: Create

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Email | `string` | No | — | The email address of the member to invite. |
| Type | `options` | Yes | `2` | The role type for the member. |
| | | | | Options: `0` (Owner), `1` (Admin), `2` (User), `3` (Manager) |
| Access All | `boolean` | No | `false` | Whether to allow this member to access all collections within the organization. |
| Additional Fields | `collection` | No | `{}` | Additional fields for member creation. |
| — Collection IDs | `string` | No | — | Comma-separated collection IDs to assign to this member. Each collection is mapped with ReadOnly=false. |
| — External ID | `string` | No | — | The external identifier to set on this member. |

#### Member: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Member ID | `string` | Yes | — | The identifier of the member. |

#### Member: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Member ID | `string` | Yes | — | The identifier of the member. |

#### Member: Get Groups

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Member ID | `string` | Yes | — | The identifier of the member. |

#### Member: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Return All | `boolean` | No | `false` | Whether to return all results or only up to a given limit. |
| Limit | `number` | No | `10` | Max number of results to return. _(shown when Return All is `false`)_ |

#### Member: Update

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Member ID | `string` | Yes | — | The identifier of the member. |
| Update Fields | `collection` | No | `{}` | Fields to update on the member. At least one field must be provided. |
| — Type | `options` | No | `2` | The new role type for the member. |
| | | | | Options: `0` (Owner), `1` (Admin), `2` (User), `3` (Manager) |
| — Collection IDs | `string` | No | — | Comma-separated collection IDs to assign to this member. Each collection is mapped with ReadOnly=false. |
| — External ID | `string` | No | — | The external identifier to set on this member. |
| — Access All | `boolean` | No | `false` | Whether to allow this member to access all collections within the organization. |

#### Member: Update Groups

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Member ID | `string` | Yes | — | The identifier of the member. |
| Group IDs (`groupIds`) | `string` | No | — | Comma-separated list of IDs of groups to set for the member. This replaces all existing group assignments. |

#### All Operations

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Max Concurrency | `number` | No | `10` | Maximum number of items to process concurrently. Accepts 1–100. |

## Output Data

The Bitwarden API response is merged onto the input item's JSON, so the properties you started with remain available. Binary data on the input item is forwarded.

| Resource / Operation | Output |
|----------------------|--------|
| Collection `get`, Collection `update` | One item per input item, carrying the collection object. |
| Collection `getAll` | **Fans out** — one item per collection. |
| Event `getAll` | **Fans out** — one item per audit event. |
| Group `create`, Group `get`, Group `update` | One item per input item, carrying the group object. |
| Group `getAll` | **Fans out** — one item per group. |
| Group `getMembers` | **Fans out** — one item per member of the group, each carrying a single `memberId`. |
| Member `create`, Member `get`, Member `update` | One item per input item, carrying the member object. |
| Member `getAll` | **Fans out** — one item per member. |
| Member `getGroups` | **Fans out** — one item per group the member belongs to, each carrying a single `groupId`. |
| Collection `delete`, Group `delete`, Group `updateMembers`, Member `delete`, Member `updateGroups` | One item per input item, carrying `success: true`. |

Any operation that fans out emits the input item unchanged when the list comes back empty, so the branch never goes silent.

`getMembers` and `getGroups` return bare identifiers, not full objects:

```json
{
  "memberId": "5e59c8c7-e05a-4d17-8e85-acc301343926"
}
```

Feed those into a second Bitwarden node set to `member` / `get` when you need the full record.

Reference results downstream by expression, e.g. `{{ $json.id }}` or `{{ $json.memberId }}`.

## Usage Examples

- Create a new group in Bitwarden
- List all members in the organization
- Update collection group assignments
- Retrieve audit events for a date range
- Invite a new member to the organization

## Example Configuration

List every collection in the organization:

```json
{
  "type": "bitwarden",
  "parameters": {
    "resource": "collection",
    "operation": "getAll",
    "returnAll": true
  }
}
```

Assign groups to a collection:

```json
{
  "type": "bitwarden",
  "parameters": {
    "resource": "collection",
    "operation": "update",
    "collectionId": "{{ $json.id }}",
    "updateFields": {
      "groups": "5e59c8c7-e05a-4d17-8e85-acc301343926,7a12b3c4-d5e6-4f78-9012-3456789abcde",
      "externalId": "finance-collection"
    }
  }
}
```

Pull audit events for a date range:

```json
{
  "type": "bitwarden",
  "parameters": {
    "resource": "event",
    "operation": "getAll",
    "returnAll": false,
    "limit": 100,
    "filters": {
      "start": "2026-01-01T00:00:00Z",
      "end": "2026-01-31T23:59:59Z",
      "actingUserId": "{{ $json.userId }}"
    }
  }
}
```

Create a group with collection access:

```json
{
  "type": "bitwarden",
  "parameters": {
    "resource": "group",
    "operation": "create",
    "name": "{{ $json.teamName }}",
    "accessAll": false,
    "additionalFields": {
      "collections": "5e59c8c7-e05a-4d17-8e85-acc301343926",
      "externalId": "{{ $json.teamSlug }}"
    }
  }
}
```

Replace a group's membership:

```json
{
  "type": "bitwarden",
  "parameters": {
    "resource": "group",
    "operation": "updateMembers",
    "groupId": "{{ $json.groupId }}",
    "memberIds": "{{ $json.memberIds }}"
  }
}
```

Invite a member as a regular user:

```json
{
  "type": "bitwarden",
  "parameters": {
    "resource": "member",
    "operation": "create",
    "email": "{{ $json.email }}",
    "type": 2,
    "accessAll": false,
    "additionalFields": {
      "collections": "5e59c8c7-e05a-4d17-8e85-acc301343926"
    }
  }
}
```

Promote a member to admin:

```json
{
  "type": "bitwarden",
  "parameters": {
    "resource": "member",
    "operation": "update",
    "memberId": "{{ $json.id }}",
    "updateFields": {
      "type": 1
    }
  }
}
```

List the groups a member belongs to, then remove them from the organization:

```json
{
  "type": "bitwarden",
  "parameters": {
    "resource": "member",
    "operation": "getGroups",
    "memberId": "{{ $json.id }}"
  }
}
```

```json
{
  "type": "bitwarden",
  "parameters": {
    "resource": "member",
    "operation": "delete",
    "memberId": "{{ $json.id }}"
  }
}
```

### Error Handling

| Mode | Behavior |
|------|----------|
| **stop** | Halts workflow on first error |
| **continue** | Skips failed items, passes successful ones through |
| **errorPort** | Routes failed items to Error output port |

## Tips

Manage Bitwarden organization collections, events, groups, and members via the Public API.