Ticket Endpoints
Core Tickets (Faults)
Tickets in HaloPSA are referred to as "Faults" in the API. All endpoints require authentication.
Faults
GET /Tickets
Summary: List of Faults
Description: Returns multiple Fault records. Supports extensive filtering, sorting, pagination, and optional field inclusion.
Query Parameters:
| Parameter | Type | Description |
|---|---|---|
advanced_search | string | Advanced search string |
agent | string | (array of int) Filter by Agent IDs |
agent_id | integer | Filter by a single agent ID |
alerttype | string | Includes fninjaalertid field; use 'ninjarmm' |
asset_id | integer | Filter by asset ID |
awaitinginput | string | Filter awaiting input |
billableonly | boolean | Return only billable tickets |
billing_date | string | Filter on billing date |
billing_type | string | Filter on billing type |
billingcontractid | integer | Filter by billing contract ID |
calendar_enddate | string | Actions occurred before this date |
calendar_startdate | string | Actions occurred after this date |
category_1 | string | (array of int) Filter by category 1 IDs |
category_2 | string | (array of int) Filter by category 2 IDs |
category_3 | string | (array of int) Filter by category 3 IDs |
category_4 | string | (array of int) Filter by category 4 IDs |
cf_display_values_only | boolean | Use performant method for custom fields; returns display values only (limited to first 1000 chars) |
checkmyticketsonly | boolean | Return only own tickets |
client_id | integer | Filter by client ID |
client_ids | string | (array of int) Filter by multiple client IDs |
client_ref | string | Filter by client reference |
closed_only | boolean | Return only closed tickets |
columns_id | integer | Column profile ID |
contract_id | integer | Filter by contract ID |
contract_period | integer | Filter by contract period ID |
count | integer | Number of tickets to return |
datesearch | string | Date field to search against. Examples: dateoccured (Date Opened), datecleared (Date Closed) |
debug | boolean | Include debug information |
default_columns | boolean | Include only default columns |
deleted | boolean | Include deleted tickets |
domain | string | Filter by ticket area: reqs, opps (opportunities), prjs (projects) |
enddate | string | End date for use with datesearch |
enddatetime | boolean | Include project end date/time details |
excludeslacalcs | boolean | Exclude SLA calculation details |
excludethese | string | (array of int) Exclude tickets with these fault IDs |
excludetickettypeallowall | boolean | Exclude ticket type allow-all details |
extraportalfilter | string | MyTicketsOnly or MyClientTickets |
facebook_id | string | Filter by Facebook ID |
fetchgrandchildren | boolean | Include grandchildren tickets |
flagged | string | (array of int) Filter by flagged ticket IDs |
followedandagents | string | (array of int) Filter by agent and follower IDs |
ignoremilestonerestriction | boolean | Ignore milestone restrictions |
includeaccountmanager | boolean | Include account manager details |
includeagent | boolean | Include agent details |
includeallopen | boolean | Include all open tickets |
includeappointmentid | boolean | Include appointment ID |
includeapproval | string | (array of int) Filter approval tickets: 1 = approval, 0 = not approval |
includeassetkeyfield | boolean | Include asset key field |
includeassettype | boolean | Include asset type details |
includebreached | string | (array of int) Filter by breached ticket IDs |
includebudgettype | boolean | Include budget type details |
includechildids | boolean | Include child ticket IDs |
includechildread | boolean | Include child tickets read details |
includechildren | string | (array of int) 0 = no children/not a child, 1 = has children, 2 = is a child |
includeclosed | string | (array of int) 1 = closed, 0 = not closed |
includecolumns | boolean | Include column details |
includecompleted | boolean | Include completed tickets |
includecontract | boolean | Include contract details |
includefirstname | boolean | Include user first name |
include_custom_fields | string | Comma-separated list of custom field IDs to include |
includefollowedonly | string | (array of int) Filter by follower IDs |
includehold | string | (array of int) Filter by on-hold ticket IDs |
includeinactivetechs | string | (array of int) Filter by inactive tech IDs |
includeinactiveusers | string | (array of int) 1 = inactive, 0 = active |
includeitilname | boolean | Include ITIL name details |
includelastaction | boolean | Include last action (only when single ticket returned) |
includelastincomingemail | boolean | Include last incoming email details |
includelastname | boolean | Include user last name |
includelastnote | boolean | Include last note details |
includelocked | boolean | Include locked tickets |
includemailbox | boolean | Include email box details |
includemyuseronly | string | (array of int) Filter by own user ID |
includenextactivitydate | boolean | Include next activity date |
includenextappointmenttype | boolean | Include next appointment type |
includeprojects | string | (array of int) 1 = opportunities not projects, 2 = projects not opportunities, 0 = neither |
includeread | string | (array of int) Filter by read ticket IDs |
includerelatedservices | boolean | Include related services |
includerelease1 | boolean | Include release 1 details |
includerelease2 | boolean | Include release 2 details |
includerelease3 | boolean | Include release 3 details |
includeservicecategory | boolean | Include service category |
includeslaactiondate | boolean | Include SLA action date |
includeslatimer | boolean | Include SLA timer |
includestatus | boolean | Include status details |
includesubmittedonly | string | (array of int) Filter by agent submitted IDs |
includesupplier | boolean | Include supplier details |
includetickettype | boolean | Include ticket type details |
includetimetaken | boolean | Include time taken |
includetoplevel | boolean | Include top level details |
includeviewing | boolean | Include tickets currently being viewed |
includeworkflowstage | boolean | Include workflow stage details |
includeworkflowstagenumber | boolean | Include workflow stage number |
inlcludeopenchildcount | boolean | Include open child ticket count |
ismilestone | boolean | Filter milestone tickets |
isorion | boolean | Include Orion integration details |
isquicktimesearch | boolean | Return only quick time tickets |
isscom | boolean | Include SCOM integration details |
isteams | boolean | Return only Teams tickets |
iszapier | boolean | Return single ticket based on permissions |
itil_requesttype | string | (array of int) Filter by ITIL request type IDs |
itil_requesttype_id | integer | Filter by ITIL ticket type |
kanbanviewontheagentapp | boolean | Include agent app kanban view |
kanbanviewontheportal | boolean | Include portal kanban view |
lastupdatefromdate | boolean | Filter by last update from date |
lastupdatetodate | boolean | Filter by last update to date |
list_id | integer | Filter by list ID |
milestone_id | integer | Filter by milestone ID |
mine | boolean | Return only tickets belonging to the authenticated user |
open_only | boolean | Return only open tickets |
order | string | Field name to order by (primary) |
order2 | string | Field name to order by (secondary) |
order3 | string | Field name to order by (tertiary) |
order4 | string | Field name to order by (fourth) |
order5 | string | Field name to order by (fifth) |
orderdesc | boolean | Descending order on primary sort |
orderdesc2 | boolean | Descending order on secondary sort |
orderdesc3 | boolean | Descending order on tertiary sort |
orderdesc4 | boolean | Descending order on fourth sort |
orderdesc5 | boolean | Descending order on fifth sort |
orion_type | integer | Filter by Orion type |
page_no | integer | Page number for pagination |
page_size | integer | Page size for pagination (maximum: 100) |
pageinate | boolean | Enable pagination |
parent_id | integer | Filter by parent ticket ID |
pending_review | boolean | Filter on pending review |
per_action | boolean | Calculate billing per action |
priority | string | (array of int) Filter by priority IDs |
product | string | (array of int) Filter by product IDs |
project_ids | string | Filter by project IDs |
ready_for_invoicing | boolean | Filter ready-for-invoicing tickets |
related_id | integer | Filter by related ticket ID |
release_id | integer | Filter by release ID |
requesttype | string | (array of int) Filter by request type IDs |
requesttype_id | integer | Filter by single request type |
requesttypegroup | string | (array of int) Filter by request type group IDs |
search | string | General search string |
search_details | string | Search by ticket details field |
search_id | string | Search by ticket ID |
search_inventory_number | string | Search by asset tag |
search_oppcompanyname | string | Search by opportunity company name |
search_oppcontactname | string | Search by opportunity contact name |
search_oppemailaddress | string | Search by opportunity email address |
search_release1 | string | Search by release 1 |
search_release2 | string | Search by release 2 |
search_release3 | string | Search by release 3 |
search_releasenote | string | Search by release note |
search_reportedby | string | Search by reported-by field |
search_summary | string | Search by ticket summary |
search_supplier_reference | string | Search by supplier reference |
search_user_name | string | Search by user name |
search_version | string | Search by software version |
searchactions | boolean | Search actions when using search |
searchthisticketid | integer | Filter by specific ticket ID |
service_id | integer | Filter by service ID |
showonroadmap | string | (array of int) 1 = visible on roadmap, 0 = not visible |
third_party_id | integer | Filter by third party ID |
third_party_id_string | string | Filter by third party ID string |
site_id | integer | Filter by site ID |
sitepostcode | boolean | Include site postcode |
sla | string | (array of int) Filter by SLA IDs |
sprints | boolean | Return only sprint tickets |
startandendset | boolean | Filter tickets with project start and end date set |
startdate | string | Start date for use with datesearch |
startdatetime | boolean | Include project start date/time |
status | string | (array of int) Filter by Status IDs |
status_id | integer | Filter by single status ID |
submittedandagents | string | (array of int) Filter by agent and submitted agent IDs |
supplier_id | integer | Filter by supplier ID |
supplier_status | string | (array of int) Filter by supplier status IDs |
team | string | (array of int) Filter by Team IDs |
team_name | string | Include team name |
ticketarea_id | integer | Return tickets in this ticket area |
ticketcontract_id | integer | Filter by ticket contract ID |
ticketidonly | boolean | Return only ID fields (Ticket ID, SLA ID, Status ID, Client ID and Name, last incoming email date). Not compatible with pagination. |
ticketids | string | Return only specific ticket IDs |
toplevel_id | integer | Filter by top level ID |
unlinked_only | boolean | Return only unlinked tickets |
user_id | integer | Filter by user ID |
username | string | Filter by username |
utcoffset | number (double) | Add UTC offset to dates |
view_id | integer | Filter by filter profile ID |
withattachments | boolean | Return only tickets with 1+ attachments |
filetype_filter | string | Filter tickets containing an attachment with this file type |
Response: 200 OK — Faults_View schema
POST /Tickets
Summary: Create Ticket(s)
Description: Creates one or more Fault records.
Request Body: Array of Faults objects (JSON)
Response: 201 Created — Faults schema
GET /Tickets/{id}
Summary: Get one Fault
Description: Returns a single Fault record by ID.
Path Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
id | integer (int32) | Yes | Ticket ID |
Query Parameters:
| Parameter | Type | Description |
|---|---|---|
amailentryid | string | Mail entry ID |
assignedto | integer | Assigned agent ID |
consignablelines | boolean | Include consignable lines |
debug | boolean | Include debug information |
dodatabaselookup | boolean | Perform database lookup |
email | string | Email address |
include_auditing | boolean | Include audit log in response |
includeagent | boolean | Include agent details |
includechildids | boolean | Include child ticket IDs |
includedetails | boolean | Include extra nested objects |
includelastaction | boolean | Include last action |
includelastappointment | boolean | Include last appointment |
includelinkedobjects | boolean | Include linked objects |
includenextappointment | boolean | Include next appointment |
includeparentchangeinfo | boolean | Include parent change info |
includeparentsubject | boolean | Include parent subject |
includeseenby | boolean | Include seen-by details |
is_portal | boolean | Portal context flag |
isdetailscreen | boolean | Detail screen context flag |
ishalolink | boolean | Halo link context flag |
ispreview | boolean | Preview context flag |
isteams | boolean | Teams context flag |
nocache | boolean | Bypass cache |
subject | string | Subject override |
ticketidonly | boolean | Return only ID-related fields |
utcoffset | number (double) | UTC offset for dates |
Response: 200 OK — Faults schema
DELETE /Tickets/{id}
Summary: Delete one Fault
Description: Deletes a specific Fault record.
Path Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
id | integer (int32) | Yes | Ticket ID |
Query Parameters:
| Parameter | Type | Description |
|---|---|---|
reason | string | Reason for deletion |
Response: 200 OK
GET /Tickets/zapier
Summary: Zapier integration endpoint
Response: 200 OK
GET /Tickets/salesmailbox
Summary: Sales mailbox endpoint
Response: 200 OK
POST /Tickets/Object
Summary: Create/update ticket as single object
Request Body: Single Faults object (JSON)
Response: 200 OK
POST /Tickets/vote
Summary: Submit vote on tickets
Request Body: Array of Faults objects
Response: 200 OK
POST /Tickets/View
Summary: Batch view update
Request Body: Array of Faults objects
Response: 200 OK
POST /Tickets/processchildren
Summary: Process child tickets
Request Body: Array of Faults objects
Response: 200 OK
POST /Tickets/SetBillableProject
Summary: Set billable project flag
Response: 200 OK
FaultDraft
POST /Draft
Summary: Save ticket draft
Request Body: Array of FaultDraft objects
Request Schema — FaultDraft:
| Field | Type | Description |
|---|---|---|
id | integer | Draft ID |
tickettype_id | integer (nullable) | Ticket type ID |
service_id | integer (nullable) | Service ID |
json_content | any (nullable) | Draft content as JSON |
Response: 200 OK
FaultApproval
Manages approval workflows on tickets.
GET /TicketApproval
Summary: List FaultApproval records
Description: Returns multiple FaultApproval records.
Query Parameters:
| Parameter | Type | Description |
|---|---|---|
action_number | integer | Filter by action number |
include_agent_details | boolean | Include agent details |
include_attachments | boolean | Include attachments |
includeapprovaldetails | boolean | Include approval details |
mine | boolean | Return only own approvals |
ticket_id | integer | Filter by ticket ID |
Response: 200 OK
POST /TicketApproval
Summary: Create FaultApproval record(s)
Request Body: Array of FaultApproval objects
Request Schema — FaultApproval (key fields):
| Field | Type | Description |
|---|---|---|
ticket_id | integer | Associated ticket ID |
seq | integer | Approval sequence number |
result | integer (nullable) | Approval result |
emailaddress | string (nullable) | Approver email |
type | integer (nullable) | Approval type |
agent_id | integer (nullable) | Approving agent ID |
user_id | integer (nullable) | Approving user ID |
approver_note | string (nullable) | Note from approver |
summary | string (nullable) | Approval summary |
note | string (nullable) | Additional note |
startdate | date-time (nullable) | Approval start date |
targetdate | date-time (nullable) | Approval target date |
datetime | date-time (nullable) | Approval date/time |
approval_process_id | integer (nullable) | Approval process ID |
approval_process_name | string (nullable) | Approval process name |
approval_process_guid | uuid (nullable) | Approval process GUID |
is_mandatory | boolean (nullable) | Whether approval is mandatory |
votes_required_to_accept | integer (nullable) | Votes needed to accept |
votes_required_to_reject | integer (nullable) | Votes needed to reject |
customfields | array of CustomField (nullable) | Custom fields |
attachments | array of Attachment (nullable) | Approval attachments |
ticket_status | integer (nullable) | Resulting ticket status |
dateapproved | date-time (nullable) | Date approved |
step_id | integer (nullable) | Approval step ID |
step_name | string (nullable) | Approval step name |
token | string (nullable) | Approval token |
Response: 200 OK
GET /TicketApproval/{id}
Summary: Get one FaultApproval
Path Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
id | integer (int32) | Yes | Approval record ID |
Query Parameters:
| Parameter | Type | Description |
|---|---|---|
includedetails | boolean | Include nested details |
Response: 200 OK
DELETE /TicketApproval/{id}&{seq}
Summary: Delete FaultApproval
Path Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
id | integer (int32) | Yes | Approval record ID |
seq | integer (int32) | Yes | Approval sequence number |
Response: 200 OK
FaultForecasting
GET /FaultsForecasting/{id}
Summary: Get one FaultsForecasting
Description: Returns a single FaultsForecasting record.
Path Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
id | integer (int32) | Yes | Forecasting record ID |
Query Parameters:
| Parameter | Type | Description |
|---|---|---|
includedetails | boolean | Include nested details |
Response: 200 OK
POST /FaultsForecasting
Summary: Create FaultsForecasting record(s)
Request Body: Array of FaultsForecasting objects
Request Schema — FaultsForecasting:
| Field | Type | Description |
|---|---|---|
id | integer | Record ID |
agent_id | integer (nullable) | Agent ID |
ticket_id | integer (nullable) | Associated ticket ID |
date | date-time (nullable) | Forecast date |
hours | number/double (nullable) | Forecasted hours |
_warning | string (nullable) | Warning message |
Response: 200 OK
FaultToDo
GET /ToDo
Summary: List FaultToDo items
Query Parameters:
| Parameter | Type | Description |
|---|---|---|
ticket_id | integer | Filter by ticket ID |
Response: 200 OK
POST /ToDo
Summary: Create FaultToDo item(s)
Request Body: Array of FaultToDo objects
Request Schema — FaultToDo:
| Field | Type | Description |
|---|---|---|
id | integer | ToDo item ID |
ticket_id | integer (nullable) | Associated ticket ID |
done | boolean (nullable) | Completion status |
done_by_id | integer (nullable) | ID of user who completed it |
done_by_name | string (nullable) | Name of user who completed it |
text | string (nullable) | ToDo item text |
start_date | date-time (nullable) | Start date |
end_date | date-time (nullable) | End date |
actual_start | date-time (nullable) | Actual start date |
actual_end | date-time (nullable) | Actual end date |
sequence | integer (nullable) | Display sequence |
addedby | integer (nullable) | ID of user who added it |
group_id | integer (nullable) | ToDo group ID |
group_name | string (nullable) | ToDo group name |
group_seq | integer (nullable) | Group sequence |
Response: 200 OK
FaultsViewLog
GET /FaultViewLog
Summary: Get fault view log
Response: 200 OK
ConfirmClosure
Manages ticket closure confirmation workflows.
GET /ConfirmClosure
Summary: List ConfirmClosure records
Response: 200 OK
POST /ConfirmClosure
Summary: Create ConfirmClosure record(s)
Request Body: Array of ConfirmClosure objects
Response: 200 OK
GET /ConfirmClosure/{id}
Summary: Get one ConfirmClosure
Path Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
id | integer (int32) | Yes | Record ID |
Query Parameters:
| Parameter | Type | Description |
|---|---|---|
includedetails | boolean | Include nested details |
Response: 200 OK
DELETE /ConfirmClosure/{id}
Summary: Delete ConfirmClosure
Path Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
id | integer (int32) | Yes | Record ID |
Response: 200 OK