For Agents
Manage HaloPSA tickets, clients, assets, contracts, and invoices for managed service providers using OAuth 2.0 Client Credentials.
Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the HaloPSA API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with HaloPSA API.
Open, fetch, and close support tickets in a HaloPSA tenant
Log time and actions against an existing ticket
Create and look up clients and their primary contacts
Track configuration items and assets associated with a client
GET STARTED
Use for: Open a new HaloPSA ticket for a customer outage, Find all open tickets for client 'Acme Corp', Log a 30-minute time entry against ticket #4421, Retrieve the asset record for a customer laptop
Not supported: Does not handle remote control, scripting, RMM agent installs, or live chat — use for HaloPSA records (tickets, clients, assets, contracts, invoices) only.
HaloPSA is a professional services automation platform for managed service providers and IT teams, covering ticketing, asset management, contracts, billing, and project tracking. The API exposes 35 endpoints for working with tickets, clients, agents, assets, contracts, invoices, and recurring jobs against a per-tenant subdomain. Authentication uses an OAuth 2.0 Client Credentials flow scoped per resource (read:tickets, edit:tickets, read:customers, and so on). The base URL includes a tenant-specific instance variable so each customer reaches their own HaloPSA cloud.
List active contracts and their billing terms for a client
Generate invoices and recurring billing jobs for support work
Look up the current authenticated agent or list all agents on the tenant
Patterns agents use HaloPSA API for, with concrete tasks.
★ MSP Helpdesk Automation
Automate first-line ticket creation by piping monitoring alerts into HaloPSA via POST /tickets and assigning the right agent based on client and asset. The HaloPSA API returns the created ticket with its ID so a downstream alert system can correlate the alert and ticket. This collapses a multi-step manual triage flow into a single API call per alert.
When an SNMP alert fires for client 'Acme Corp', call POST /tickets with summary 'Switch unreachable' and link the affected asset record.
Client Asset and Contract Reconciliation
Reconcile asset inventories and contract entitlements by listing /assets and /contracts for each client and matching them against an external CMDB. Each asset and contract is returned with a clientId so an integration can flag unmanaged devices or expired contracts. This is read-heavy and runs well on a nightly schedule.
List all assets for client ID 142 and contracts for the same client, then flag assets not covered by an active contract.
Billable Time Capture
Capture engineer time against tickets by posting to /actions with the ticketId, agent, duration, and a description, then issuing an invoice via the contract billing flow. HaloPSA tracks billable versus non-billable time per action, so reporting and invoicing stay consistent. Integrators typically pair this with a daily timesheet sync.
Log a 45-minute billable action against ticket 8821 for agent 'Sara' with note 'Replaced failed RAID disk' via POST /actions.
AI Agent Service Desk Copilot
Wire an MSP service desk copilot that reads open tickets via GET /tickets, summarises each customer's queue, and opens follow-ups via POST /tickets. Through Jentic the OAuth Client Credentials are stored centrally and refreshed automatically, so the agent only handles short-lived bearer tokens. The agent cannot run scripts or remote-access endpoints — those are out of scope for this API.
List open tickets for the on-call engineer, summarise priorities, and create a callback ticket for any customer waiting more than 4 hours.
35 endpoints — halopsa is a professional services automation platform for managed service providers and it teams, covering ticketing, asset management, contracts, billing, and project tracking.
METHOD
PATH
DESCRIPTION
/auth/token
Obtain an OAuth 2.0 access token
/tickets
List tickets
/tickets
Create a ticket
/tickets/{ticketId}
Get a ticket by ID
/actions
Log an action or time entry against a ticket
/clients
List clients
/assets
List managed assets
/contracts
List service contracts
/auth/token
Obtain an OAuth 2.0 access token
/tickets
List tickets
/tickets
Create a ticket
/tickets/{ticketId}
Get a ticket by ID
/actions
Log an action or time entry against a ticket
Three things that make agents converge on Jentic-routed access.
Credential isolation
HaloPSA client_id and client_secret are stored in the Jentic vault. Jentic performs the OAuth Client Credentials exchange at /auth/token per call and injects the short-lived bearer token, so raw secrets never enter the agent's prompt context.
Intent-based discovery
Agents search Jentic for intents like 'create a support ticket' and Jentic returns POST /tickets with its parameter schema, so agents do not need to crawl the HaloPSA Swagger docs.
Time to first call
Direct integration: 2-4 days to model auth, scopes, and error handling across 35 endpoints. Through Jentic: under an hour.
Alternatives and complements available in the Jentic catalogue.
Specific to using HaloPSA API through Jentic.
What authentication does the HaloPSA API use?
HaloPSA uses OAuth 2.0 Client Credentials. Exchange your client_id and client_secret at POST /auth/token to receive a bearer token, then send Authorization: Bearer <token> on subsequent calls. Tokens are scoped (read:tickets, edit:tickets, read:customers, etc.). Through Jentic, the client_id and client_secret are stored in the encrypted vault and short-lived tokens are minted per call.
Can I create tickets programmatically with the HaloPSA API?
Yes. POST /tickets accepts a JSON body with summary, details, client_id, and priority fields and returns the created ticket with its ticketId. You can then attach actions or time entries via POST /actions referencing the same ticketId.
What are the rate limits for the HaloPSA API?
HaloPSA does not document a public per-second rate limit; tenant-level fair-use throttling applies and HTTP 429 is returned when exceeded. Build clients to back off on 429 and avoid bursting more than a few requests per second per tenant.
How do I open a ticket in HaloPSA through Jentic?
Search Jentic for 'create a halopsa ticket', load the schema for POST /tickets, and execute with summary, client_id, and details. Jentic handles the OAuth client_credentials exchange against /auth/token automatically. Run pip install jentic and use the async client.search, client.load, and client.execute pattern.
Does the HaloPSA API expose remote control or scripting endpoints?
No. This OpenAPI spec covers PSA records — tickets, clients, agents, assets, contracts, invoices, and time. Remote support, scripting, and agent installer flows are not part of the REST surface and require HaloPSA's separate remote tooling.
/clients
List clients
/assets
List managed assets
/contracts
List service contracts