Skip to main content
The Contacts API lets you programmatically manage the people you message in Heymarket. You can create and update contact records, attach custom field values, search by phone or email, and control messaging status such as opt-outs and blocks. The API exposes both a legacy v1 surface and a newer v2 surface that introduces UUID-based identifiers and contact channels.

The Contact object

Every contact is represented by the following fields.
FieldTypeDescription
idintegerUnique integer identifier for the contact.
display_namestringFull display name shown in the inbox.
firststringFirst name.
laststringLast name.
emailstringEmail address.
phonestringPrimary phone number in E.164 format without the leading +.
customobjectCustom field values keyed by field ID (string).
team_idintegerID of the team that owns this contact.
creator_idintegerID of the user who created the contact.
sharedbooleanWhether the contact is shared across teams.
createdstringISO 8601 timestamp of when the contact was created.
updatedstringISO 8601 timestamp of the last update.
revintegerRevision number, incremented on every write.
opstringLast operation performed on the contact.
assigned_user_idintegerID of the user currently assigned to this contact.
tagsarrayList of tag objects attached to the contact.
is_opted_outbooleanWhether the contact has opted out of messages.
Phone numbers must be in E.164 format without the leading + sign. For example, use 14155553434 instead of +14155553434.

Endpoints

MethodEndpointDescription
POST/v1/contactCreate a contact
GET/v1/contact/{id}Get a contact by integer ID
PUT/v1/contact/{id}Update a contact
DELETE/v1/contact/{id}Delete a contact
POST/v1/contactsList and paginate contacts
POST/v1/contacts/countGet the total contact count
POST/v1/contact/getGet a contact by phone number or ID
POST/v1/contact/statusGet contact messaging status
POST/v1/contact/set_statusSet contact messaging status
POST/v1/batch/contactsBatch create contacts
POST/v1/contact-fieldsList custom contact fields
POST/v2/contactCreate a contact (v2)
GET/v2/contact/{contactID}Get a contact by UUID (v2)
PUT/v2/contact/{contactID}Update a contact (v2)
DELETE/v2/contact/{contactID}Delete a contact (v2)
POST/v2/contactsBulk create or update contacts (v2)
DELETE/v2/contactsBulk delete contacts (v2)
POST/v2/contacts/listList contacts with pagination (v2)
POST/v2/contacts/searchSearch contacts by channel (v2)

Authentication

All requests require a Bearer token in the Authorization header.
Authorization: Bearer YOUR_API_KEY