Documentation
Sign inGet started

Update a contact

PATCH
/v1/contacts/{contact_id}
const contact = await bird.contacts.update("con_01krdgeqcxet5s7t44vh8rt9mg", {
  first_name: "Jane",
});
console.log(contact.first_name);
Response200
{
  "id": "con_01krdgeqcxet5s7t44vh8rt9mg",
  "audiences": [
    {
      "id": "adn_01krdgeqcxet5s7t44vh8rt9mg"
    }
  ],
  "created_at": "2026-05-20T09:14:52Z",
  "updated_at": "2026-05-25T16:42:01Z"
}
Updates a contact. Supplied fields are changed and omitted fields are left unchanged; set first_name, last_name, or external_id to null to clear them. Custom values in data are merged: keys you supply are set, keys set to null are removed, and keys you omit are unchanged.
Changing the email address, phone number, or external_id to a value already used by another contact returns a conflict error. A contact always keeps at least one identifier. Clearing both email and phone in the same contact is rejected.
Parameters
contact_id
string
ID of the contact to update.
Request Payload
email
nullable string
New email address for the contact. Trimmed and lowercased before it is stored and checked for uniqueness. Must not be in use by another contact in the workspace. Omit to keep the current address; set to null to remove it, as long as the contact keeps at least one identifier.
phone_number
nullable string
New phone number for the contact, in E.164 format with the leading + and country code. Spaces and punctuation are accepted and stripped. Stored in its canonical form, which may differ from what you send, and unique within the workspace. Omit to keep the current number; set to null to remove it, as long as the contact keeps at least one identifier. An empty string behaves as null.
first_name
nullable string
The contact's first name. Set to null to clear.
last_name
nullable string
The contact's last name. Set to null to clear.
external_id
nullable string
Your own identifier for this contact. Unique within the workspace when set. Set to null to clear.
data
object
Custom property values to merge into the contact's existing data. Supplied keys are set, keys with a null value are removed, and omitted keys remain unchanged. Each key must be an active contact property. Each value must match the property's declared type: string, number, boolean, or RFC 3339 datetime. Strings can contain up to 500 characters. An unregistered or archived key returns a validation error. The serialized result is limited to 2 KB.
Response Payload
id
string
required
ID of the contact, accepted by every operation that takes a contact_id.
email
nullable string
required
The contact's email address, in its stored form, trimmed and lowercased before uniqueness is checked. Unique within the workspace. null when the contact has no email address.
phone_number
nullable string
required
The contact's phone number in normalized international form: a leading + and four to 15 digits. We normalize formatting but do not verify the number against numbering-plan metadata. The number is unique within the workspace. Because carriers recycle disconnected numbers, use external_id as the durable key for your own records. null when the contact has no phone number.
first_name
nullable string
The contact's first name. Available in broadcast templates as bird.contact.first_name.
last_name
nullable string
The contact's last name. Available in broadcast templates as bird.contact.last_name.
external_id
nullable string
Your own identifier for this contact, such as a user ID in your system. Unique within the workspace when set.
data
object
Custom property values for this contact, available in broadcast templates as bird.contact.<key>. Each key is a property created via the contact properties API, and each value is a string, number, boolean, or RFC 3339 datetime matching the property's declared type (strings up to 500 characters). Total size is capped at 2 KB serialized. Values stored under a property that was later archived remain readable here.
audiences
array of object
The audiences this contact belongs to, most-recently-joined first. Only present when listing contacts; omitted from every other contact operation.
Show child attributes
audiences.id
string
required
ID of the referenced audience.
audiences.name
string
required
The audience's display name.
created_at
string
required
updated_at
string
required