/clientsCreate a clientCreates a new client in the authenticated organization. The server auto-wires any matching integration assignment rules based on the supplied domain (same behaviour as the dashboard create flow).
organizationId must not be included in the body. The organization is resolved from the bearer token; a body-borne organizationId is rejected with 400 invalid_argument rather than silently overridden.
Request body
requiredapplication/json
accountManagerIdsarray of string · uuidOptional initial set of account-manager user IDs. Each ID must reference a user in the caller's organization; cross-tenant assignment returns `400 invalid_argument` naming the offending ID.
Show child attributes
clientTypestringOptional lifecycle stage at create-time. Omitted → defaults to `active`. Invalid values return `400 invalid_argument` naming the offending value.
domainstringPrimary email domain — used by the integration assignment-rule engine to auto-attach inbound communications to this client. When omitted, the rule engine does not auto-assign based on domain.
namestringrequiredDisplay name of the new client.
{
"accountManagerIds": [
"00000000-0000-0000-0000-000000000000"
],
"clientType": "prospect",
"domain": "globex.com",
"name": "Globex"
}Responses
Headers
X-RateLimit-LimitThe request cap for the tighter of the per-organization / per-endpoint windows that applied to this request.
X-RateLimit-RemainingRequests remaining in the current window.
X-RateLimit-ResetUnix timestamp (seconds) when the current window resets.
allOf · 2 options
datavaluerequiredThe response payload — shape depends on the endpoint.
metaobjectrequiredPagination metadata — populated on list endpoints, empty on single-resource endpoints.
Show child attributes
cursornull | stringOpaque cursor to pass to the next request.
hasMoreboolean | nullTrue when further pages of results are available.
dataobjectA client record (partner's CRM account / customer). The fields `email`, `phone`, `company`, and `notes` from the v1.0 spec document are not yet populated — tracked as a follow-up.
Show child attributes
accountManagersarray of objectrequiredUsers assigned as account managers for this client. Peers — no primary/secondary distinction. Always present; an empty array signals no managers are assigned.
Show child attributes
Show array items
Minimal user identity surfaced on client records.
emailstring · emailrequiredfirstNamestringrequiredlastNamestringrequireduserIdstring · uuidrequiredStable UUID for this user.
clientTypestringrequiredLifecycle stage of the client (status, not legal entity type). `prospect` → `active` → `churned` is the canonical progression. Use this to answer pipeline/status questions ("who are my prospects?", "who has churned?"). Defaults to `active` on creation when the caller omits the field.
createdAtstring · date-timerequiredUTC timestamp when the client was created.
domainnull | stringPrimary email domain used to auto-assign communications (e.g. `acme.com`).
idstring · uuidrequiredStable UUID for this client.
namestringrequiredDisplay name of the client.
updatedAtstring · date-timerequiredUTC timestamp of the most recent update.
{
"data": {
"accountManagers": [
{
"email": "user@example.com",
"firstName": "string",
"lastName": "string",
"userId": "00000000-0000-0000-0000-000000000000"
}
],
"clientType": "active",
"createdAt": "2026-06-09T00:00:00Z",
"domain": "acme.com",
"id": "8b2d1c4e-3f5a-4e2b-9c8f-1e2d3c4b5a6f",
"name": "Acme Corp",
"updatedAt": "2026-06-09T00:00:00Z"
},
"meta": {
"cursor": "string",
"hasMore": true
}
}errorobjectrequiredShow child attributes
codestringrequiredMachine-readable error category.
detailsobjectOptional per-code context (field names, retry windows, …).
messagestringrequiredHuman-readable description — intended for operator logs, not end-user display.
{
"error": {
"code": "invalid_argument",
"message": "limit must be an integer between 1 and 100"
}
}errorobjectrequiredShow child attributes
codestringrequiredMachine-readable error category.
detailsobjectOptional per-code context (field names, retry windows, …).
messagestringrequiredHuman-readable description — intended for operator logs, not end-user display.
{
"error": {
"code": "unauthorized",
"message": "Authentication required"
}
}Headers
Retry-AfterSeconds the client should wait before retrying.
errorobjectrequiredShow child attributes
codestringrequiredMachine-readable error category.
detailsobjectOptional per-code context (field names, retry windows, …).
messagestringrequiredHuman-readable description — intended for operator logs, not end-user display.
{
"error": {
"code": "rate_limited",
"details": {
"retry_after_seconds": 30
},
"message": "Rate limit exceeded"
}
}