Skip to main content
All endpoints require a Bearer token. All responses are scoped to the authenticated user’s tenant.

GET /api/crm/contacts

List contacts with optional filtering and pagination.

Query parameters

Response


POST /api/crm/contacts

Create a new contact.

Request body (Person)

Response


GET /api/crm/contacts/:id

Get a single contact with all associated records.

Response

Returns the full contact object including:
  • person or company details
  • emails, phones, addresses
  • occasions (birthdays, anniversaries)
  • identifications
  • relationships
  • requests
  • groupMemberships

PUT /api/crm/contacts/:id

Update a contact. Send only the fields you want to change.

DELETE /api/crm/contacts/:id

Delete a contact and all its associated records (cascade delete).

GET /api/crm/people

List person contacts only. Accepts the same query parameters as /api/crm/contacts.

GET /api/crm/companies

List company contacts only.

POST /api/crm/contacts/import

Bulk import contacts from a structured payload.

Request body

Returns a summary of created, updated, and errored rows.

Relationships

GET /api/crm/relationships

List relationships between contacts.

POST /api/crm/relationships

Link two contacts with a relationship type (e.g. Spouse, Parent, Child, Sibling):

Requests (prayer/pastoral needs)

POST /api/crm/requests

GET /api/crm/requests

List all requests, filterable by contact or type.

Contact status values