Reference · Tools

Bitwarden

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

Action Data & Storage v1

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

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

This tool requires Bitwarden API credentials. See the Credentials Guide for setup instructions.

Resources

ResourceValue
Collectioncollection
Eventevent
Groupgroup
Membermember

Operations

Operations for the collection resource:

OperationValueDescription
DeletedeleteDelete a collection
GetgetRetrieve one collection
Get ManygetAllList the organization’s collections
UpdateupdateUpdate a collection

Operations for the event resource:

OperationValueDescription
Get ManygetAllRetrieve organization audit events

Operations for the group resource:

OperationValueDescription
CreatecreateCreate a group
DeletedeleteDelete a group
GetgetRetrieve one group
Get ManygetAllList the organization’s groups
Get MembersgetMembersList the member IDs in a group
UpdateupdateUpdate a group
Update MembersupdateMembersReplace a group’s member assignments

Operations for the member resource:

OperationValueDescription
CreatecreateInvite a member to the organization
DeletedeleteRemove a member
GetgetRetrieve one member
Get GroupsgetGroupsList the group IDs a member belongs to
Get ManygetAllList the organization’s members
UpdateupdateUpdate a member
Update GroupsupdateGroupsReplace a member’s group assignments

Parameters

Collection: Delete

ParameterTypeRequiredDefaultDescription
Collection IDstringYesThe identifier of the collection.

Collection: Get

ParameterTypeRequiredDefaultDescription
Collection IDstringYesThe identifier of the collection.

Collection: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo10Max number of results to return. (shown when Return All is false)

Collection: Update

ParameterTypeRequiredDefaultDescription
Collection IDstringYesThe identifier of the collection.
Update FieldscollectionYes{}Fields to update on the collection.
— Group IDs (groups)stringNoComma-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 IDstringNoThe external identifier to set on this collection.

Event: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo10Max number of results to return. (shown when Return All is false)
FilterscollectionNo{}Filters for retrieving events.
— Acting User IDstringNoThe unique identifier of the acting user.
— End DatedateTimeNoThe end date for the search.
— Item IDstringNoThe unique identifier of the item that the event describes.
— Start DatedateTimeNoThe start date for the search.

Group: Create

ParameterTypeRequiredDefaultDescription
NamestringYesThe name of the group to create.
Access AllbooleanNofalseWhether 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 FieldscollectionNo{}Additional fields for group creation.
— Collection IDsstringNoComma-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 IDstringNoThe external identifier to set on this group.

Group: Delete

ParameterTypeRequiredDefaultDescription
Group IDstringYesThe identifier of the group.

Group: Get

ParameterTypeRequiredDefaultDescription
Group IDstringYesThe identifier of the group.

Group: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo10Max number of results to return. (shown when Return All is false)

Group: Get Members

ParameterTypeRequiredDefaultDescription
Group IDstringYesThe identifier of the group.

Group: Update

ParameterTypeRequiredDefaultDescription
Group IDstringYesThe identifier of the group.
Update FieldscollectionNo{}Fields to update on the group. At least one field must be provided.
— Access AllbooleanNofalseWhether to allow this group to access all collections within the organization.
— Collection IDsstringNoComma-separated collection IDs to assign to this group. Each collection is mapped with ReadOnly=false.
— External IDstringNoThe external identifier to set on this group.
— NamestringNoThe new name for the group.

Group: Update Members

ParameterTypeRequiredDefaultDescription
Group IDstringYesThe identifier of the group.
Member IDsstringNoComma-separated list of IDs of members to set in the group. This replaces all existing member assignments.

Member: Create

ParameterTypeRequiredDefaultDescription
EmailstringNoThe email address of the member to invite.
TypeoptionsYes2The role type for the member.
Options: 0 (Owner), 1 (Admin), 2 (User), 3 (Manager)
Access AllbooleanNofalseWhether to allow this member to access all collections within the organization.
Additional FieldscollectionNo{}Additional fields for member creation.
— Collection IDsstringNoComma-separated collection IDs to assign to this member. Each collection is mapped with ReadOnly=false.
— External IDstringNoThe external identifier to set on this member.

Member: Delete

ParameterTypeRequiredDefaultDescription
Member IDstringYesThe identifier of the member.

Member: Get

ParameterTypeRequiredDefaultDescription
Member IDstringYesThe identifier of the member.

Member: Get Groups

ParameterTypeRequiredDefaultDescription
Member IDstringYesThe identifier of the member.

Member: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo10Max number of results to return. (shown when Return All is false)

Member: Update

ParameterTypeRequiredDefaultDescription
Member IDstringYesThe identifier of the member.
Update FieldscollectionNo{}Fields to update on the member. At least one field must be provided.
— TypeoptionsNo2The new role type for the member.
Options: 0 (Owner), 1 (Admin), 2 (User), 3 (Manager)
— Collection IDsstringNoComma-separated collection IDs to assign to this member. Each collection is mapped with ReadOnly=false.
— External IDstringNoThe external identifier to set on this member.
— Access AllbooleanNofalseWhether to allow this member to access all collections within the organization.

Member: Update Groups

ParameterTypeRequiredDefaultDescription
Member IDstringYesThe identifier of the member.
Group IDs (groupIds)stringNoComma-separated list of IDs of groups to set for the member. This replaces all existing group assignments.

All Operations

ParameterTypeRequiredDefaultDescription
Max ConcurrencynumberNo10Maximum 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 / OperationOutput
Collection get, Collection updateOne item per input item, carrying the collection object.
Collection getAllFans out — one item per collection.
Event getAllFans out — one item per audit event.
Group create, Group get, Group updateOne item per input item, carrying the group object.
Group getAllFans out — one item per group.
Group getMembersFans out — one item per member of the group, each carrying a single memberId.
Member create, Member get, Member updateOne item per input item, carrying the member object.
Member getAllFans out — one item per member.
Member getGroupsFans out — one item per group the member belongs to, each carrying a single groupId.
Collection delete, Group delete, Group updateMembers, Member delete, Member updateGroupsOne 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

ModeBehavior
stopHalts workflow on first error
continueSkips failed items, passes successful ones through
errorPortRoutes 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 BusyBot

Last updated . Spotted something wrong? Tell us.