---
title: "Add multiple members to organization"
method: POST
path: "/v1/people/bulk"
tags: ["People"]
---

# Add multiple members to organization

`POST /v1/people/bulk`

Bulk adds multiple members to the authenticated organization. Each member must have a valid user ID that exists in the system. Members who already exist in the organization or have invalid data will be skipped with error details returned.

## Request body

- BulkCreatePeopleDto
  - `members` CreatePeopleDto[], required — Array of members to create
    - `userId` string, required — User ID to associate with this member
    - `role` string, required — Role for the member (built-in role name or custom role ID)
    - `department` 'none' | 'admin' | 'gov' | 'hr' | 'it' | 'itsm' | 'qms' — Member department
    - `isActive` boolean — Whether member is active
    - `fleetDmLabelId` number — FleetDM label ID for member devices
    - `jobTitle` string — Job title for the member

## Response `201`

Bulk member creation completed

- object
  - `created` PeopleResponseDto[] — Successfully created members
    - `id` string, required — Member ID
    - `organizationId` string, required — Organization ID this member belongs to
    - `userId` string, required — User ID associated with member
    - `role` string, required — Member role
    - `createdAt` string, date-time, required — When the member was created
    - `department` 'none' | 'admin' | 'gov' | 'hr' | 'it' | 'itsm' | 'qms', required — Member department
    - `jobTitle` object, nullable, required — Job title for the member
    - `isActive` boolean, required — Whether member is active
    - `deactivated` boolean, required — Whether member is deactivated
    - `fleetDmLabelId` object, nullable, required — FleetDM label ID for member devices
    - `user` UserResponseDto, required
      - `id` string, required — User ID
      - `name` string, required — User name
      - `email` string, required — User email
      - `emailVerified` boolean, required — Whether email is verified
      - `image` object, nullable, required — User profile image URL
      - `createdAt` string, date-time, required — When the user was created
      - `updatedAt` string, date-time, required — When the user was last updated
      - `lastLogin` object, nullable, required — Last login time
      - `role` object, nullable, required — Platform role of the user (managed by Better Auth admin plugin)
    - `backgroundCheckRequests` BackgroundCheckSummaryDto[] — Background check requests for this member
      - `id` string, required — Background check request ID
      - `status` 'invited' | 'in_progress' | 'in_review' | 'completed' | 'completed_with_flags' | 'failed' | 'cancelled', required — Background check status
  - `errors` object[] — Members that failed to be created with error details
    - `index` number — Index in the original array where the error occurred
    - `userId` string — User ID that failed to be added
    - `error` string — Error message explaining why the member could not be created
  - `summary` object
    - `total` number — Total number of members in the request
    - `successful` number — Number of members successfully created
    - `failed` number — Number of members that failed to be created
  - `authType` 'api-key' | 'session' — How the request was authenticated
  - `authenticatedUser` object
    - `id` string — User ID
    - `email` string — User email

## Other responses

- `400` — Bad Request - Invalid bulk data or validation errors
- `401` — Unauthorized - Invalid authentication or insufficient permissions
- `404` — Organization not found
- `500` — Internal server error

---

[API](https://skmtc.net/om-network/apis/betayum-api.md) · [All operations](https://skmtc.net/om-network/apis/betayum-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/om-network/betayum-api/versions/1c5403653ecf/schema)
