Users

Creates an account in the organization, like Users → Add User in the app.

Requires ManageUsers and an Idempotency-Key. The sync server creates the account (the same call the Add User page makes); it can sign in to the web app at once and on devices at their next sign-in. The key's creator must be an OrganizationAdmin (or higher); role may be at most the creator's own; SystemAdmin is never assignable; and every permission the new account would get (its role's, plus customRoleId's) must be held by the API key and by its creator. The password must meet the Flex password rule and is never returned. An active account counts as a billed seat once the organization is past its included seats. Example: { "email": "sam@example.com", "firstName": "Sam", "lastName": "Carter", "password": "Welcome#2026", "role": "Manager" }.

post/api/v1/users

Request

  • Base URL: https://app.flexonthejob.com
  • URL: https://app.flexonthejob.com/api/v1/users
  • Auth: HTTP bearer

Request body

emailstring email required

Login e-mail address, unique across Flex, up to 256 characters. Example: "sam@example.com".

firstNamestring required

First name, 1..100 characters. Example: "Sam".

lastNamestring required

Last name, 1..100 characters. Example: "Carter".

passwordstring required

Initial password: at least 8 characters with an uppercase letter, a lowercase letter, a digit and a symbol. Pass it to the person securely; they can change it under Account → Settings. Never returned. Example: "Welcome#2026".

role'OrganizationAdmin' | 'Manager' | 'User'

A standard role an API caller may assign. SystemAdmin is never assignable through the API. Ranked OrganizationAdmin (3) > Manager (2) > User (1).

customRoleIdinteger nullable

Optional custom role id (from GET /api/v1/roles) to add. The account then gets User as its standard role, so leave role out or send User. Example: 4.

Response

Created; Location points at the new account.

idstring

User id (string GUID). Example: "8f0c3c1e-2b6d-4c55-9a51-0d3f3c1b7e21".

emailstring nullable

Login e-mail address. Example: "sam@example.com".

firstNamestring nullable

First name. Example: "Sam".

lastNamestring nullable

Last name. Example: "Carter".

displayNamestring

Display name, e.g. "Sam Carter"; falls back to the e-mail address when no name is recorded.

isActiveboolean

False when the account is deactivated (it cannot sign in and holds no seat).

rolestring nullable

Highest standard role the account holds — OrganizationAdmin, Manager or User (SystemAdmin for platform staff); null when it holds only custom roles.

customRoleIdsinteger[]

Ids of the custom roles the account holds (see /api/v1/roles). Empty when none.

permissionsstring[]

Effective permissions from all of the account's roles, in catalog order. Example: ["ViewInventory", "ViewJobs"].

Changes

No recorded changes to this operation across all 1 revision of this API.