Update a contact’s name, subscription status, or custom properties.
Authentication
JWT Bearer token (dashboard auth)
Request Body
| Field | Type | Required | Description |
|---|
firstName | string | No | Updated first name |
lastName | string | No | Updated last name |
subscribed | boolean | No | Updated subscription status |
properties | object | No | Updated custom metadata |
You can also use PUT /contact-books/:id/contacts/:contactId to upsert a contact. The PUT method requires the email field and will create the contact if it does not exist.
Response
{
"success": true,
"data": {
"contact": {
"id": "660e8400-e29b-41d4-a716-446655440000",
"contact_book_id": "550e8400-e29b-41d4-a716-446655440000",
"email": "jane@example.com",
"first_name": "Jane",
"last_name": "Smith",
"subscribed": true,
"properties": {
"company": "Acme Inc",
"plan": "pro"
},
"created_at": "2026-03-07T12:00:00Z",
"updated_at": "2026-03-07T12:30:00Z"
}
}
}
Errors
| Status | Error | Cause |
|---|
404 | Contact not found | Invalid contact ID or not in this book |