---
title: "Update a contact"
method: PATCH
path: "/v1/contacts/{id}"
tags: ["Contacts"]
---

# Update a contact

`PATCH /v1/contacts/{id}`

## Request

- Base URL: `https://api.automatedclientacquisition.com`
- URL: `https://api.automatedclientacquisition.com/v1/contacts/{id}`
- Auth: HTTP bearer

Partial update — send only the fields you want to change. Fields outside the
updatable set (`organization_id`, `id`, timestamps) are ignored rather than
rejected, so a passthrough of a previously-read object is safe.

Updatable: `display_name`, `first_name`, `last_name`, `primary_email`,
`primary_phone`, `primary_linkedin_url`, `company`, `company_website`,
`job_title`, `city`, `state`, `country`, `tags`, `status`, `source`,
`lead_score`, `stage_id`, `pipeline_id`, `owner_user_id`, `custom_fields`.

`tags` and `custom_fields` are replaced wholesale, not merged.

## Request body

- object

## Response `200`

The updated contact.

- object
  - `success` boolean
  - `data` Contact: A CRM contact as returned by read endpoints.
    - `id` string, uuid
    - `display_name` string
    - `first_name` string, nullable
    - `last_name` string, nullable
    - `primary_email` string, nullable
    - `primary_phone` string, nullable
    - `primary_linkedin_url` string, nullable
    - `company` string, nullable
    - `company_website` string, nullable
    - `job_title` string, nullable
    - `city` string, nullable
    - `state` string, nullable
    - `country` string, nullable
    - `tags` string[], nullable
    - `status` string
    - `source` string, nullable
    - `lead_score` number, nullable
    - `stage_id` string, uuid, nullable
    - `pipeline_id` string, uuid, nullable
    - `owner_user_id` string, uuid, nullable
    - `custom_fields` object, nullable
    - `created_at` string, date-time
    - `updated_at` string, date-time, nullable

## Other responses

- `400`: Malformed or invalid body. Do not retry — it will fail identically.
- `401`: Missing, invalid or revoked token.
- `404`: No such resource in your organization. Returned rather than `403` when the resource exists under a different tenant — cross-tenant existence is not disclosed.

---

[API](https://skmtc.dev/automatedclientacquisition/apis/aca-api.md) · [All operations](https://skmtc.dev/automatedclientacquisition/apis/aca-api/llms.txt) · [OpenAPI document](https://skmtc.dev/automatedclientacquisition/apis/aca-api/revisions/8f3e3b141311?raw)
