> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nedzo.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Update contact

> Update an existing contact by ID via the Nedzo REST API. Modify the contact name, phone number, email, tags, or custom field values with a PATCH request.

<ParamField path="id" type="string" required>
  Contact UUID
</ParamField>

<ParamField body="firstName" type="string">
  First name
</ParamField>

<ParamField body="lastName" type="string">
  Last name
</ParamField>

<ParamField body="email" type="string">
  Email address
</ParamField>

<ParamField body="phone" type="string">
  Phone number
</ParamField>

<ParamField body="timezone" type="string">
  IANA timezone identifier (e.g. `America/New_York`). Pass `null` to clear the field. Used by features that respect the contact's local time. Must be a valid IANA timezone identifier; bogus strings are rejected with `400 Bad Request`.
</ParamField>

<ParamField body="tags" type="string[]">
  Tag names to attach to the contact. Tags that don't exist yet in your workspace are auto-created. Tag attachment is **additive** — this endpoint never removes a tag. Names are matched case-sensitively, trimmed, and must be 1–255 characters. Omit the field (or pass `[]`) to leave tags unchanged.
</ParamField>

<ParamField body="customFields" type="object">
  Custom field values keyed by the custom variable name **as displayed in the dashboard** (e.g. `"Lead Source"` — including spaces and original casing; not a slug). Accepts `string`, `number`, `boolean`, or `null` (null clears a stored value). Values you provide overwrite the existing value for that key; other custom fields on the contact are unaffected. Unknown keys are rejected with a `400`. Values are persisted as text and returned as strings.
</ParamField>

<Note>
  At least one field must be provided. Unknown top-level fields are rejected with `400 Bad Request`. Custom field values must use the `customFields` object — they cannot be added as top-level fields.
</Note>

<RequestExample>
  ```bash cURL theme={null}
  curl -X PATCH "https://api.nedzo.ai/v1/contacts/123e4567-e89b-12d3-a456-426614174000" \
      -H "Authorization: Bearer YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "firstName": "Jane",
        "tags": ["gold"],
        "customFields": {
          "MRR": 500
        }
      }'
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "workspaceId": "789e4567-e89b-12d3-a456-426614174000",
    "firstName": "Jane",
    "lastName": "Doe",
    "email": "jane@example.com",
    "phone": "+14155551234",
    "timezone": "America/Los_Angeles",
    "tags": ["gold", "vip"],
    "customFields": {
      "Lead Source": "Website",
      "MRR": "500"
    },
    "createdAt": "2024-01-15T10:30:00Z",
    "updatedAt": "2024-01-15T11:00:00Z"
  }
  ```
</ResponseExample>
