---
title: "Upsert Driver Group"
method: PUT
path: "/v1/fleet/driver-groups/upsert"
tags: ["Fleet"]
---

# Upsert Driver Group

`PUT /v1/fleet/driver-groups/upsert`

## Request

- Base URL: `https://api.sandbox.usenash.com`
- URL: `https://api.sandbox.usenash.com/v1/fleet/driver-groups/upsert`
- Auth: none declared

Create or update a driver group in your internal fleet, keyed on your own `externalIdentifier`. Sending the same `externalIdentifier` again updates the existing group; the response's `created` field tells you which happened. Omitted fields are left unchanged. To disable a group, upsert with `isActive: false` — there is no delete call. `driverIds` replaces the full list of your drivers in the group. New members require an active group; existing members may be kept or removed while the group is inactive.

## Request body

- DriverGroupUpsert: ``PUT /v1/fleet/driver-groups/upsert`` request body. Keyed on ``external_identifier`` within the calling org's own internal fleet. Omitted fields are left unchanged; an explicit null ``unassigned_driver_timeout_minutes`` clears it.
  - `externalIdentifier` string, required: Your own id for this group; the upsert key.
  - `displayName` string, nullable: Required when the group is created.
  - `isActive` boolean, nullable: Defaults to true for a new group. Set false to disable a group.
  - `unassignedDriverTimeoutMinutes` integer, nullable
  - `driverIds` string[], nullable: Full list of your drivers in this group. Omit to leave membership unchanged; send [] to remove all.

## Response `200`

OK

- DriverGroupUpsertResponse
  - `firstVersionContractId` string, required: Stable id of the driver group across versions.
  - `externalIdentifier` string, nullable
  - `displayName` string, required
  - `isActive` boolean, required
  - `unassignedDriverTimeoutMinutes` integer, nullable
  - `providerId` string, required
  - `drivers` DriverGroupMember[], required: Drivers of your organization in this group.
    - `id` string, required
    - `externalIdentifier` string, nullable
    - `firstName` string, nullable
    - `lastName` string, nullable
    - `enabled` boolean, required
    - `isShiftActive` boolean, required
  - `created` boolean, required

## Other responses

- `422`: Unprocessable Content

---

[API](https://skmtc.dev/nash/apis/nash-api.md) - [All operations](https://skmtc.dev/nash/apis/nash-api/llms.txt) - [OpenAPI document](https://skmtc.dev/nash/apis/nash-api/revisions/e3713837c5c9?raw)
