Contacts API
Create, retrieve, update, and manage customer contact records programmatically.
Endpoints
/v1/contactsList contacts/v1/contactsCreate a contact/v1/contacts/:idRetrieve a contact/v1/contacts/:idUpdate a contact/v1/contacts/:idDelete a contact/v1/contacts/:id/conversationsList contact's conversations/v1/contacts/:id/tagsAdd tags/v1/contacts/:id/tags/:tagRemove a tagCreate a contact
POST /v1/contacts
Request body parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| string | Yes* | Contact email address. *Required unless phone is provided. | |
| phone | string | Yes* | E.164 format phone number. *Required unless email is provided. |
| name | string | No | Contact's display name |
| avatar_url | string | No | URL to the contact's avatar image |
| tags | string[] | No | Array of tag strings |
| custom_attributes | object | No | Key/value pairs for any custom fields |
Response
Contact merging
When the same customer contacts you with different emails or phone numbers, you may end up with duplicate contact records. Merge them via:
The duplicate contact's conversations and attributes are merged into the primary contact. The duplicate record is then permanently deleted.
Custom attributes
Custom attributes allow you to store arbitrary structured data on contact records — for example, CRM account ID, subscription plan, MRR, or churn risk score. They are visible in the conversation sidebar and can be used as conditions in routing and automation rules.
Define your custom attribute schema in Settings → Contacts → Custom attributesbefore setting values via the API. Supported types: string, number,boolean, date.
422 Validation Error.