Most endpoints in this section require an Admin policy. The sole exception is
GET /api/users/profile, which requires a Customer-scoped token, and GET /api/users/exists, which is public and requires no authentication at all.POST /api/users
Create a new user account and add them to your organization. If the email address is already registered on the platform, the existing account is reused and only the organization membership is added.Authentication
Request body
string
required
The user’s first name.Example:
"Jane"string
required
The user’s last name.Example:
"Smith"string
required
The user’s email address. Used as the login identifier. Must be unique across the platform.Example:
"[email protected]"string
An initial password for the user. Ignored if the email is already registered on the platform — in that case the user keeps their current credentials.Example:
"SecurePass123!"string
The user’s phone number.Example:
"561-555-1212"Example request
cURL
Response fields
string
The created user’s first name.
string
The created user’s last name.
string
The created user’s email address.
string
The created user’s phone number.
Example response
Error responses
GET /api/users/profile
Returns the profile of the currently authenticated user. The user ID and organization ID are read from the JWT claims — you do not pass them as parameters.Authentication
Example request
cURL
Response fields
string
The authenticated user’s first name.
string
The authenticated user’s last name.
string
The authenticated user’s preferred email address.
string
The authenticated user’s phone number.
Example response
Error responses
GET /api/users/exists
Check whether a user account exists for a given email address. This endpoint is public — it does not require authentication.This endpoint is rate limited to 10 requests per minute per IP address.
Query parameters
string
required
The email address to look up.Example:
[email protected]Example request
cURL
Response fields
boolean
true if an account with the given email address exists on the platform; false otherwise.Example response
Error responses
GET /api/users/organizations
Returns the list of organizations the currently authenticated user belongs to. The user ID and email are read from the JWT claims — you do not pass them as parameters.Authentication
Example request
cURL
Response fields
array
An array of organization objects the user belongs to.
Example response
Error responses
GET /api/users/customer-association
Retrieve the customer record linked to a specific user within your organization. The organization is derived from your JWT claims. Use this to find which customer account a user is associated with.Authentication
Query parameters
string
required
The user ID of the user to look up.Example:
"kp_abc123def456"Example request
cURL
Response fields
string
The user ID.
string
The customer account number linked to this user.
string
The organization this association belongs to.
Example response
Error responses
GET /api/users/customer-associations
Returns all customer associations for a given user across all organizations. Useful when a single user account is linked to multiple customer records.Authentication
Query parameters
string
required
The user ID to retrieve associations for.Example:
"kp_abc123def456"Example request
cURL
Response
Returns an array of customer association objects.array
A flat array of
UserCustomer association objects.