---
title: "Update a client"
method: PUT
path: "/clients/{id}"
tags: ["Client"]
---

# Update a client

`PUT /clients/{id}`

Update a client

## Path parameters

- `id` string, required

## Query parameters

- `ignore_custom_required_fields` boolean
- `source_quick_add` boolean
- `id_is_partner` boolean, required
- `first_name` string
- `last_name` string
- `mobile_phone` string
- `work_phone` string
- `email` string
- `can_receive_automated_emails` boolean
- `can_receive_automated_sms` boolean
- `can_receive_manual_emails` boolean
- `can_receive_manual_sms` boolean
- `can_receive_manual_sms_confirmed_at` string, date-time
- `can_receive_automated_sms_confirmed_at` string, date-time
- `contact_preference` integer
- `preferred_location_partner_id` string
- `preferred_location_mytime_id` integer
- `associated_location_partner_ids` string[]
- `associated_location_mytime_ids` string[]
- `add_label_names` string[]
- `remove_label_names` string[]

## Headers

- `X-Subdomain` string

## Request body

- object
  - `addresses` Address[]
    - `id` string
    - `street_address` string
    - `street_address_2` string
    - `city` string
    - `zip` string
    - `state` string
    - `country` string

## Response `200`

Updated

- Client[]
  - `first_name` string
  - `last_name` string
  - `mobile_phone` string
  - `work_phone` string
  - `home_phone` string
  - `email` string
  - `contact_preference` string
  - `updated_at` string
  - `created_at` string
  - `appointment_count` integer
  - `can_book_online` string
  - `company_id` string
  - `source_quick_add` string
  - `has_missing_required_values` string
  - `can_receive_automated_emails` boolean
  - `can_receive_automated_sms` boolean
  - `can_receive_manual_emails` boolean
  - `can_receive_manual_sms` boolean
  - `can_receive_manual_sms_confirmed_at` boolean
  - `can_receive_automated_sms_confirmed_at` boolean
  - `has_card_on_file` boolean
  - `is_existing_customer` boolean
  - `associated_location_partner_ids` string[]
  - `associated_location_mytime_ids` string[]
  - `preferred_location_partner_id` integer
  - `preferred_location_mytime_id` integer
  - `children` Child[]
    - `photo_url` string
    - `source_quick_add` boolean
    - `has_missing_required_values` boolean
    - `partner_id` integer, required
    - `pet_name` string
    - `pet_breed` string
    - `date_of_birth` string
    - `weight` string
    - `pet_type` string
    - `gender` string
    - `vet_name` string
    - `vet_phone` string
    - `breeding_status` string
    - `last_vaccination` string
    - `deceased` string
    - `notes` string
    - `collar_size` string
    - `uuid_1781539616339` string
    - `uuid_1781539935195` string
    - `uuid_1781539993585` string
    - `uuid_1781540024854` string
    - `uuid_1781540084005` string
    - `uuid_1781540119989` string
    - `uuid_1781540174684` string
  - `appointments` Appointment[]
    - `purchased_at_price` number
    - `begin_at` string, required
    - `end_at` string, required
    - `client_name` string
    - `client_email` string
    - `created_at` string
    - `status` string
    - `time_zone` string
    - `is_existing_customer` string
    - `client_phone` string
    - `variation_name` string
    - `full_address` string
    - `employee_partner_id` integer
    - `location_partner_id` integer
    - `client_partner_id` integer
    - `mytime_id` string
    - `client_mobile_phone` string
    - `client_home_phone` string
    - `client_work_phone` string
    - `checked_in_at` string
    - `checked_in` string
    - `checked_out_at` string
    - `pos_status` string
    - `address_id` string
    - `employee_requested` string
    - `child_partner_id` integer
    - `employee_mytime_id` integer, required
    - `location_mytime_id` integer, required
    - `client_mytime_id` integer, required
    - `child_mytime_id` integer
    - `variations` Variation[]
      - `price` number, required — Total charge for this variation. For multi-day stays (e.g. boarding), this is the total for the entire stay. When "multiplier_base_price" and "price_multiplier" are sent, this must equal their product.
      - `multiplier_base_price` number — Per-unit base price. Must be sent together with "price_multiplier" or omitted entirely.
      - `price_multiplier` integer — Number of units the base price is multiplied by (e.g. minutes, attendees). Must be sent together with "multiplier_base_price" or omitted entirely.
      - `variation_partner_id` string, required — Partner-side identifier of the service being booked.
      - `variation_mytime_id` string, required — MyTime identifier of the service being booked. Pull from GET /variations.
      - `parent_id` string — For add-on variations, references the parent variation in the same request. Match the parent’s variation_partner_id if provided, otherwise the parent’s variation_mytime_id (integer or string both accepted). The parent must appear earlier in the variations array than any add-on referencing it — an add-on cannot be the first entry, or the relationship is silently dropped. The add-on must also be configured as connectable to that parent service in the merchant catalog; otherwise the request fails with "Add-on cannot be added-on for variation <id>".
      - `variation_employee_id` string — Staff assigned to this specific variation. Distinct from the appointment-level employee_mytime_id query param — lets different variations within one appointment be performed by different staff (e.g. a stylist for the cut and a colorist for the color).
      - `variation_begin_at` string — Pins this variation to a specific start time within the appointment window. ISO 8601, e.g. 2026-05-15T10:00:00Z.
      - `variation_end_at` string — Pins this variation to a specific end time within the appointment window. See variation_begin_at. ISO 8601.
    - `custom_field_values` CustomFieldValue[]
      - `value` string
      - `custom_field_partner_id` string
      - `id` integer
      - `custom_field_mytime_id` integer
    - `events` Event[]
      - `action` string
      - `occurred_at` string
      - `appointment_previous_begin_at` string
      - `appointment_begin_at` string
      - `employee_partner_id` integer
    - `partner_id` integer
    - `appointment_group_id` integer — ID of the appointment group this appointment belongs to, or null if it is not part of a group.
  - `addresses` Address[]
    - `id` string
    - `street_address` string
    - `street_address_2` string
    - `city` string
    - `zip` string
    - `state` string
    - `country` string
  - `partner_id` integer, required
  - `client_since` string
  - `date_of_birth` string
  - `gender` string
  - `client_source` string
  - `client_utm_medium` string
  - `client_utm_campaign` string
  - `uuid_1781540571420` string
  - `uuid_1781540589781` string
  - `uuid_1781540607719` string
  - `uuid_1781540690018` string
  - `uuid_1781540758096` string
  - `uuid_1781540938932` string
  - `uuid_1781541173026` string
  - `uuid_1781541191526` string
  - `uuid_1781541367612` string

## Other responses

- `401` — Unauthorized
- `422` — Invalid parameters
- `500` — Internal Server Error
- `504` — Gateway Timeout

---

[API](https://skmtc.net/mytime/apis/mytime-partners-api.md) · [All operations](https://skmtc.net/mytime/apis/mytime-partners-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/mytime/mytime-partners-api/versions/65d3a27fcb1a/schema)
