Contacts represent individual people inside a company. Each contact must be linked to a company viaDocumentation Index
Fetch the complete documentation index at: https://developers.novala.ai/llms.txt
Use this file to discover all available pages before exploring further.
companyId. You can attach a role, mark one contact as primary, and store arbitrary key-value data in customFields.
All contacts endpoints are scoped to your tenant. Pass your API key in the
Authorization: Bearer header on every request.List contacts
GET /api/v1/contacts/contact
Returns a paginated list of contacts for the authenticated tenant. Filter by company or run a full-text search across names and emails.
Query parameters
Filter contacts belonging to a specific company. Must be a valid UUID.
Full-text search across contact names and email addresses.
1-based page index.
Number of results per page. Maximum
100.Response
Create a contact
POST /api/v1/contacts/contact
Creates a new contact linked to an existing company.
Request body
UUID of the company this contact belongs to.
Contact’s first name. Maximum 100 characters.
Contact’s last name. Maximum 100 characters.
Contact’s email address. Must be a valid email format.
Contact’s phone number. Maximum 50 characters.
Job title or role within the company. Maximum 100 characters.
When
true, marks this as the primary contact for the company.Internal notes about this contact.
Key-value map of custom field data. Any required custom fields your tenant has configured must be included.
Response
Returns201 Created with the new contact wrapped in { "data": {...} }.
Get a contact
GET /api/v1/contacts/contact/{id}
Retrieves a single contact by ID.
Path parameters
UUID of the contact.
Response
Returns200 OK with { "data": { contact object } }. Returns 404 Not Found if the contact does not exist or belongs to a different tenant.
Response fields
Update a contact
PATCH /api/v1/contacts/contact/{id}
Partially updates a contact. Only include the fields you want to change. Pass null to clear a nullable field.
Path parameters
UUID of the contact to update.
Request body
All fields are optional.Updated first name. Maximum 100 characters.
Updated last name. Maximum 100 characters.
Updated email address. Pass
null to clear.Updated phone number. Pass
null to clear.Updated role. Pass
null to clear.Whether to mark this contact as the primary contact.
Updated internal notes. Pass
null to clear.Replaces all custom field values with the provided map.
Response
Returns200 OK with { "data": { updated contact } }. Returns 404 Not Found if the contact does not exist.