---
title: "Update a contact's custom fields on a list"
method: PUT
path: "/v2/contacts"
tags: ["contacts-v2"]
---

# Update a contact's custom fields on a list

`PUT /v2/contacts`

## Request

- Base URL: `https://api.tracklysms.com/api`
- URL: `https://api.tracklysms.com/api/v2/contacts`
- Auth: API key in header `X-Api-Key`

By default, merges the provided custom_fields into existing fields.
Set merge_fields to false to replace entirely.

## Request body

- UpdateContactRequest
  - `custom_fields` object, required: Custom fields key-value pairs to set
  - `list_number` string, required: Sending list phone number in E.164 format
  - `merge_fields` boolean: If true (default), merge into existing custom_fields. If false, replace entirely.
  - `phone_number` string, required: Contact phone number in E.164 format

## Response `200`

Contact updated

- UpdateContactResponse
  - `custom_fields` object: The full custom_fields after update
  - `list_contact_id` string: ListContact ID
  - `success` boolean: Operation success

## Other responses

- `400`: Validation error
- `401`: Authentication error

---

[API](https://skmtc.dev/tracklysms/apis/trackly-sms-api.md) · [All operations](https://skmtc.dev/tracklysms/apis/trackly-sms-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tracklysms/apis/trackly-sms-api/revisions/ac1ad22cb2a9?raw)
