---
title: "Update Lead"
method: PUT
path: "/{sub_domain}/api/leads/{id}"
tags: ["Leads"]
---

# Update Lead

`PUT /{sub_domain}/api/leads/{id}`

## Request

- Base URL: `https://api.commpeak.com/dialer`
- URL: `https://api.commpeak.com/dialer/{sub_domain}/api/leads/{id}`
- Auth: API key in header `Authorization`

Update the fields of a single lead.

**When to use.** Change one lead you already know by id. To update many leads at once, use `PUT /leads/mass-update`.

**Parameters.** `id` (path) is the lead to update.

**Request body.** A JSON object with the fields to change. Any subset is accepted, for example `first_name`, `phone`, address fields, `email`, `call_after`, and a `customFields` object of your own field name and value pairs. Changing `phone` re-processes the number and clears the do-not-call flag on the lead.

**Returns.** `204 No Content` on success. If part of the update could not be applied, `200 OK` is returned with a `messages` array explaining what was skipped, for example a `timezone_id` that does not match the lead's country.

**Example.** `PUT /api/leads/1` with body `{ "first_name": "John", "call_after": "2026-01-01 09:00:00" }`

## Path parameters

- `id` integer, required: Lead ID.
- `sub_domain` string, required: Dialer Name (subdomain)

## Request body

- LeadUpdateInput
  - `first_name` string, nullable: First name.
  - `last_name` string, nullable: Last name.
  - `phone` string, nullable: Phone.
  - `phone2` string, nullable: Phone2.
  - `address1` string, nullable: Address1.
  - `address2` string, nullable: Address2.
  - `country` string, nullable: Country name / ISO / ISO3.
  - `state` string, nullable: State.
  - `city` string, nullable: City.
  - `zip` string, nullable: Zip.
  - `lat` number, nullable: Latitude.
  - `lng` number, nullable: Longitude.
  - `timezone` string, nullable: Timezone.
  - `timezone_id` integer, nullable: Timezone ID.
  - `original_identifier` string, nullable: Original identifier.
  - `support_site` string, nullable: Support site.
  - `purchase_site` string, nullable: Purchase site.
  - `purchase_date` string, nullable: Purchase date.
  - `purchase_amount` string, nullable: Purchase amount.
  - `purchase_product_name` string, nullable: Purchase product name.
  - `purchase_card_name` string, nullable: Purchase card name.
  - `purchase_card_type` string, nullable: Purchase card type.
  - `purchase_card_digits` string, nullable: Purchase card digits.
  - `email` string, nullable: Email.
  - `birthdate` string, nullable: Birthdate.
  - `loan_amount` string, nullable: Loan amount.
  - `call_after` string, nullable: Call After (freeze) time to be set on the lead.
  - `call_after_outside_allowed_time` integer, nullable: Whether calling the lead outside call hours is allowed.
  - `customFields` object, nullable: Custom field name/value pairs.

## Response `200`

Successful Response

- LeadUpdateMessagesResponse: Returned with HTTP 200 when a lead update partially succeeded (a full success returns 204 with no body).
  - `messages` string[], required

## Other responses

- `204`: Lead updated.
- `404`: Not Found
- `422`: Validation Error

---

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