openapi: 3.0.1 info: title: Bitwarden Public Collections Organization 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: Organization paths: /public/organization/import: post: tags: - Organization summary: Import members and groups. description: Import members and groups from an external system. requestBody: description: The request model. content: application/json-patch+json: schema: $ref: '#/components/schemas/OrganizationImportRequestModel' application/json: schema: $ref: '#/components/schemas/OrganizationImportRequestModel' text/json: schema: $ref: '#/components/schemas/OrganizationImportRequestModel' application/*+json: schema: $ref: '#/components/schemas/OrganizationImportRequestModel' 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' components: schemas: OrganizationImportGroupRequestModel: required: - externalId - name type: object properties: name: maxLength: 100 minLength: 0 type: string description: The name of the group. example: Development Team externalId: maxLength: 300 minLength: 0 type: string description: External identifier for reference or linking this group to another system, such as a user directory. example: external_id_123456 memberExternalIds: type: array items: type: string description: The associated external ids for members in this group. nullable: true additionalProperties: false OrganizationImportMemberRequestModel: required: - externalId type: object properties: email: maxLength: 50 minLength: 0 type: string description: The member's email address. Required for non-deleted users. format: email nullable: true example: jsmith@example.com externalId: maxLength: 300 minLength: 0 type: string description: External identifier for reference or linking this member to another system, such as a user directory. example: external_id_123456 deleted: type: boolean description: Determines if this member should be removed from the organization during import. additionalProperties: false MemberResponseModel: required: - accessAll - email - id - object - status - twoFactorEnabled - type - userId 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: member id: type: string description: The member's unique identifier within the organization. format: uuid example: 539a36c5-e0d2-4cf9-979e-51ecf5cf6593 userId: type: string description: The member's unique identifier across Bitwarden. format: uuid example: 48b47ee1-493e-4c67-aef7-014996c40eca name: type: string description: The member's name, set from their user account profile. nullable: true example: John Smith email: type: string description: The member's email address. example: jsmith@example.com twoFactorEnabled: type: boolean description: Returns {true} if the member has a two-step login method enabled on their user account. status: allOf: - $ref: '#/components/schemas/OrganizationUserStatusType' description: "The member's status within the organization. All created members start with a status of \"Invited\".\r\nOnce a member accept's their invitation to join the organization, their status changes to \"Accepted\".\r\nAccepted members are then \"Confirmed\" by an organization administrator. Once a member is \"Confirmed\",\r\ntheir status can no longer change." collections: type: array items: $ref: '#/components/schemas/AssociationWithPermissionsResponseModel' description: The associated collections that this member can access. nullable: true type: allOf: - $ref: '#/components/schemas/OrganizationUserType' description: The member's type (or role) within the organization. accessAll: type: boolean description: "Determines if this member can access all collections within the organization, or only the associated\r\ncollections. If set to {true}, this option overrides any collection assignments." externalId: maxLength: 300 minLength: 0 type: string description: External identifier for reference or linking this member to another system, such as a user directory. nullable: true example: external_id_123456 additionalProperties: false description: An organization member. 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 OrganizationImportRequestModel: required: - overwriteExisting type: object properties: groups: type: array items: $ref: '#/components/schemas/OrganizationImportGroupRequestModel' description: Groups to import. nullable: true members: type: array items: $ref: '#/components/schemas/OrganizationImportMemberRequestModel' description: Members to import. nullable: true overwriteExisting: type: boolean description: Determines if the data in this request should overwrite or append to the existing organization data. additionalProperties: false 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 OrganizationUserStatusType: enum: - 0 - 1 - 2 type: integer format: int32 OrganizationUserType: enum: - 0 - 1 - 2 - 3 type: integer format: int32 securitySchemes: OAuth2 Client Credentials: type: oauth2 flows: clientCredentials: tokenUrl: https://identity.bitwarden.com/connect/token scopes: api.organization: Organization APIs