---
title: "Set a contact's primary email and/or phone"
method: PATCH
path: "/business/contacts/{contactId}"
tags: ["Contacts"]
---

# Set a contact's primary email and/or phone

`PATCH /business/contacts/{contactId}`

## Request

- Base URL: `https://api.tryfuse.ai/api/v1`
- URL: `https://api.tryfuse.ai/api/v1/business/contacts/{contactId}`
- Auth: HTTP basic

Sets which of the contact's known emails and phone numbers are its primary ones. Primaries are chosen by value: `primaryEmail` must be one of the addresses already on the contact and `primaryPhone` one of its phone numbers, written exactly as they appear on the list row (`emails[].email`, `phones[].phoneNumber`); a value the contact does not carry is rejected with 422 PRIMARY_VALUE_NOT_ON_CONTACT and nothing is changed. The call promotes an existing value and never adds a new one — enrich the contact to add addresses or numbers. Send either field or both; the response reports both primaries as they now stand. Free to call.

Errors:
- `404` `CONTACT_NOT_FOUND` — No contact with that id exists.
- `422` `PRIMARY_VALUE_NOT_ON_CONTACT` — The value is not one the contact already carries; `param` names which of primaryEmail / primaryPhone was rejected and nothing was changed.
- `422` `VALIDATION_FAILED` — The body failed validation, including a body with neither primaryEmail nor primaryPhone.
- `429` `RATE_LIMITED` — More than 120 requests per minute or 10,000 per day on the contacts bucket, which every /business/contacts endpoint shares; retry after Retry-After.
- `500` `UNEXPECTED_ERROR` — The request could not be completed; quote request_id to support.

Requires one of the following token scopes: contacts.

## Path parameters

- `contactId` string, required: Id of the contact: the row id from GET /business/lists/{listId}/rows, or the contactId returned by POST /business/contacts/resolve.

## Request body

- object
  - `primaryEmail` string, email: Email address to make the contact's primary email (a valid address, max 320 characters). It must be one of the emails the contact already carries: this promotes an existing value and never adds a new one.
  - `primaryPhone` string: Phone number to make the contact's primary phone (3-32 characters, written exactly as it appears in the contact's phones). It must be one of the phone numbers the contact already carries: this promotes an existing value and never adds a new one.

## Response `200`

Success

- object
  - `contact` object, required
    - `id` string, required: Id of the contact.
    - `primaryEmail` string, nullable, required: The contact's primary email after the update; null when it has none.
    - `primaryPhone` string, nullable, required: The contact's primary phone after the update; null when it has none.

## Other responses

- `400`: Error
- `401`: Error
- `402`: Error
- `403`: Error
- `404`: Error
- `409`: Error
- `422`: Error
- `429`: Error
- `500`: Error

---

[API](https://skmtc.dev/fuseai/apis/fuse-business-api.md) · [All operations](https://skmtc.dev/fuseai/apis/fuse-business-api/llms.txt) · [OpenAPI document](https://skmtc.dev/fuseai/apis/fuse-business-api/revisions/50d95e0536f4?raw)
