---
title: "Update a contact"
method: PUT
path: "/contacts/{id}"
tags: ["Contact"]
---

# Update a contact

`PUT /contacts/{id}`

Update a contact and return updated details.

## Path parameters

- `id` string, required

## Request body

- object
  - `first_name` string
  - `last_name` string
  - `display_name` string
  - `company` string
  - `job_title` string
  - `external_id` string
  - `notes` string

## Response `200`

Successful response.

- ContactManagerContact
  - `id` string, uuid — Unique identifier for the contact.
  - `customer_id` string, uuid — Unique identifier of the associated customer.
  - `first_name` string — First name of the contact.
  - `last_name` string — Last name of the contact.
  - `display_name` string — Display name of the contact.
  - `company` string — Company name associated with the contact.
  - `job_title` string — Job title of the contact.
  - `source` 'manual' | 'import' | 'api' | 'sync' — Source of the contact.
  - `external_id` string — External identifier for the contact.
  - `phone_numbers` ContactManagerPhoneNumber[] — List of phone numbers associated with the contact.
    - `id` string, uuid — Unique identifier for the phone number.
    - `number` string — Phone number as entered.
    - `number_e164` string — Phone number in E.164 format.
    - `type` 'mobile' | 'work' | 'home' | 'fax' | 'other' — Type of the phone number.
    - `is_primary` boolean — Indicates if this is the primary phone number.
    - `tm_create` string, date-time — Timestamp when the phone number was created.
  - `emails` ContactManagerEmail[] — List of email addresses associated with the contact.
    - `id` string, uuid — Unique identifier for the email address.
    - `address` string, email — Email address.
    - `type` 'work' | 'personal' | 'other' — Type of the email address.
    - `is_primary` boolean — Indicates if this is the primary email address.
    - `tm_create` string, date-time — Timestamp when the email was created.
  - `tag_ids` string[] — List of tag IDs associated with the contact.
  - `tm_create` string, date-time — Timestamp when the contact was created.
  - `tm_update` string, date-time — Timestamp when the contact was last updated.
  - `tm_delete` string, date-time — Timestamp when the contact was deleted.

## Other responses

- `400` — Invalid request (INVALID_ARGUMENT).
- `401` — Authentication required (UNAUTHENTICATED).
- `403` — Insufficient permission (PERMISSION_DENIED).
- `404` — Resource not found (NOT_FOUND).
- `500` — Internal error (INTERNAL).

## Changes

- **2026-05-30** `995c56ba9219` — 2 warning, 2 info
  - removed the optional property `addresses` from the response with the `200` status
  - removed the optional property `notes` from the response with the `200` status
  - added the optional property `emails` to the response with the `200` status
  - added the optional property `phone_numbers` to the response with the `200` status

[Change history](https://skmtc.dev/voipbin/apis/voipbin-api/changes/contacts/:id/put.md)

---

[API](https://skmtc.dev/voipbin/apis/voipbin-api.md) · [All operations](https://skmtc.dev/voipbin/apis/voipbin-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/voipbin/voipbin-api/revisions/bbde602eb171/schema)
