The Zeeg CRM API lets you programmatically manage all data inside the Zeeg CRM — contacts (people), companies, and any custom objects your workspace has created. It is designed for data migrations, bi-directional syncs, and integrations with external systems.
Scopes
| Scope | What it allows |
|---|
crm:read | Read all CRM objects and records |
crm:write | Create, update, and delete CRM records; also grants read access |
All read endpoints accept either scope. All write endpoints require crm:write.
Standard objects
Zeeg CRM ships with two built-in objects. They are always present in every workspace and cannot be deleted.
People (people)
Represents a contact — an individual person your team interacts with.
| Attribute | API key | Type | Notes |
|---|
| ID | id | text | UUID, read-only |
| First Name | first_name | text | |
| Last Name | last_name | text | |
| Emails | emails | text | Unique. Accepts email validation. |
| Phone Number | phone_number | phone_number | |
| Job Title | job_title | text | |
| Description | description | text | |
| Company | crm_customer_company_id | relation → companies | Links person to a company |
| Contact Owner | contact_owner_member_id | user | Workspace member responsible for the contact |
| LinkedIn | linkedin | text | URL |
| X (Twitter) | twitter | text | URL |
| Facebook | facebook | text | URL |
| Instagram | instagram | text | URL |
| Created At | created_at | datetime | Read-only |
| Last Modified | updated_at | datetime | Read-only |
| Last Interaction | last_interaction | datetime | Auto-updated from calendar/email activity |
| Next Interaction | next_interaction | datetime | Auto-updated from scheduled meetings |
Companies (companies)
Represents an organisation your team works with.
| Attribute | API field | Type | Notes |
|---|
| ID | id | text | UUID, read-only |
| Name | name | text | Required |
| Domain | domain | text | Unique within workspace. Used as matching attribute for assert (upsert). |
| Description | description | text | |
| Website URL | websiteUrl | text | URL |
| Primary Location | primaryLocation | text | |
| Industries | industries | multiselect | Array of industry IDs |
| Account Owner | account_owner_member_id | user | Workspace member responsible for the account |
| LinkedIn | socials.linkedin | text | URL |
| X (Twitter) | socials.twitter | text | URL |
| Facebook | socials.facebook | text | URL |
| Instagram | socials.instagram | text | URL |
| Created At | createdAt | datetime | Read-only |
| Last Modified | updatedAt | datetime | Read-only |
| Last Interaction | last_interaction | datetime | Auto-updated |
| Next Interaction | next_interaction | datetime | Auto-updated |
Custom objects
In addition to the two standard objects, workspaces on eligible plans can create custom objects (e.g. deals, products, tickets). Each custom object has its own set of custom attributes.
Use GET /crm/objects to list all objects — standard and custom — along with their full attribute schemas.
Getting started
The recommended workflow for importing or syncing data:
1. GET /v2/crm/objects
→ Discover all objects and their attribute keys
2. PUT /v2/crm/companies?matchingAttribute=domain (for each company)
→ Create or update companies by domain
3. POST /v2/crm/people (for each person)
→ Create people records, linking them to companies via crm_customer_company_id
All timestamps in responses are in ISO 8601 format with UTC offset (e.g. 2025-06-01T10:00:00+00:00).