openapi: 3.0.1 info: title: Bitwarden Public Collections API description: The Bitwarden public APIs. contact: name: Bitwarden Support url: https://bitwarden.com email: support@bitwarden.com 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 security: - OAuth2 Client Credentials: - api.organization tags: - name: Collections 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' components: schemas: AssociationWithPermissionsRequestModel: required: - id - readOnly type: object properties: id: type: string description: The associated object's unique identifier. format: uuid example: bfbc8338-e329-4dc0-b0c9-317c2ebf1a09 readOnly: type: boolean description: When true, the read only permission will not allow the user or group to make changes to items. additionalProperties: false ErrorResponseModel: required: - message - object type: object properties: object: type: string description: String representing the object's type. Objects of the same type share the same properties. readOnly: true example: error message: type: string description: A human-readable message providing details about the error. example: The request model is invalid. errors: type: object additionalProperties: type: array items: type: string description: "If multiple errors occurred, they are listed in dictionary. Errors related to a specific\r\nrequest parameter will include a dictionary key describing that parameter." nullable: true additionalProperties: false CollectionResponseModel: required: - id - object type: object properties: object: type: string description: String representing the object's type. Objects of the same type share the same properties. readOnly: true example: collection id: type: string description: The collection's unique identifier. format: uuid example: 539a36c5-e0d2-4cf9-979e-51ecf5cf6593 groups: type: array items: $ref: '#/components/schemas/AssociationWithPermissionsResponseModel' description: The associated groups that this collection is assigned to. nullable: true externalId: maxLength: 300 minLength: 0 type: string description: External identifier for reference or linking this collection to another system. nullable: true example: external_id_123456 additionalProperties: false description: A collection. AssociationWithPermissionsResponseModel: required: - id - readOnly type: object properties: id: type: string description: The associated object's unique identifier. format: uuid example: bfbc8338-e329-4dc0-b0c9-317c2ebf1a09 readOnly: type: boolean description: When true, the read only permission will not allow the user or group to make changes to items. additionalProperties: false CollectionUpdateRequestModel: type: object properties: groups: type: array items: $ref: '#/components/schemas/AssociationWithPermissionsRequestModel' description: The associated groups that this collection is assigned to. nullable: true externalId: maxLength: 300 minLength: 0 type: string description: External identifier for reference or linking this collection to another system. nullable: true example: external_id_123456 additionalProperties: false CollectionResponseModelListResponseModel: required: - data - object type: object properties: object: type: string description: String representing the object's type. Objects of the same type share the same properties. readOnly: true example: list data: type: array items: $ref: '#/components/schemas/CollectionResponseModel' description: An array containing the actual response elements, paginated by any request parameters. continuationToken: type: string description: A cursor for use in pagination. nullable: true additionalProperties: false securitySchemes: OAuth2 Client Credentials: type: oauth2 flows: clientCredentials: tokenUrl: https://identity.bitwarden.com/connect/token scopes: api.organization: Organization APIs