## Invite `UserInviteResponse Viewer.Users.Invite(UserInviteParamsparameters, CancellationTokencancellationToken = default)` **post** `/v1/viewer/users` Creates a new user in the Viewer system and sends them an invitation email. The user will have the specified permissions and access level. Dashboard access can be enabled to allow login. ### Parameters - `UserInviteParams parameters` - `required Boolean canManageStudies` - `required ClinicRole clinicRole` User's clinical or organizational role - `"Radiologist"Radiologist` - `"Cardiologist"Cardiologist` - `"Neurologist"Neurologist` - `"Urologist"Urologist` - `"Gynecologist"Gynecologist` - `"Endocrinologist"Endocrinologist` - `"Doctor"Doctor` - `"Surgeon"Surgeon` - `"Physician"Physician` - `"Physician Assistant"PhysicianAssistant` - `"Nurse Practitioner"NursePractitioner` - `"Registered Nurse"RegisteredNurse` - `"Patient Care Coordinator"PatientCareCoordinator` - `"Front Desk Operator"FrontDeskOperator` - `"Imaging Technologist"ImagingTechnologist` - `"PACS Administrator"PacsAdministrator` - `"Software Engineer"SoftwareEngineer` - `"Revenue Cycle Manager"RevenueCycleManager` - `"Administrative Director"AdministrativeDirector` - `"Administrative Assistant"AdministrativeAssistant` - `"Other"Other` - `required string email` User's email address for login and notifications - `required string firstName` User's first name - `required Boolean hasDashboardAccess` - `required string lastName` User's last name - `required Level level` - `"admin"Admin` - `"member"Member` - `string middleName` User's middle name (optional) - `string phoneNumber` User's phone number (10-15 digits, optional) - `string suffix1` Name suffix (e.g., 'Jr.', 'Sr.', 'III') - optional - `string suffix2` Additional name suffix (optional) ### Returns - `class UserInviteResponse:` Response for inviting a user to Viewer. Level is restricted to admin/member since owners cannot be invited via API. - `required Boolean CanManageStudies` Whether the user has permission to create, update, and manage studies - `required ClinicRole ClinicRole` User's clinical or organizational role - `"Radiologist"Radiologist` - `"Cardiologist"Cardiologist` - `"Neurologist"Neurologist` - `"Urologist"Urologist` - `"Gynecologist"Gynecologist` - `"Endocrinologist"Endocrinologist` - `"Doctor"Doctor` - `"Surgeon"Surgeon` - `"Physician"Physician` - `"Physician Assistant"PhysicianAssistant` - `"Nurse Practitioner"NursePractitioner` - `"Registered Nurse"RegisteredNurse` - `"Patient Care Coordinator"PatientCareCoordinator` - `"Front Desk Operator"FrontDeskOperator` - `"Imaging Technologist"ImagingTechnologist` - `"PACS Administrator"PacsAdministrator` - `"Software Engineer"SoftwareEngineer` - `"Revenue Cycle Manager"RevenueCycleManager` - `"Administrative Director"AdministrativeDirector` - `"Administrative Assistant"AdministrativeAssistant` - `"Other"Other` - `required DateTimeOffset? CreatedAt` Timestamp when the user was created - `required string Email` User's email address for login and notifications - `required string FirstName` User's first name - `required Boolean HasDashboardAccess` Whether the user can access the dashboard interface. Required for admin users - `required InvitedSource InvitedSource` How the user was invited - via dashboard UI or API - `"dashboard"Dashboard` - `"api"Api` - `required DateTimeOffset? LastLoginAt` Timestamp of user's last login, null if never logged in - `required string LastName` User's last name - `required Level Level` User access level. 'admin' can manage users/settings, 'member' has standard access - `"admin"Admin` - `"member"Member` - `required string UserID` Unique user identifier. Format: usr_{32-hex-chars} - `string MiddleName` User's middle name (optional) - `string PhoneNumber` User's phone number (10-15 digits, optional) - `string Suffix1` Name suffix (e.g., 'Jr.', 'Sr.', 'III') - optional - `string Suffix2` Additional name suffix (optional) ### Example ```csharp UserInviteParams parameters = new() { CanManageStudies = true, ClinicRole = ClinicRole.Radiologist, Email = "dr.johnson@hospital.org", FirstName = "Sarah", HasDashboardAccess = true, LastName = "Johnson", Level = Level.Member, }; var response = await client.Viewer.Users.Invite(parameters); Console.WriteLine(response); ```