Contacts API
Manage your contact database with full CRUD operations, tagging, list membership, dynamic segments, and per-channel opt-in/opt-out preferences. Base path:/v1/contacts
Create Contact
POST /v1/contacts
Add a new contact to your account.
Phone number in E.164 format (e.g.,
+14155552671)Contact email address
First name
Last name
ISO 3166-1 alpha-2 country code (e.g.,
US, TR)Contact lifecycle stage:
lead, customer, churned, etc.Initial tags to assign
Custom key-value data attached to the contact
List Contacts
GET /v1/contacts
Retrieve contacts with search, filtering, and cursor-based pagination.
Cursor for pagination
Number of results per page (max 100)
Full-text search across name, phone, and email
Filter by lifecycle stage
Filter by country code
Get Contact
GET /v1/contacts/{id}
Retrieve a single contact by ID.
Contact ID (e.g.,
con_abc123)Update Contact
PUT /v1/contacts/{id}
Update one or more fields on an existing contact.
Contact ID
Updated phone number (E.164)
Updated email address
Updated first name
Updated last name
Updated lifecycle stage
Updated custom metadata (merged with existing)
Delete Contact
DELETE /v1/contacts/{id}
Permanently remove a contact and all associated data.
Contact ID
204 No Content
Tags
Add Tags
POST /v1/contacts/{id}/tags
Append one or more tags to a contact. Duplicate tags are ignored.
Contact ID
Array of tag strings to add
Remove Tag
DELETE /v1/contacts/{id}/tags/{tag}
Remove a single tag from a contact.
Contact ID
Tag string to remove
Activity Timeline
GET /v1/contacts/{id}/activity
Retrieve the communication timeline for a contact — messages sent, delivered, opened, and agent interactions.
Contact ID
Channel Preferences
PUT /v1/contacts/{id}/preferences
Update a contact’s per-channel opt-in/opt-out preferences.
Contact ID
Channel preference map
Opt-outs
GET /v1/contacts/optouts
List all contacts who have opted out of one or more channels.
Cursor for pagination
Number of results per page (max 100)
Filter opt-outs by channel:
sms, whatsapp, email, rcs, viber, voiceSearch by name, phone, or email
Lists
List All Lists
GET /v1/contacts/lists
Retrieve all contact lists.
Create List
POST /v1/contacts/lists
Create a new contact list.
List name
Optional description
Update List
PUT /v1/contacts/lists/{id}
Update a contact list’s name or description.
List ID
Updated name
Updated description
Delete List
DELETE /v1/contacts/lists/{id}
Delete a contact list. Members are not deleted — only the list association is removed.
Response: 204 No Content
List Members
GET /v1/contacts/lists/{id}/members
List contacts belonging to a specific list (cursor-paginated).
List ID
Cursor for pagination
Number of results per page (max 100)
Segments
List Segments
GET /v1/contacts/segments
Retrieve all dynamic contact segments with cursor-based pagination.
Cursor for pagination
Number of results per page (max 100)
Create Segment
POST /v1/contacts/segments
Create a new dynamic segment with filter rules.
Segment name
Filter rules object that defines which contacts belong to this segment
Delete Segment
DELETE /v1/contacts/segments/{id}
Delete a dynamic segment. Contacts are not affected.
Segment ID
204 No Content