Skip to main content

Users & Agents Endpoints

Users & Agents


Users

GET /Users

Summary: List of Users

Description: Returns multiple Users. Requires authentication.

Query Parameters:

NameTypeDescription
activeinactivestringTwo comma-separated values: first sets includeactive, second sets includeinactive
advanced_searchstringAdvanced search filter
allapproversbooleanAdds an OR condition to show all Users that are approvers
approvers_onlybooleanInclude only users that are an approver
asset_idintegerFilter by Users assigned to a particular asset
client_idintegerFilter by Users belonging to a particular client
contract_idintegerFilter by Users assigned to a particular device application type
countintegerWhen not using pagination, the number of results to return
department_idintegerFilter Users belonging to a particular department
exclude_agentsbooleanExclude users that are also an agent
exclude_defaultsiteusersbooleanExclude default site users
exclude_generaluserbooleanExclude general users
idonlybooleanReturns only the ID field (not compatible with Pagination)
includeactivebooleanInclude users that are active
includebillinginfobooleanInclude billing information
include_custom_fieldsstringComma-separated list of Custom Field IDs to include
includeinactivebooleanInclude users that are inactive
includenamebooleanInclude name field
includenonserviceaccountbooleanInclude users that are a non-service account
includenotesbooleanInclude user notes
includeserviceaccountbooleanInclude users that are a service account
integration_typestringFilter by integration: okta or azure
is_followersbooleanFilter followers
is3cxcallboolean3CX call filter
lastupdatefromdatebooleanInclude lastupdatefromdate field
lastupdatetodatebooleanInclude lastupdatetodate field
licence_idintegerFilter by licence ID
listagentuserfirstbooleanOrder users that are also agents first
myallcustomersbooleanInclude all customers
myareabooleanInclude only Users that belong to your area
mydepartmentbooleanInclude only Users that belong to your department
mysitebooleanInclude only Users that belong to your site
mysitecontactbooleanInclude only Users that belong to your site contact
mytoplevelbooleanInclude only Users that belong to your top level
opp_idintegerFilter by Users assigned to a particular opportunity
orderstringField name to order by (first)
order2stringField name to order by (second)
order3stringField name to order by (third)
order4stringField name to order by (fourth)
order5stringField name to order by (fifth)
orderdescbooleanOrder descending on first order field
orderdesc2booleanOrder descending on second order field
orderdesc3booleanOrder descending on third order field
orderdesc4booleanOrder descending on fourth order field
orderdesc5booleanOrder descending on fifth order field
organisation_idintegerFilter by Users belonging to a particular organisation
page_nointegerPage number when using pagination
page_sizeintegerPage size when using pagination
pageinatebooleanWhether to use pagination
roleintegerFilter by role ID
searchstringFilter by Users matching the search string
search_phonenumbersbooleanFilter by Users with a matching phone number
site_idintegerFilter by Users belonging to a particular site
supplier_idintegerFilter by Users belonging to the specified supplier
tickettype_idintegerFilter by ticket type
toplevel_idintegerFilter by Users belonging to a particular top level
linked_to_user_idintegerFilter by Users linked to the specified User ID

Response: 200 OK — Array of Users_View objects


POST /Users

Summary: Create User(s)

Request Body: Array of Users objects

Response: 201 CreatedUsers object


GET /Users/{id}

Summary: Get one User

Description: Returns a single User instance. Requires authentication.

Path Parameters:

NameTypeRequiredDescription
idintegerYesUser ID

Query Parameters:

NameTypeDescription
client_idintegerFilter by the specified client
client_overrideintegerClient override
domainstringFilter on site permissions — opps defaults to user opportunities
includeactivitybooleanInclude site ticket activity
includebillinginfobooleanInclude billing information
includedetailsbooleanInclude extra objects
includepopupsbooleanInclude customer pop-ups
includeusersassetsbooleanInclude user assets
issetupbooleanSetup mode flag
opp_idintegerFilter by User assigned to a particular opportunity
site_idintegerFilter by the specified site
site_overrideintegerSite override
supplier_idintegerFilter by the specified supplier
tickettype_idintegerFilter by ticket type
usernamestringFilter by the specified username

Response: 200 OKUsers object


DELETE /Users/{id}

Summary: Delete a User

Path Parameters:

NameTypeRequiredDescription
idintegerYesUser ID

Response: 200 OK


GET /Users/me

Summary: Get the currently authenticated User

Response: 200 OKUsers object


POST /Users/prefs

Summary: Update User Preferences

Request Body: Array of UserPrefs objects

Response: 200 OK


Agent (Uname)

Note: The HaloPSA API uses "Uname" as the internal schema name for Agent objects.

GET /Agent

Summary: List of Agents

Description: Returns multiple Agents. Requires authentication.

Query Parameters:

NameTypeDescription
activeinactivestringTwo comma-separated values: first sets includeactive, second sets includeinactive
appointmentscreenbooleanAppointment screen filter
basic_fields_onlybooleanReduces the number of fields returned
can_edit_onlybooleanFilter on Agents you have permission to edit
client_idintegerFilter by Agents belonging to a particular client
clientidoverridestringClient ID override
department_idintegerFilter by Agents belonging to a particular department
departmentsstringComma-separated department filter
domainstringFilter on Agent permissions: opps, prjs, reqs
exchangecalendarsbooleanFilter on Agents that have exchange calendars synced
exclude_membership_infobooleanRemove team and department membership information from response
excludeAgentintegerExclude agent with this ID
forcequalmatchbooleanForce qualification match
include_membership_infobooleanAlways include team and department membership information
includeapiagentsbooleanInclude API agents
includedisabledstringInclude Agents that are inactive
includeenabledstringInclude Agents that are active
includenamedcountbooleanInclude count of the number of Agents
includerolesbooleanInclude Agent roles
includestatusbooleanInclude Agent status
includeunassignedstringInclude the unassigned Agent
is_agent_cachebooleanSpecial behaviour for Agent app Agent Cache build
integration_typestringFilter on Agents that belong to an integration — okta
linemanagedonlybooleanFilter on Agents that have a line manager
linkingagentsbooleanLinking agents filter
loadcachebooleanLoad from cache
onlinestatusesstringComma-separated online status filter
orderstringField name to order by (first)
order2stringField name to order by (second)
order3stringField name to order by (third)
order4stringField name to order by (fourth)
order5stringField name to order by (fifth)
orderdescbooleanOrder descending on first order field
orderdesc2booleanOrder descending on second order field
orderdesc3booleanOrder descending on third order field
orderdesc4booleanOrder descending on fourth order field
orderdesc5booleanOrder descending on fifth order field
page_nointegerPage number when using pagination
page_sizeintegerPage size when using pagination
pageinatebooleanWhether to use pagination
qualificationsstringComma-separated qualification filter
reassignbooleanFilter on Agents that can assign to Agents in sections they are not a member of
remoteagentsbooleanFilter on Agent invite permissions
remoteagenttypestringRemote agent type: beyondtrust or logmein
rolestringFilter by Agents with a particular role (pass int as string)
searchstringFilter by Agents with a matching name, email, or telephone number
shiftagentsonlybooleanShift agents only
showallbooleanOverride org restrictions for main search (admin only)
showcountsbooleanInclude Agents ticket counts
teamstringFilter by Agents within a particular team
team_idintegerFilter by Agents within a particular team ID
teamsstringComma-separated team filter
thisAgentOnlybooleanOnly include your agent
ticketarea_idintegerFor showcounts — ticket area filter
tickettype_idintegerFilter by Agents that have access to particular ticket types
view_idintegerFor showcounts — ticket view filter
withemailbooleanFilter on Agents that have an email

Response: 200 OK


POST /Agent

Summary: Create Agent(s)

Request Body: Array of Uname objects

Response: 200 OK


GET /Agent/{id}

Summary: Get one Agent

Description: Returns a single Agent instance. Requires authentication.

Path Parameters:

NameTypeRequiredDescription
idintegerYesAgent ID

Query Parameters:

NameTypeDescription
clientidoverridestringClient ID override
get_htmldesigner_signaturebooleanInclude HTML designer signature
getholidayallowancebooleanInclude holiday allowance
includedetailsbooleanInclude extra objects
isagentconfigbooleanAgent config mode
loadcachebooleanLoad from cache

Response: 200 OK


DELETE /Agent/{id}

Summary: Delete an Agent

Path Parameters:

NameTypeRequiredDescription
idintegerYesAgent ID

Response: 200 OK


GET /Agent/me

Summary: Get the currently authenticated Agent

Response: 200 OK


POST /Agent/ClearCache

Summary: Clear the Agent cache

Response: 200 OK


GET /AgentImage/{id}

Summary: Get Agent profile image

Description: Returns a single Agent image. Requires authentication.

Path Parameters:

NameTypeRequiredDescription
idstringYesAgent ID

Query Parameters:

NameTypeDescription
clientidoverridestringClient ID override
get_htmldesigner_signaturebooleanInclude HTML designer signature
getholidayallowancebooleanInclude holiday allowance
includedetailsbooleanInclude extra objects
isagentconfigbooleanAgent config mode
loadcachebooleanLoad from cache

Response: 200 OK


AgentEventSubscription (UnameEventSubscription)

GET /AgentEventSubscription

Summary: List Agent Event Subscriptions

Response: 200 OK


POST /AgentEventSubscription

Summary: Create Agent Event Subscription(s)

Request Body: Array of UnameEventSubscription objects

Response: 200 OK


GET /AgentEventSubscription/{id}

Path Parameters:

NameTypeRequiredDescription
idintegerYesSubscription ID

Response: 200 OK


DELETE /AgentEventSubscription/{id}

Path Parameters:

NameTypeRequiredDescription
idintegerYesSubscription ID

Response: 200 OK


Notification (UnameNotification)

GET /Notification

Summary: List of Notifications

Description: Returns multiple Notifications. Requires authentication.

Query Parameters:

NameTypeDescription
agent_idintegerFilter by agent ID
restrictto_agent_idintegerRestrict to a specific agent
role_idstringFilter by role ID
showallbooleanShow all notifications
typeintegerFilter by notification type
webhook_idstringFilter by webhook ID

Response: 200 OK


POST /Notification

Summary: Create Notification(s)

Request Body: Array of UnameNotification objects

Response: 200 OK


GET /Notification/{id}

Summary: Get one Notification

Description: Returns a single Notification instance. Requires authentication.

Path Parameters:

NameTypeRequiredDescription
idintegerYesNotification ID

Query Parameters:

NameTypeDescription
includedetailsbooleanInclude extra details

Response: 200 OK


DELETE /Notification/{id}

Path Parameters:

NameTypeRequiredDescription
idintegerYesNotification ID

Response: 200 OK


AgentPresenceRule (UnamePresenceRule)

GET /AgentPresenceRule

Summary: List Agent Presence Rules

Response: 200 OK


AgentPresenceSubscription (UnamePresenceSubscription)

GET /AgentPresenceSubscription

Summary: List Agent Presence Subscriptions

Response: 200 OK


POST /AgentPresenceSubscription

Summary: Create Agent Presence Subscription(s)

Request Body: Array of UnamePresenceSubscription objects

Response: 200 OK


GET /AgentPresenceSubscription/{id}

Path Parameters:

NameTypeRequiredDescription
idintegerYesSubscription ID

Response: 200 OK


DELETE /AgentPresenceSubscription/{id}

Path Parameters:

NameTypeRequiredDescription
idintegerYesSubscription ID

Response: 200 OK


UserChange

GET /UserChange

Summary: List of UserChange records

Description: Returns multiple UserChange records. Requires authentication.

Query Parameters:

NameTypeDescription
change_datestringFilter by change date
countintegerNumber of results to return
exclude_generaluserbooleanExclude general users
idonlybooleanReturn only IDs
orderstringField name to order by (first)
order2stringField name to order by (second)
order3stringField name to order by (third)
order4stringField name to order by (fourth)
order5stringField name to order by (fifth)
orderdescbooleanOrder descending on first order field
orderdesc2booleanOrder descending on second order field
orderdesc3booleanOrder descending on third order field
orderdesc4booleanOrder descending on fourth order field
orderdesc5booleanOrder descending on fifth order field
page_nointegerPage number when using pagination
page_sizeintegerPage size when using pagination
pageinatebooleanWhether to use pagination

Response: 200 OK


UserRoles

GET /UserRoles

Summary: List User Roles

Response: 200 OK


POST /UserRoles

Summary: Create User Role(s)

Request Body: Array of UserRoles objects

Response: 200 OK


GET /UserRoles/{id}

Summary: Get one UserRole

Description: Returns a single UserRole instance. Requires authentication.

Path Parameters:

NameTypeRequiredDescription
idintegerYesUserRole ID

Query Parameters:

NameTypeDescription
includedetailsbooleanInclude extra details

Response: 200 OK


DELETE /UserRoles/{id}

Path Parameters:

NameTypeRequiredDescription
idintegerYesUserRole ID

Response: 200 OK


OnlineStatus

GET /OnlineStatus

Summary: Get Agent Online Status

Query Parameters:

NameTypeDescription
TechIDintegerAgent/tech ID
LastOnlineDatestring (date-time)Last online date filter
IsOnlinebooleanWhether the agent is online
LastOnlinestringLast online string value
agent_statusintegerAgent status code
status_overiddenbooleanWhether status is overridden
fetch_allbooleanFetch all statuses
is_logoutbooleanWhether agent is logged out
commandstringCommand to execute
last_activestring (date-time)Last active timestamp
is_idlebooleanWhether agent is idle
idle_warnbooleanIdle warning flag

Response: 200 OK


POST /OnlineStatus

Summary: Update Online Status

Request Body: Array of OnlineStatus objects

Response: 200 OK


AgentCheckIn

GET /AgentCheckIn

Summary: List of AgentCheckIn records

Description: Returns multiple AgentCheckIn records. Requires authentication.

Query Parameters:

NameTypeDescription
agent_idintegerFilter by agent ID
start_datestringFilter by start date
end_datestringFilter by end date

Response: 200 OK


POST /AgentCheckIn

Summary: Create AgentCheckIn record(s)

Request Body: Array of AgentCheckIn objects

Response: 200 OK


GET /AgentCheckIn/{id}

Summary: Get one AgentCheckIn

Description: Returns a single AgentCheckIn instance. Requires authentication.

Path Parameters:

NameTypeRequiredDescription
idintegerYesCheckIn ID

Query Parameters:

NameTypeDescription
includedetailsbooleanInclude extra details

Response: 200 OK


TeamImage

GET /TeamImage/{id}

Summary: Get Team profile image

Path Parameters:

NameTypeRequiredDescription
idstringYesTeam ID

Response: 200 OK


LoginToken

POST /LoginToken

Summary: Create a Login Token

Request Body: LoginToken object

Response: 200 OK


AuthInfo

GET /AuthInfo

Summary: Get authentication information

Response: 200 OK