firstName and lastName are required; all other fields are optional. Email uniqueness is enforced per organization — if an email in the request already belongs to another of your contacts, the request returns 409 email_taken with the existing contact’s ID.
Endpoint
Authentication
string
required
Bearer token using your API key. Format:
Bearer cs_live_your_keyRequest body
string
required
Contact’s first name. Non-blank.
string
required
Contact’s last name. Non-blank.
string
Organization or company the contact belongs to.
object[]
Email entries. Duplicates (case-insensitive) are rejected.
object[]
Phone entries. Values are normalized to E.164 (e.g.
+34613628904); bare
national numbers are treated as US. Unparseable numbers return 400.object[]
Address entries.
string
SUBSCRIBED or UNSUBSCRIBED. Omit to use the creation default:
SUBSCRIBED (email is an opt-out regime).string
SUBSCRIBED or UNSUBSCRIBED. Omit to use the creation default:
NEVER_SUBSCRIBED (SMS is an opt-in regime — only set SUBSCRIBED when
you have collected explicit SMS consent).Response
On success returns201 with the created contact:
object
required
The full created contact record, in the same shape as
Get Contact — including its generated
id.Errors
Example
Successful creates emit the
contact.created webhook event.