---
title: "Update an existing Lead"
method: PUT
path: "/v2/leads/{id}"
tags: ["Leads"]
---

# Update an existing Lead

`PUT /v2/leads/{id}`

Updates an existing Lead and returns the updated Lead.

## Path parameters

- `id` string, required

## Headers

- `Authorization` string, required

## Request body

- UpdateLeadV2Dto
  - `status` 'new' | 'scheduled' | 'in progress' | 'estimated' | 'approved' | 'and any user-defined status' — The status of the lead.
  - `date` string, date-time — The scheduled start date and time for the lead (Must be before the endDate). Note: Both dates are rounded to the nearest quarter hour (0, 15, 30, 45 minutes) for validation.
  - `endDate` string, date-time — The scheduled end date and time for the lead (Must be after the start date). Note: Both dates are rounded to the nearest quarter hour (0, 15, 30, 45 minutes) for validation.
  - `isAllDay` boolean — > **Beta:** This property is subject to change and may contain bugs. Whether the lead is an all-day event. When omitted, the current value is left unchanged.
  - `isScheduled` boolean — > **Beta:** This property is subject to change and may contain bugs. Whether the lead is scheduled. When false, the lead is marked as unscheduled. When omitted, the current schedule state is left unchanged.
  - `description` string — The description of the lead.
  - `timeZone` string — The timezone of the lead.
  - `jobTypeId` string — The ID of the job type (prefix `JT-`). Pass an empty value to remove the job type from the lead.
  - `adGroupId` string — The ID of the ad group (prefix `AG-`).
  - `clientInfo` UpdateClientInfoV2Dto
    - `firstName` string — The first name of the client (required when clientId is not provided).
    - `lastName` string — The last name of the client.
    - `email` string — The email address of the client (required when clientId is not provided).
    - `companyName` string — The company name of the client.
    - `primaryExt` string — The extension number for the primary phone number.
    - `primaryPhone` string — The primary phone number of the client.
    - `secondaryExt` string — The extension number for the secondary phone number.
    - `secondaryPhone` string — The secondary phone number of the client.
    - `addressDetails` CreateUpdateAddressDetailsV2Dto
      - `country` string — The country of the address.
      - `state` string — The state of the address.
      - `city` string — The city of the address.
      - `zipCode` string — The ZIP code of the address.
      - `address` string — The street address.
      - `unit` string — The unit or suite number.
  - `createdBy` string — The ID of the user who created the lead (prefix `USR-`).
  - `tags` string[] — Array of tag IDs to assign to the lead (prefix `TAG-`).
  - `customFields` CustomFieldValueV2Dto[] — The custom fields of the lead.
    - `id` string, required — The ID of the custom field (prefix `CF-`).
    - `value` union, required — The value of the custom field.
      - string
      - number
      - boolean

## Response `200`

The updated Lead.

- ResponseLeadV2Dto
  - `id` string — The ID of the lead (prefix `LD-`).
  - `uuid` string — The UUID of the lead.
  - `serialId` number — The serial ID of the lead.
  - `status` string — The status of the lead.
  - `date` string, date-time — The date and time when the lead is scheduled.
  - `endDate` string, date-time — The date and time when the lead is scheduled to end.
  - `isAllDay` boolean — Whether the lead is all day.
  - `isScheduled` boolean — Whether the lead is scheduled.
  - `jobType` ResponseGenericJobTypeV2Dto
    - `id` string — The ID of the job type (prefix `JT-`).
    - `name` string — The name of the job type.
  - `adGroup` ResponseGenericAdGroupV2Dto
    - `id` string — The ID of the ad group (prefix `AG-`).
    - `name` string — The name of the ad group.
  - `description` string — The description of the lead.
  - `leadLost` boolean — Whether the lead was marked as lost.
  - `clientInfo` ResponseJobLeadDetailsV2Dto
    - `clientId` string — The ID of the associated client (prefix `CL-`).
    - `serialId` number — The serial ID of the client.
    - `firstName` string — The first name of the client.
    - `lastName` string — The last name of the client.
    - `companyName` string — The company name of the client.
    - `email` string — The email address of the client.
    - `primaryExt` string — The primary extension of the client.
    - `primaryPhone` string — The primary phone of the client.
    - `secondaryExt` string — The secondary extension of the client.
    - `secondaryPhone` string — The secondary phone of the client.
    - `addressDetails` ResponseJobLeadAddressV2Dto
      - `country` string — The country of the client.
      - `state` string — The state of the client.
      - `city` string — The city of the client.
      - `zipCode` string — The zip code of the client.
      - `address` string — The address of the client.
      - `unit` string — The unit of the client.
      - `latitude` number — The latitude of the client.
      - `longitude` number — The longitude of the client.
      - `locationKey` string — The location key of the client.
    - `serviceArea` ResponseGenericServiceAreaV2Dto
      - `id` string — The ID of the service area (prefix `SA-`).
      - `name` string — The name of the service area.
  - `team` ResponseGenericTechV2Dto[] — A list of lead technicians.
    - `id` string — The ID of the technician (prefix `USR-`).
    - `name` string — The name of the technician.
  - `tags` ResponseGenericTagV2Dto[] — A list of Tags.
    - `id` string — The ID of the tag (prefix `TAG-`).
    - `name` string — The name of the tag.
  - `customFields` ResponseGenericCustomFieldV2Dto[] — A list of Custom Fields.
    - `id` string — The ID of the custom field (prefix `CF-`).
    - `fieldName` string — The name of the custom field.
    - `value` union — The value of the custom field. Can be string, number, boolean, date string, or an array of file objects.
      - string — A string value.
      - number — A number value.
      - boolean — A boolean value.
      - object[]
        - `name` string — The name of the file.
        - `url` string — The URL of the file.
  - `notes` ResponseJobLeadNoteV2Dto[] — A list of Notes.
    - `id` string — The ID of the note (prefix `JNT-`).
    - `techName` string — The name of the technician who created the note.
    - `note` string — The note.
    - `timestamp` string, date-time — The date and time when the note was made.
  - `statusUpdated` string, date-time — The date and time when the lead status was last updated (based on account timezone).
  - `updatedAt` string, date-time — The date and time when the lead was last updated (based on account timezone).
  - `createdAt` string, date-time — The date and time when the lead was created (based on account timezone).

## Other responses

- `400` — Invalid input.
- `401` — Missing or invalid authentication token.
- `404` — Lead not found.

---

[API](https://skmtc.net/workiz/apis/developer-api.md) · [All operations](https://skmtc.net/workiz/apis/developer-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/workiz/developer-api/revisions/14666f4db0f8/schema)
