Create or update a contact by identifier
An access token issued to a user.
Your workspace identifier.
b4e02c85-c6d2-4b15-8885-e09671799c61The identifier key
emailaddressWhether to allow writing to read-only attributes. (this is only allowed if the request origin is from flows or journeys)
falseStrategy for resolving contact conflicts when identifiers match multiple contacts:
- strict_alias: All identifiers must match a single contact, otherwise an error is returned. All non-matching identifiers will be added to the contact that was found (default).
- first_alias: Uses priority-based filtering to find the first matching identifier. When a contact is found, all other identifiers are tried to be added to that contact, but that is allowed to fail.
- first: Uses priority-based filtering to find the first matching identifier. No other identifiers are added when a contact is found. When nothing is found, a contact will be created using only the first provided identifier.
strict_aliasPossible values: The list of list ids to add the contact to.
123e4567-e89b-12d3-a456-426614174000The list of list ids to remove the contact from.
123e4567-e89b-12d3-a456-426614174000The list of list ids for the contact.
123e4567-e89b-12d3-a456-426614174000The list of account ids to add the contact to.
123e4567-e89b-12d3-a456-426614174000The list of account ids to remove the contact from.
123e4567-e89b-12d3-a456-426614174000The list of account ids for the contact.
123e4567-e89b-12d3-a456-426614174000The list of company references to add to the contact.
The list of company references to remove from the contact.
The list of company references for the contact.
Updated
Created
Contact or workspace not found
Duplicate identifier
Invalid contact
PATCH /workspaces/{workspaceId}/contacts/identifiers/{identifierKey}/{identifierValue} HTTP/1.1
Host: api.bird.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 851
{
"allowWritingReadOnly": false,
"strategy": "strict_alias",
"attributes": {
"firstName": "John",
"lastName": "Smith",
"rating": 9.6,
"cookiesAccepted": false,
"labels": [
"A",
"B",
"C"
]
},
"addIdentifiers": [
{
"key": "secondaryEmailAddress",
"value": "[email protected]",
"properties": {
"countryCode": "US",
"isGmail": true
}
}
],
"removeIdentifiers": [
{
"key": "secondaryEmailAddress",
"value": "[email protected]"
}
],
"addToLists": [
"123e4567-e89b-12d3-a456-426614174000"
],
"removeFromLists": [
"123e4567-e89b-12d3-a456-426614174000"
],
"listIds": [
"123e4567-e89b-12d3-a456-426614174000"
],
"addToAccounts": [
"123e4567-e89b-12d3-a456-426614174000"
],
"removeFromAccounts": [
"123e4567-e89b-12d3-a456-426614174000"
],
"accountIds": [
"123e4567-e89b-12d3-a456-426614174000"
],
"addCompanyRefs": [
"text"
],
"removeCompanyRefs": [
"text"
],
"companyRefs": [
"text"
],
"ANY_ADDITIONAL_PROPERTY": "anything"
}{
"id": "123e4567-e89b-12d3-a456-426614174000",
"computedDisplayName": "John Doe",
"createdAt": "2025-11-25T20:38:48.843Z",
"updatedAt": "2025-11-25T20:38:48.843Z",
"workspaceId": "123e4567-e89b-12d3-a456-426614174000",
"featuredIdentifiers": [
{
"key": "emailaddress",
"value": "[email protected]"
}
],
"attributes": {
"firstName": "John",
"lastName": "Smith",
"rating": 9.6,
"cookiesAccepted": false,
"labels": [
"A",
"B",
"C"
]
},
"identifierCount": 2,
"accountIds": [
"123e4567-e89b-12d3-a456-426614174000"
],
"listIds": [
"123e4567-e89b-12d3-a456-426614174000"
],
"companyRefs": [
"text"
]
}Examples
Let's establish some of our data that will be used in the following examples:
Workspace ID: a1405560-c8d3-4b1a-877d-3f449ad95352
AccessKey: abcd
Contact ID: 12bd0e40-9361-4e32-8b26-99b4ab7eae09
Update contact's identifiers
In this example, we're updating a contact providing identifiers. To know more about identifiers, please refer to this documentation.
curl -X PATCH "https://api.bird.com/workspaces/a1405560-c8d3-4b1a-877d-3f449ad95352/contacts/identifiers/emailaddress/[email protected]" \
-H "Content-Type: application/json" \
-H "Authorization: AccessKey abcd" \
-d '{
"addIdentifiers": [
{
"key": "phonenumber",
"value": "+31412345678"
}
]
}'{
"id": "12bd0e40-9361-4e32-8b26-99b4ab7eae09",
"computedDisplayName": "John",
"featuredIdentifiers": [
{
"key": "emailaddress",
"value": "[email protected]"
},
{
"key": "phonenumber",
"value": "+31412345678"
}
],
"identifierCount": 1,
"attributes": {
"firstName": "John",
"initialReference": "32d6f4f9-7e9c-4271-bd83-9d6976808f2f",
"lastName": "Doe",
"timezone": "America/Sao_Paulo"
},
"createdAt": "2024-11-26T15:00:00.000Z",
"updatedAt": "2024-11-26T15:00:00.000Z"
}Update contact's attributes
In this example, we're updating a contact providing attributes. To know more about attributes, please refer to this documentation.
curl -X PATCH "https://api.bird.com/workspaces/a1405560-c8d3-4b1a-877d-3f449ad95352/contacts/identifiers/emailaddress/[email protected]" \
-H "Content-Type: application/json" \
-H "Authorization: AccessKey abcd" \
-d '{
"attributes": {
"countryCode": "US"
}
}'{
"id": "12bd0e40-9361-4e32-8b26-99b4ab7eae09",
"computedDisplayName": "John",
"featuredIdentifiers": [
{
"key": "emailaddress",
"value": "[email protected]"
}
],
"identifierCount": 1,
"attributes": {
"firstName": "John",
"initialReference": "32d6f4f9-7e9c-4271-bd83-9d6976808f2f",
"lastName": "Doe",
"timezone": "America/Sao_Paulo",
"countryCode": "US"
},
"createdAt": "2024-11-26T15:00:00.000Z",
"updatedAt": "2024-11-26T15:00:00.000Z"
}Create a new contact
In this example, we're creating a new contact because the provided identifier is not being used by any existing contacts.
curl -X PATCH "https://api.bird.com/workspaces/a1405560-c8d3-4b1a-877d-3f449ad95352/contacts/identifiers/emailaddress/[email protected]" \
-H "Content-Type: application/json" \
-H "Authorization: AccessKey abcd" \
-d '{
"attributes": {
"firstName": "John",
"lastName": "Doe",
"countryCode": "US"
},
"addIdentifiers": [
{
"key": "phonenumber",
"value": "+31412345678"
}
]
}'{
"id": "12bd0e40-9361-4e32-8b26-99b4ab7eae09",
"computedDisplayName": "John",
"featuredIdentifiers": [
{
"key": "emailaddress",
"value": "[email protected]"
},
{
"key": "phonenumber",
"value": "+31412345678"
}
],
"identifierCount": 1,
"attributes": {
"firstName": "John",
"initialReference": "32d6f4f9-7e9c-4271-bd83-9d6976808f2f",
"lastName": "Doe",
"timezone": "America/Sao_Paulo",
"countryCode": "US"
},
"createdAt": "2024-11-26T15:00:00.000Z",
"updatedAt": "2024-11-26T15:00:00.000Z"
}Last updated
Was this helpful?

