Bitwarden Public API - Event Logs

Retrieves organization activity events (60+ numeric event types covering member, vault item, collection, group, and policy actions). Returns paginated lists with a continuationToken; data is retained indefinitely.

OpenAPI Specification

bitwarden-public-swagger.json Raw ↑
{
  "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