Skip to main content

ReferenceContacts

Contacts

Create, search, upsert by email/phone.

POST/api/v1/contacts

Create with at least display_name. Email is recommended. Phone with fewer than 7 or more than 15 digits is 400. PATCH cannot change email or phone.

HTTPPathScope
GET/api/v1/contactsrest.crm.contacts.read
POST/api/v1/contactsrest.crm.contacts.write
POST/api/v1/contacts/upsertrest.crm.contacts.write
GET/api/v1/contacts/{id}rest.crm.contacts.read
PATCH/api/v1/contacts/{id}rest.crm.contacts.write

Query

ParameterTypeNotes
emailstringPrimary email lookup. Miss is data: [], not 404.
phonestringPrimary phone lookup. Miss is data: [].
qstringFull-text name, email, phone and company.
limit / cursornumber / stringCursor page. limit 1–100, default 20.

Fields

FieldTypeCreatePATCHNotes
idUUID—nãoImmutable.
display_namestring | nullsimsimRequired on create. Split into first + last.
emailstring | nullsimnãoPrimary email. Create only.
phonestring | nullsimnão7–15 digits. Day 1 stores as BR +55.
company_idUUID | nullsimsimCompany in this org, or null.
owner_idUUID | nullsimsimSame id as GET /members.
tag_idsUUID[]simsimFull replace. [] clears.
created_at / updated_atdatetime—nãoISO-8601 UTC.

Upsert matches email, then phone. created: true and 201 on insert; created: false and 200 on update. Email/phone do not change on update. You do not need Idempotency-Key to avoid duplicates — upsert is the identity contract.