Bitwarden Public API - Groups
Manages organization groups - collections of members granted shared collection access. Supports create, list, retrieve, update, delete, and member-membership operations.
Manages organization groups - collections of members granted shared collection access. Supports create, list, retrieve, update, delete, and member-membership operations.
{
"openapi": "3.0.1",
"info": {
"title": "Bitwarden Public API",
"description": "The Bitwarden public APIs.",
"contact": {
"name": "Bitwarden Support",
"url": "https://bitwarden.com",
"email": "[email protected]"
},
"license": {
"name": "GNU Affero General Public License v3.0",
"url": "https://github.com/bitwarden/server/blob/master/LICENSE.txt"
},
"version": "latest"
},
"servers": [
{
"url": "https://api.bitwarden.com"
}
],
"paths": {
"/public/collections/{id}": {
"get": {
"tags": [
"Collections"
],
"summary": "Retrieve a collection.",
"description": "Retrieves the details of an existing collection. You need only supply the unique collection identifier\r\nthat was returned upon collection creation.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "The identifier of the collection to be retrieved.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/CollectionResponseModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/CollectionResponseModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/CollectionResponseModel"
}
}
}
},
"404": {
"description": "Not Found"
}
}
},
"put": {
"tags": [
"Collections"
],
"summary": "Update a collection.",
"description": "Updates the specified collection object. If a property is not provided,\r\nthe value of the existing property will be reset.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "The identifier of the collection to be updated.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"requestBody": {
"description": "The request model.",
"content": {
"application/json-patch+json": {
"schema": {
"$ref": "#/components/schemas/CollectionUpdateRequestModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/CollectionUpdateRequestModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/CollectionUpdateRequestModel"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/CollectionUpdateRequestModel"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/CollectionResponseModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/CollectionResponseModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/CollectionResponseModel"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseModel"
}
}
}
},
"404": {
"description": "Not Found"
}
}
},
"delete": {
"tags": [
"Collections"
],
"summary": "Delete a collection.",
"description": "Permanently deletes a collection. This cannot be undone.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "The identifier of the collection to be deleted.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Success"
},
"404": {
"description": "Not Found"
}
}
}
},
"/public/collections": {
"get": {
"tags": [
"Collections"
],
"summary": "List all collections.",
"description": "Returns a list of your organization's collections.\r\nCollection objects listed in this call do not include information about their associated groups.",
"responses": {
"200": {
"description": "Success",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/CollectionResponseModelListResponseModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/CollectionResponseModelListResponseModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/CollectionResponseModelListResponseModel"
}
}
}
}
}
}
},
"/public/events": {
"get": {
"tags": [
"Events"
],
"summary": "List all events.",
"description": "Returns a filtered list of your organization's event logs, paged by a continuation token.\r\nIf no filters are provided, it will return the last 30 days of event for the organization.",
"parameters": [
{
"name": "start",
"in": "query",
"description": "The start date. Must be less than the end date.",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "end",
"in": "query",
"description": "The end date. Must be greater than the start date.",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "actingUserId",
"in": "query",
"description": "The unique identifier of the user that performed the event.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "itemId",
"in": "query",
"description": "The unique identifier of the related item that the event describes.",
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "continuationToken",
"in": "query",
"description": "A cursor for use in pagination.",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/EventResponseModelListResponseModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/EventResponseModelListResponseModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/EventResponseModelListResponseModel"
}
}
}
}
}
}
},
"/public/groups/{id}": {
"get": {
"tags": [
"Groups"
],
"summary": "Retrieve a group.",
"description": "Retrieves the details of an existing group. You need only supply the unique group identifier\r\nthat was returned upon group creation.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "The identifier of the group to be retrieved.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/GroupResponseModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/GroupResponseModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/GroupResponseModel"
}
}
}
},
"404": {
"description": "Not Found"
}
}
},
"put": {
"tags": [
"Groups"
],
"summary": "Update a group.",
"description": "Updates the specified group object. If a property is not provided,\r\nthe value of the existing property will be reset.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "The identifier of the group to be updated.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"requestBody": {
"description": "The request model.",
"content": {
"application/json-patch+json": {
"schema": {
"$ref": "#/components/schemas/GroupCreateUpdateRequestModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/GroupCreateUpdateRequestModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/GroupCreateUpdateRequestModel"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/GroupCreateUpdateRequestModel"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/GroupResponseModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/GroupResponseModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/GroupResponseModel"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseModel"
}
}
}
},
"404": {
"description": "Not Found"
}
}
},
"delete": {
"tags": [
"Groups"
],
"summary": "Delete a group.",
"description": "Permanently deletes a group. This cannot be undone.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "The identifier of the group to be deleted.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Success"
},
"404": {
"description": "Not Found"
}
}
}
},
"/public/groups/{id}/member-ids": {
"get": {
"tags": [
"Groups"
],
"summary": "Retrieve a groups's member ids",
"description": "Retrieves the unique identifiers for all members that are associated with this group. You need only\r\nsupply the unique group identifier that was returned upon group creation.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "The identifier of the group to be retrieved.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"text/plain": {
"schema": {
"uniqueItems": true,
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
"application/json": {
"schema": {
"uniqueItems": true,
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
"text/json": {
"schema": {
"uniqueItems": true,
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
}
}
},
"404": {
"description": "Not Found"
}
}
},
"put": {
"tags": [
"Groups"
],
"summary": "Update a group's members.",
"description": "Updates the specified group's member associations.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "The identifier of the group to be updated.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"requestBody": {
"description": "The request model.",
"content": {
"application/json-patch+json": {
"schema": {
"$ref": "#/components/schemas/UpdateMemberIdsRequestModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdateMemberIdsRequestModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/UpdateMemberIdsRequestModel"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/UpdateMemberIdsRequestModel"
}
}
}
},
"responses": {
"200": {
"description": "Success"
},
"400": {
"description": "Bad Request",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseModel"
}
}
}
},
"404": {
"description": "Not Found"
}
}
}
},
"/public/groups": {
"get": {
"tags": [
"Groups"
],
"summary": "List all groups.",
"description": "Returns a list of your organization's groups.\r\nGroup objects listed in this call do not include information about their associated collections.",
"responses": {
"200": {
"description": "Success",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/GroupResponseModelListResponseModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/GroupResponseModelListResponseModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/GroupResponseModelListResponseModel"
}
}
}
}
}
},
"post": {
"tags": [
"Groups"
],
"summary": "Create a group.",
"description": "Creates a new group object.",
"requestBody": {
"description": "The request model.",
"content": {
"application/json-patch+json": {
"schema": {
"$ref": "#/components/schemas/GroupCreateUpdateRequestModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/GroupCreateUpdateRequestModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/GroupCreateUpdateRequestModel"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/GroupCreateUpdateRequestModel"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/GroupResponseModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/GroupResponseModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/GroupResponseModel"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseModel"
}
}
}
}
}
}
},
"/public/members/{id}": {
"get": {
"tags": [
"Members"
],
"summary": "Retrieve a member.",
"description": "Retrieves the details of an existing member of the organization. You need only supply the\r\nunique member identifier that was returned upon member creation.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "The identifier of the member to be retrieved.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/MemberResponseModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/MemberResponseModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/MemberResponseModel"
}
}
}
},
"404": {
"description": "Not Found"
}
}
},
"put": {
"tags": [
"Members"
],
"summary": "Update a member.",
"description": "Updates the specified member object. If a property is not provided,\r\nthe value of the existing property will be reset.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "The identifier of the member to be updated.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"requestBody": {
"description": "The request model.",
"content": {
"application/json-patch+json": {
"schema": {
"$ref": "#/components/schemas/MemberUpdateRequestModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/MemberUpdateRequestModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/MemberUpdateRequestModel"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/MemberUpdateRequestModel"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/MemberResponseModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/MemberResponseModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/MemberResponseModel"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseModel"
}
}
}
},
"404": {
"description": "Not Found"
}
}
},
"delete": {
"tags": [
"Members"
],
"summary": "Delete a member.",
"description": "Permanently deletes a member from the organization. This cannot be undone.\r\nThe user account will still remain. The user is only removed from the organization.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "The identifier of the member to be deleted.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Success"
},
"404": {
"description": "Not Found"
}
}
}
},
"/public/members/{id}/group-ids": {
"get": {
"tags": [
"Members"
],
"summary": "Retrieve a member's group ids",
"description": "Retrieves the unique identifiers for all groups that are associated with this member. You need only\r\nsupply the unique member identifier that was returned upon member creation.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "The identifier of the member to be retrieved.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "Success",
"content": {
"text/plain": {
"schema": {
"uniqueItems": true,
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
"application/json": {
"schema": {
"uniqueItems": true,
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
},
"text/json": {
"schema": {
"uniqueItems": true,
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
}
}
},
"404": {
"description": "Not Found"
}
}
},
"put": {
"tags": [
"Members"
],
"summary": "Update a member's groups.",
"description": "Updates the specified member's group associations.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "The identifier of the member to be updated.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"requestBody": {
"description": "The request model.",
"content": {
"application/json-patch+json": {
"schema": {
"$ref": "#/components/schemas/UpdateGroupIdsRequestModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdateGroupIdsRequestModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/UpdateGroupIdsRequestModel"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/UpdateGroupIdsRequestModel"
}
}
}
},
"responses": {
"200": {
"description": "Success"
},
"400": {
"description": "Bad Request",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseModel"
}
}
}
},
"404": {
"description": "Not Found"
}
}
}
},
"/public/members": {
"get": {
"tags": [
"Members"
],
"summary": "List all members.",
"description": "Returns a list of your organization's members.\r\nMember objects listed in this call do not include information about their associated collections.",
"responses": {
"200": {
"description": "Success",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/MemberResponseModelListResponseModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/MemberResponseModelListResponseModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/MemberResponseModelListResponseModel"
}
}
}
}
}
},
"post": {
"tags": [
"Members"
],
"summary": "Create a member.",
"description": "Creates a new member object by inviting a user to the organization.",
"requestBody": {
"description": "The request model.",
"content": {
"application/json-patch+json": {
"schema": {
"$ref": "#/components/schemas/MemberCreateRequestModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/MemberCreateRequestModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/MemberCreateRequestModel"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/MemberCreateRequestModel"
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/MemberResponseModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/MemberResponseModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/MemberResponseModel"
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponseModel"
}
}
}
}
}
}
},
"/public/members/{id}/reinvite": {
"post": {
"tags": [
"Members"
],
"summary": "Re-invite a member.",
"description": "Re-sends the invitation email to an organization member.",
"parameters": [
{
"name": "id",
"in": "path",
"description": "The identifier of the member to re-invite.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
# --- truncated at 32 KB (68 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/bitwarden/refs/heads/main/openapi/bitwarden-public-swagger.json