bot_id) and inherits the workspace from your API key.
The Contact object
string
Unique contact identifier.
string
The workspace this contact belongs to.
string
The agent that owns this contact.
string | null
string | null
array
Array of
{ email, is_primary } objects. The first item is treated as primary if no is_primary flag is set.array
Array of
{ phone_number, is_primary } objects.string | null
Free-text company name. Use
company_id to link to a structured Company record.string | null
string | null
string[]
number | null
Estimated deal value as a number (currency assumed to match workspace settings).
string | null
Current stage in a sales pipeline.
string | null
Free-form classification (e.g.
"lead", "customer").string | null
string | null
string | null
string | null
string | null
string | null
string | null
string | null
object
Workspace-defined custom fields, stored as a free-form JSON object.
string | null
ISO 8601 timestamp of the most recent activity.
string
ISO 8601 timestamp.
string
ISO 8601 timestamp.
List contacts
GET
GET /api/v1/contactsQuery parameters
Example
Get contact by email
GET
GET /api/v1/contacts/by-email404 not_found if no contact matches.
Query parameters
Example
Get a contact
GET
GET /api/v1/contacts/{id}Example
Create a contact
POST
POST /api/v1/contactswrite scope.
Body fields
Example
Update a contact
PATCH
PATCH /api/v1/contacts/{id}bot_id cannot be changed.
Example
Delete a contact
DELETE
DELETE /api/v1/contacts/{id}204 No Content with an empty body on success.
Example
Bulk upsert contacts
POST
POST /api/v1/contacts/upsert- Primary email (if provided)
- Primary phone number (if no email match)
Body fields
Example
Response
Contact[]
Contacts that were newly inserted.
Contact[]
Contacts that matched an existing record and were updated.
array
Per-row failures as
{ index, message }. The numeric index is the position of the failing item in the input contacts array. The rest of the batch still succeeds.
