Reference · Tools
Bitwarden
Manage Bitwarden organization collections, events, groups, and members via the Public API
The Bitwarden node connects to the Bitwarden Public (Organization) API to manage collections, groups, members, and audit events programmatically. Use it to automate onboarding workflows — for example, creating a new group, assigning members, and provisioning the right collections in a single workflow run. It works with both Bitwarden Cloud and self-hosted Bitwarden instances.
- Node type
- Action
- Parameters
- 30
- Outputs
- Output, Error
- Credentials
- Bitwarden API
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 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 |
|---|---|---|---|---|
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:
{
"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:
{
"type": "bitwarden",
"parameters": {
"resource": "collection",
"operation": "getAll",
"returnAll": true
}
}
Assign groups to a collection:
{
"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:
{
"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:
{
"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:
{
"type": "bitwarden",
"parameters": {
"resource": "group",
"operation": "updateMembers",
"groupId": "{{ $json.groupId }}",
"memberIds": "{{ $json.memberIds }}"
}
}
Invite a member as a regular user:
{
"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:
{
"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:
{
"type": "bitwarden",
"parameters": {
"resource": "member",
"operation": "getGroups",
"memberId": "{{ $json.id }}"
}
}
{
"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.
Frequently asked questions
What credentials does this node require, and where do I get them?
The node uses OAuth2 client_credentials authentication, requiring a Client ID and Client Secret obtained from the Bitwarden organization admin console. These are organization-level API credentials, not your personal Bitwarden login. You'll configure them as a Bitwarden API credential type in BusyBot.
Does this node work with self-hosted Bitwarden, or only the cloud service?
It supports both cloud-hosted and self-hosted Bitwarden instances. When configuring your credentials, you can specify the base URL for your self-hosted deployment so the node hits your own API endpoint rather than the default Bitwarden cloud.
What exactly can I manage through this node — what operations are available?
The node covers four resource areas: collections (list and update), events (retrieve audit logs), groups (full CRUD — create, read, update, delete), and members (full CRUD). It does not expose personal vault management or individual user vault items, as those are outside the Bitwarden Public (Organization) API scope.
How does the node signal that something went wrong in my workflow?
The node has two distinct outputs: Output for successful results and Error for failures. This means you can branch your workflow — for instance, routing API errors to a Slack alert or a retry path — without needing a separate error-handling wrapper node.
Can I use this node to pull audit logs for compliance reporting?
Yes. The events resource lets you retrieve organization audit events from the Bitwarden Public API, which you can then pipe into a database, spreadsheet, or reporting tool within the same workflow. The available filters and date range options are determined by what the Bitwarden Public API exposes for your plan tier.
Build with the Bitwarden node
Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Bitwarden API credentials first.
Open BusyBotLast updated . Spotted something wrong? Tell us.