---
title: "Update a driver"
method: PATCH
path: "/drivers/{driverId}"
tags: ["Drivers"]
---

# Update a driver

`PATCH /drivers/{driverId}`

## Request

- Base URL: `https://api.spoke.com/public/v1`
- URL: `https://api.spoke.com/public/v1/drivers/{driverId}`
- Auth: HTTP basic
- TypeScript: <https://skmtc.dev/spoke/apis/spoke-api/docs/drivers/:driverId/patch.ts> (a function with typed inputs; its response is checked against the schema)

Updates a driver from your team. The member must have the "driver" role.

## Path parameters

- `driverId` string, required

## Request body

- object: The request body for updating a driver.
  - `name` string, nullable: The driver's full name
  - `displayName` string, nullable: The name displayed for the driver in the UI
  - `depots` string[], nullable: The depot IDs associated with the driver in the format `depots/<id>`, duplicates will be ignored. If set to null or not provided, the team's Main depot will be set as driver depot.
  - `routeOverrides` object, nullable: Overrides for the driver route behavior.
    - `startAddress` object, nullable: At least one of the fields is required. If the latitude and longitude fields are set they will override any of the others.
      - `addressName` string, nullable: The name of the address. This will not be used for geocoding, and is only for the final address display purposes.
      - `addressLineOne` string, nullable: The first line of the address.
      - `addressLineTwo` string, nullable: The second line of the address.
      - `city` string, nullable: The city of the address.
      - `state` string, nullable: The state of the address.
      - `zip` string, nullable: The zip code of the address.
      - `country` string, nullable: The country of the address.
      - `latitude` number, nullable: The latitude of the address in decimal degrees.
      - `longitude` number, nullable: The longitude of the address in decimal degrees.
    - `endAddress` object, nullable: At least one of the fields is required. If the latitude and longitude fields are set they will override any of the others.
      - `addressName` string, nullable: The name of the address. This will not be used for geocoding, and is only for the final address display purposes.
      - `addressLineOne` string, nullable: The first line of the address.
      - `addressLineTwo` string, nullable: The second line of the address.
      - `city` string, nullable: The city of the address.
      - `state` string, nullable: The state of the address.
      - `zip` string, nullable: The zip code of the address.
      - `country` string, nullable: The country of the address.
      - `latitude` number, nullable: The latitude of the address in decimal degrees.
      - `longitude` number, nullable: The longitude of the address in decimal degrees.
    - `startTime` object, nullable: Time of day in hours and minutes. Use a 24 hour clock.
      - `hour` integer, required: Hour of the day
      - `minute` integer, required: Minute of the hour
    - `endTime` object, nullable: Time of day in hours and minutes. Use a 24 hour clock.
      - `hour` integer, required: Hour of the day
      - `minute` integer, required: Minute of the hour
    - `maxStops` integer, nullable: The maximum number of stops that can be allocated to this driver.
    - `drivingSpeed` 'slower' | 'average' | 'faster', nullable: How fast this driver drives compared to the Team's average
    - `deliverySpeed` 'slower' | 'average' | 'faster', nullable: How fast this driver delivers compared to the Team's average
    - `vehicleType` 'bike' | 'scooter' | 'car' | 'small_truck' | 'truck' | 'electric_cargo_bike', nullable: The type of vehicle used by this driver

## Response `200`

The updated driver

- DriverSchema: A driver.
  - `id` string, required
  - `name` string, nullable, required: The name of the driver.
  - `email` string, nullable, required: The email of the driver.
  - `phone` string, nullable, required: The phone number of the driver.
  - `displayName` string, nullable, required: The display name of the driver.
  - `active` boolean, required: Whether the driver membership is active or paused. Paused drivers will not be assigned to any routes.
  - `depots` DepotIdSchema[], required: Depots associated with the driver.
  - `routeOverrides` object, required: Settings to override default route settings.
    - `startTime` TimeOfDaySchema, required: Time of day in hours and minutes. Uses a 24 hour clock.
      - `hour` integer, required: Hour of the day
      - `minute` integer, required: Minute of the hour
    - `endTime` TimeOfDaySchema, required: Time of day in hours and minutes. Uses a 24 hour clock.
      - `hour` integer, required: Hour of the day
      - `minute` integer, required: Minute of the hour
    - `startAddress` object, nullable, required: The address of the stop.
      - `address` string, required: The address of the stop.
      - `addressLineOne` string, required: The first line of the address.
      - `addressLineTwo` string, required: The second line of the address.
      - `latitude` number, nullable, required: The latitude of the address in decimal degrees.
      - `longitude` number, nullable, required: The longitude of the address in decimal degrees.
      - `placeId` string, nullable, required: The identifier of the place corresponding to this stop on Google Places
      - `placeTypes` string[], required: Array of strings that is provided by the Google AutoCompleteAPI
    - `endAddress` object, nullable, required: The address of the stop.
      - `address` string, required: The address of the stop.
      - `addressLineOne` string, required: The first line of the address.
      - `addressLineTwo` string, required: The second line of the address.
      - `latitude` number, nullable, required: The latitude of the address in decimal degrees.
      - `longitude` number, nullable, required: The longitude of the address in decimal degrees.
      - `placeId` string, nullable, required: The identifier of the place corresponding to this stop on Google Places
      - `placeTypes` string[], required: Array of strings that is provided by the Google AutoCompleteAPI
    - `maxStops` integer, nullable, required: Maximum number of Stops the Driver can take in a route.
    - `drivingSpeed` 'slower' | 'average' | 'faster', required: The relative driving speed of the driver compared to others.
    - `deliverySpeed` 'slower' | 'average' | 'faster', required: The relative delivery speed of the driver compared to others.
    - `vehicleType` 'bike' | 'scooter' | 'car' | 'small_truck' | 'truck' | 'electric_cargo_bike', nullable, required: The vehicle type the driver will be using for deliveries.

## Other responses

- `400`: Failed to validate the request
- `401`: Unauthorized
- `422`: Failed to update driver
- `500`: An internal server error occurred
- `default`: The default error model

---

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