PostZen
Contacts

Update a contact

PATCH
/v1/contacts/{contactId}

Requires read_write. Limited to 600 updates/hour/user. Supports partial updates, null clears for email, company, avatarUrl, notes and customFields, and [] to clear tags. customFields replaces the entire object. profileId and channel fields cannot be changed. Unknown or out-of-scope ids return 404 contactNotFound.

Authorization

bearerAuth
AuthorizationBearer <token>

PostZen API key.

In: header

Path Parameters

contactId*string

Contact owning this channel.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Partial update. profileId cannot be changed; channel fields and unknown keys are rejected with 400 validation. Tags replace the array and customFields replaces the whole object.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X PATCH "https://example.com/v1/contacts/jd7contact123" \  -H "Content-Type: application/json" \  -d '{}'
{  "message": "Contact updated successfully",  "contact": {    "id": "jd7contact123",    "profileId": "jd7profile123",    "name": "Jane Doe",    "email": "jane@example.com",    "company": "Acme",    "avatarUrl": "https://images.example.com/jane.jpg",    "tags": [      "VIP",      "Lead"    ],    "isSubscribed": true,    "isBlocked": false,    "notes": "Interested in the launch.",    "customFields": {      "leadScore": 42,      "customer": true    },    "messagesSentCount": 3,    "messagesReceivedCount": 5,    "lastMessageSentAt": "2026-09-19T12:00:00.000Z",    "lastMessageReceivedAt": "2026-09-19T12:00:00.000Z",    "source": "api",    "createdAt": "2026-09-19T12:00:00.000Z",    "updatedAt": "2026-09-19T12:00:00.000Z"  }}
{  "error": "JSON body is required"}
{  "error": "Unauthorized"}
{  "error": "API key requires read_write permission"}
{  "error": "Not found"}
{  "error": "string",  "type": "string",  "code": "string",  "param": "string"}
{  "error": "rate_limited",  "retryAfter": 30}
{  "error": "Failed to create post"}