Skip to main content
The Users endpoints allow you to view and manage user accounts within your organization. You can create new users, look up profile information, check whether an account exists, and retrieve the customer associations and organization memberships tied to a specific user.
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.
Requires Admin role. Calls from tokens without the Admin policy return 403 Forbidden.

Authentication

Authorization: Bearer {your_admin_access_token}

Request body

FirstName
string
required
The user’s first name.Example: "Jane"
LastName
string
required
The user’s last name.Example: "Smith"
Email
string
required
The user’s email address. Used as the login identifier. Must be unique across the platform.Example: "[email protected]"
Password
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!"
PhoneNumber
string
The user’s phone number.Example: "561-555-1212"

Example request

cURL
curl -X POST https://api.achievemomentum.com/api/users \
  -H "Authorization: Bearer {your_admin_access_token}" \
  -H "Content-Type: application/json" \
  -d '{
    "FirstName": "Jane",
    "LastName": "Smith",
    "Email": "[email protected]",
    "Password": "SecurePass123!",
    "PhoneNumber": "561-555-1212"
  }'

Response fields

FirstName
string
The created user’s first name.
LastName
string
The created user’s last name.
Email
string
The created user’s email address.
PhoneNumber
string
The created user’s phone number.

Example response

{
  "FirstName": "Jane",
  "LastName": "Smith",
  "Email": "[email protected]",
  "PhoneNumber": "561-555-1212"
}

Error responses

StatusDescription
400 Bad RequestA required field is missing or invalid.
403 ForbiddenYour token does not carry the Admin role.
500 Internal Server ErrorAn unexpected error occurred.

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.
Requires Customer role. Calls from tokens without a Customer policy return 403 Forbidden.

Authentication

Authorization: Bearer {your_access_token}

Example request

cURL
curl https://api.achievemomentum.com/api/users/profile \
  -H "Authorization: Bearer {your_access_token}"

Response fields

FirstName
string
The authenticated user’s first name.
LastName
string
The authenticated user’s last name.
Email
string
The authenticated user’s preferred email address.
PhoneNumber
string
The authenticated user’s phone number.

Example response

{
  "FirstName": "Jane",
  "LastName": "Smith",
  "Email": "[email protected]",
  "PhoneNumber": "561-555-1212"
}

Error responses

StatusDescription
404 Not FoundNo user record exists for the ID in the token.
400 Bad RequestThe request is malformed.
401 UnauthorizedThe bearer token is missing or expired.

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

Email
string
required
The email address to look up.Example: [email protected]

Example request

cURL
curl "https://api.achievemomentum.com/api/users/exists?Email=john%40example.com"

Response fields

UserExists
boolean
true if an account with the given email address exists on the platform; false otherwise.

Example response

{
  "UserExists": true
}

Error responses

StatusDescription
400 Bad RequestThe Email parameter is missing or not a valid email format.

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.
Requires Admin role. Calls from tokens without the Admin policy return 403 Forbidden.

Authentication

Authorization: Bearer {your_admin_access_token}

Example request

cURL
curl https://api.achievemomentum.com/api/users/organizations \
  -H "Authorization: Bearer {your_admin_access_token}"

Response fields

Organizations
array
An array of organization objects the user belongs to.

Example response

{
  "Organizations": [
    {
      "OrganizationId": "6d24ab9faf9e034e881fcd97",
      "Name": "Acme Corp",
      "Slug": "acme-corp"
    }
  ]
}

Error responses

StatusDescription
400 Bad RequestThe user cannot be found based on your token’s identity claims.
403 ForbiddenYour token does not carry the Admin role.

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.
Requires Admin role.

Authentication

Authorization: Bearer {your_admin_access_token}

Query parameters

UserId
string
required
The user ID of the user to look up.Example: "kp_abc123def456"

Example request

cURL
curl "https://api.achievemomentum.com/api/users/customer-association?UserId=kp_abc123def456" \
  -H "Authorization: Bearer {your_admin_access_token}"

Response fields

UserId
string
The user ID.
CustomerNumber
string
The customer account number linked to this user.
OrganizationId
string
The organization this association belongs to.

Example response

{
  "UserId": "kp_abc123def456",
  "CustomerNumber": "C-10042",
  "OrganizationId": "6d24ab9faf9e034e881fcd97"
}

Error responses

StatusDescription
404 Not FoundNo customer association exists for this user in your organization.
400 Bad RequestUserId is missing.
403 ForbiddenYour token does not carry the Admin role.

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.
Requires Admin role.

Authentication

Authorization: Bearer {your_admin_access_token}

Query parameters

UserId
string
required
The user ID to retrieve associations for.Example: "kp_abc123def456"

Example request

cURL
curl "https://api.achievemomentum.com/api/users/customer-associations?UserId=kp_abc123def456" \
  -H "Authorization: Bearer {your_admin_access_token}"

Response

Returns an array of customer association objects.
[]
array
A flat array of UserCustomer association objects.

Example response

[
  {
    "UserId": "kp_abc123def456",
    "CustomerNumber": "C-10042",
    "OrganizationId": "6d24ab9faf9e034e881fcd97"
  },
  {
    "UserId": "kp_abc123def456",
    "CustomerNumber": "C-20099",
    "OrganizationId": "7e35bc0abf0f145f992gde08"
  }
]

Error responses

StatusDescription
400 Bad RequestUserId is missing or invalid.
403 ForbiddenYour token does not carry the Admin role.