---
title: "Update Contact"
method: PUT
path: "/v1/api/contacts/{contact_id}"
tags: ["Contacts"]
deprecated: true
---

# Update Contact

`PUT /v1/api/contacts/{contact_id}`

## Request

- Base URL: `https://api.withallo.com`
- URL: `https://api.withallo.com/v1/api/contacts/{contact_id}`
- Auth: API key in header `Authorization`

> **Deprecated.**

**Deprecated.** Use `PUT /v2/api/crm/people/{id}` instead. This endpoint still responds, but it is no longer maintained and is not part of the current API reference.

Update an existing contact. Only provided fields will be updated. Arrays (emails, numbers, addresses) replace existing values entirely.

## Path parameters

- `contact_id` string, required

## Request body

- UpdateContactRequest: Request body for updating an existing contact. Only provided fields will be updated.
  - `name` string, nullable: First name
  - `last_name` string, nullable: Last name
  - `job_title` string, nullable: Job title
  - `website` string, nullable: Website URL
  - `emails` string[], nullable: Email addresses (replaces all existing emails)
  - `numbers` string[], nullable: Phone numbers (replaces all existing numbers)

## Response `200`

Contact updated successfully

- ContactApiResponse: Standard response wrapper for a single contact
  - `data` ContactWithEngagementApiResponse: A contact record with engagement information
    - `id` string: Unique contact identifier
    - `name` string, nullable: First name
    - `last_name` string, nullable: Last name
    - `company` object, nullable: Company information
      - `name` string, nullable
      - `id` string, nullable
    - `job_title` string, nullable: Job title
    - `website` string, nullable: Website URL
    - `status` string, nullable: Contact status
    - `is_archived` boolean: Whether the contact is archived
    - `created_at` string, date-time, nullable: When the contact was created
    - `updated_at` string, date-time, nullable: When the contact was last updated
    - `numbers` string[]: List of phone numbers
    - `is_whitelisted` boolean: Whether the contact is whitelisted
    - `last_activity_date` string, date-time, nullable: Date of the last activity
    - `engagement` 'ENGAGED' | 'COOLING' | 'COLD', nullable: Engagement level of the contact

## Other responses

- `400`: Bad request
- `401`: Unauthorized - Invalid or missing API key
- `403`: Forbidden - API key lacks required scope
- `429`: Too Many Requests - Rate limit exceeded

## Changes

- **2026-11-03** `46c77103dd14`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/withallo/apis/allo-api/changes/v1/api/contacts/:contact_id/put.md)

---

[API](https://skmtc.dev/withallo/apis/allo-api.md) - [All operations](https://skmtc.dev/withallo/apis/allo-api/llms.txt) - [OpenAPI document](https://skmtc.dev/withallo/apis/allo-api/revisions/46c77103dd14?raw)
