Skip to content
Letterhead Letterhead Letterhead Help Center
Admin Tools

Update a contact by contact key

PUT
/api/v3/contacts/keyed/{contactKey}
curl --request PUT \
--url https://api.tryletterhead.com/api/v3/contacts/keyed/example \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "firstName": "example", "lastName": "example", "tags": [ "example" ], "customFields": {}, "channel": "example" }'

Same as Update a contact (PUT /api/v3/contacts/{email}), with the contact addressed by its contactKey instead of its email address — the address to use for a contact with no email, such as a phone-only contact.

This is a company-level (v3) write. Authenticate with a company API key as a Bearer token.

contactKey
required
string

The contact’s opaque 64-character hex key (from a prior response’s contactKey field).

Media type application/json
object
firstName

The contact’s first name.

string
lastName

The contact’s last name.

string
tags

Tags to set on the contact.

Array<string>
customFields

Values for your company’s custom fields, keyed by field name. See PUT /api/v3/contacts/{email} for the full rules.

object
channel

A channel slug. Scopes the tag-change trigger for tags this update adds; omit for a company-wide edit.

string
Example generated
{
"firstName": "example",
"lastName": "example",
"tags": [
"example"
],
"customFields": {},
"channel": "example"
}

200 OK. Same shape as GET /api/v3/contacts/{email}.

Media type application/json
object
items

The updated contact. Full field list under GET /api/v3/contacts/{email}.

object
message
string
total
integer
Example generated
{
"items": {},
"message": "example",
"total": 1
}

Still can’t find what you need? Contact support.