Clients & Sites Endpoints
Clients & Sites
This section covers the core organizational entities in HaloPSA: Clients (Areas), Sites, Companies (Suppliers), Organisations, and related resources like CRM Notes, Popup Notes, and Service Subscriptions.
Company (Supplier)
Represents supplier/company records. In the API, companies are accessed via the /Supplier path.
GET /Supplier — List Companies
Returns a list of Company records.
| Parameter | Type | Description |
|---|---|---|
activeinactive | string | Comma-separated pair to set includeactive and includeinactive |
count | integer | Number of results to return (non-paginated) |
idonly | boolean | Return only IDs |
includeactive | boolean | Include active companies |
includeinactive | boolean | Include inactive companies |
kashflowtenantid | integer | Filter by KashFlow tenant |
order | string | Field to order by (first) |
order2–order5 | string | Additional sort fields |
orderdesc–orderdesc5 | boolean | Descending sort for each order field |
page_no | integer | Page number (pagination) |
page_size | integer | Page size (pagination) |
pageinate | boolean | Enable pagination |
search | string | Search string filter |
toplevel_id | integer | Filter by top level |
xerotenantid | string | Filter by Xero tenant |
Response: Company_View — contains suppliers (array of Company_List), record_count, page_no, page_size, columns.
POST /Supplier — Create Company
Creates one or more Company records.
Request Body: Array of Company objects.
Response: Company (201 Created)
GET /Supplier/{id} — Get Company
Returns a single Company by ID.
| Parameter | Type | Description |
|---|---|---|
id | integer (path) | Company ID (required) |
includedetails | boolean | Include extra detail objects |
Response: Company
DELETE /Supplier/{id} — Delete Company
Deletes a Company by ID.
| Parameter | Type | Description |
|---|---|---|
id | integer (path) | Company ID (required) |
Organisation
Represents multi-tenancy organisation records used for branding and portal configuration.
GET /Organisation — List Organisations
Returns organisation records. No documented query parameters.
POST /Organisation — Create Organisation
Creates one or more Organisation records.
Request Body: Array of Organisation objects.
GET /Organisation/{id} — Get Organisation
Returns a single Organisation by ID.
| Parameter | Type | Description |
|---|---|---|
id | integer (path) | Organisation ID (required) |
includedetails | boolean | Include extra detail objects |
DELETE /Organisation/{id} — Delete Organisation
Deletes an Organisation by ID.
| Parameter | Type | Description |
|---|---|---|
id | integer (path) | Organisation ID (required) |
Organisation schema key fields:
| Field | Type | Description |
|---|---|---|
id | integer | Organisation ID |
name | string | Organisation name |
reply_address | string | Reply email address |
phone | string | Phone number |
email | string | Email address |
website | string | Website URL |
logo | string | Logo (base64/URL) |
portal_logo | string | Portal logo |
portalurl | string | Portal URL |
portalcolour | string | Portal brand colour |
portal_title | string | Portal page title |
departments | array | Linked departments |
linked_client_id | integer | Linked client ID |
allowall_tickettypes | boolean | Allow all ticket types |
allowed_tickettypes | array | Allowed ticket type list |
faqlists | array | Associated FAQ lists |
customfields | array | Custom fields |
bank_details_line_1–_5 | string | Bank detail lines |
tax_number | string | Tax/VAT number |
portal_allow_pwa | boolean | Allow PWA install |
Site
Represents physical or logical locations belonging to a client.
GET /Site — List Sites
Returns a list of Site records.
| Parameter | Type | Description |
|---|---|---|
activeinactive | string | Comma-separated pair for active/inactive filter |
advanced_search | string | Advanced search string |
azuresites | boolean | Include only Azure-linked sites |
client_id | integer | Filter by client ID |
contract_id | integer | Filter by contract ID |
count | integer | Number of results (non-paginated) |
exclude_internal | boolean | Exclude internal sites |
gfisites | boolean | Include only GFI sites |
idonly | boolean | Return only Site IDs (not compatible with pagination) |
includeactive | boolean | Include active sites |
includeaddress | boolean | Include address in response |
includeinactive | boolean | Include inactive sites |
includenonstocklocations | boolean | Include non-stock-location sites |
includenotes | boolean | Include site notes |
includestocklocations | boolean | Include stock location sites |
include_custom_fields | string | Comma-separated Custom Field IDs to include |
item_id_qty | integer | Include stock quantity info for this item ID |
item_salesorder_id | integer | Include stock info for this sales order |
item_salesorder_line | integer | Include stock info for this sales order line |
lastupdatefromdate | boolean | Include lastupdatefromdate field |
lastupdatetodate | boolean | Include lastupdatetodate field |
order–order5 | string | Sort fields (first through fifth) |
orderdesc–orderdesc5 | boolean | Descending sort for each order |
page_no | integer | Page number (pagination) |
page_size | integer | Page size (pagination) |
pageinate | boolean | Enable pagination |
search | string | Filter sites matching search string |
site_id | integer | Filter by specific site ID |
sitefields | string | Comma-separated site field IDs to include |
stocklocation | string | Filter on stock locations (comma-separated) |
toplevel_id | integer | Filter by top level |
user_override | integer | User ID override |
Response: Site_View
POST /Site — Create Site
Creates one or more Site records.
Request Body: Array of Site objects.
Response: Site (201 Created)
GET /Site/StockBins — List Stock Bin Sites
Returns sites that are configured as stock bin locations.
Response: Array of Site_List
GET /Site/{id} — Get Site
Returns a single Site by ID.
| Parameter | Type | Description |
|---|---|---|
id | integer (path) | Site ID (required) |
client_override | integer | Filter on a given client ID |
domain | string | Filter on site permissions domain (e.g. opps) |
includeactivity | boolean | Include site ticket activity |
includedetails | boolean | Include extra detail objects |
issetup | boolean | Setup mode flag |
tickettype_id | integer | Filter context by ticket type |
Response: Site
DELETE /Site/{id} — Delete Site
Deletes a Site by ID.
| Parameter | Type | Description |
|---|---|---|
id | integer (path) | Site ID (required) |
Site schema key fields:
| Field | Type | Description |
|---|---|---|
id | integer | Site ID |
name | string | Site name |
client_id | number | Parent client ID |
client_name | string | Parent client name |
clientsite_name | string | Combined client+site name |
inactive | boolean | Whether site is inactive |
sla_id | integer | Assigned SLA ID |
phonenumber | string | Site phone number |
timezone | string | Site timezone |
notes | string | Site notes |
isstocklocation | boolean | Whether site is a stock location |
isinvoicesite | boolean | Whether site is an invoice site |
emaildomain | string | Email domain for the site |
delivery_address | AddressStore | Delivery address object |
invoice_address | AddressStore | Invoice address object |
delivery_address_line1–_5 | string | Delivery address lines |
invoice_address_line1–_5 | string | Invoice address lines |
maincontact_id | integer | Main contact user ID |
maincontact_name | string | Main contact name |
datecreated | datetime | Site creation date |
open_ticket_count | integer | Count of open tickets |
onhold_ticket_count | integer | Count of on-hold tickets |
total_ticket_count | integer | Total ticket count |
opened_thismonth_count | integer | Tickets opened this month |
sitecontacts | array | Site contacts list |
customfields | array | Custom fields |
site_fields | array | Site-level fields |
geocoord1 / geocoord2 | number | Geographic coordinates |
itglue_id | string | IT Glue integration ID |
azuretenantid | string | Azure tenant ID |
datto_id | string | Datto integration ID |
auvik_id | string | Auvik integration ID |
connectwiseid | integer | ConnectWise integration ID |
autotaskid | integer | Autotask integration ID |
ncentral_details_id | integer | N-central integration ID |
popup_notes | array | Popup notes for the site |
faqlists | array | Associated FAQ lists |
maintenance_windows | array | Maintenance window periods |
change_freeze_periods | array | Change freeze periods |
language_id | integer | Language setting |
country_code | string | Country code |
region_code | integer | Region code |
default_currency_code | integer | Default currency |
ServSite (Service Subscriptions)
Represents service/product subscriptions assigned to sites. Accessed via the /Service path.
GET /Service — List Service Subscriptions
Returns service subscriptions (ServSite records).
| Parameter | Type | Description |
|---|---|---|
access_control_level | integer | Filter by access control level |
asset_ids | string | Filter by asset IDs |
count | integer | Result count (non-paginated) |
includechildservices | boolean | Include child services |
includestatusinfo | boolean | Include status information |
itil_ticket_type | integer | Filter by ITIL ticket type |
monitoredonly | boolean | Include only monitored services |
order–order5 | string | Sort fields |
orderdesc–orderdesc5 | boolean | Descending sort per field |
page_no | integer | Page number |
page_size | integer | Page size |
pageinate | boolean | Enable pagination |
parent_service_category_id | integer | Filter by parent category |
relatedservicesonly | boolean | Only related services |
search | string | Search filter |
service_category_id | integer | Filter by service category |
service_category_ids | string | Comma-separated category IDs |
service_status_ids | string | Comma-separated status IDs |
subscribedonly | boolean | Only subscribed services |
template_id | integer | Filter by template |
ticket_id | integer | Filter by ticket |
tickettype_id | integer | Filter by ticket type |
user_id | integer | Filter by user |
Response: ServSite_View
POST /Service — Create Service Subscription
Creates one or more ServSite records.
Request Body: Array of ServSite objects.
Response: ServSite (201 Created)
GET /Service/{id} — Get Service Subscription
Returns a single ServSite by ID.
| Parameter | Type | Description |
|---|---|---|
id | integer (path) | ServSite ID (required) |
includedetails | boolean | Include extra detail objects |
user_id | integer | User context |
Response: ServSite
DELETE /Service/{id} — Delete Service Subscription
Deletes a ServSite by ID.
| Parameter | Type | Description |
|---|---|---|
id | integer (path) | ServSite ID (required) |
POST /Service/unsubscribe — Unsubscribe from Service
Unsubscribes from a service.
Request Body: Array of UnsubscribeService objects.
UnsubscribeService schema:
| Field | Type | Description |
|---|---|---|
serviceid | integer | ID of service to unsubscribe from |
Area (Client)
The primary client record in HaloPSA. Accessed via the /Client path. Internally referred to as "Area".
GET /Client — List Clients
Returns a list of client (Area) records.
| Parameter | Type | Description |
|---|---|---|
accountmanageronly | boolean | Only clients where you are account manager |
activeinactive | string | Comma-separated active/inactive filter |
advanced_search | string | Advanced search string |
azureclients | boolean | Only Azure-linked clients |
callplan | boolean | Only clients with past call date |
columns_id | integer | Columns configuration ID |
count | integer | Result count (non-paginated) |
domain | string | Domain filter |
exclude_internal | boolean | Exclude internal clients |
gficlients | boolean | Only GFI clients |