Skip to main content

HaloPSA REST API v2 — Swagger Spec

Live OpenAPI 3.0.1 spec for the HaloPSA REST API v2, served by our own instance. As of 2026-10-22 (Halo PSA 2.250.53): 961 paths, 1,507 operations (821 GET, 422 POST, 264 DELETE; no PUT or PATCH), 812 schemas. Use this as the authoritative field-level reference when the endpoint pages in this book don't carry enough detail. The spec, a generated endpoint map of every operation, and a separate map of the IntegrationData routes are attached to this page.

Corrected 2026-10-22 (Apis): this page first gave the production spec as dtc.halopsa.com. That is not our instance. Production is psa.dtctoday.com (see API Access).


Spec Location

Path
Live URL (production) https://psa.dtctoday.com/api/swagger/v2/swagger.json (no login needed; about 5 MB)
Swagger UI https://psa.dtctoday.com/api/swagger/index.html
Halo's API docs app https://psa.dtctoday.com/apidoc/
Dev instance https://dtcdev.halopsa.com/api/swagger/v2/swagger.json (it timed out on 2026-10-22; the root page answers)
Attached here halopsa-api-spec.zip (the production spec, downloaded 2026-10-22), endpoints.md (every operation by tag, with DTC live notes), endpoints-integrations.md (the 158 IntegrationData routes)
Repo snapshot docs/halo/swagger.json in dtc-inc/client-portal (committed on branch feature/deferred-revenue-modes, commit 87c4d3b; taken from dev in April)
AI skill copy the halopsa-api skill carries the same spec and maps: HaloPSA API Skill

The path is the same on any Halo instance; only the host changes.

Refreshing the Snapshot

Halo updates the instance on its own schedule, so the spec drifts. To refresh the attachments and the AI skill:

curl -sS https://psa.dtctoday.com/api/swagger/v2/swagger.json -o references/halopsa-api.json
python3 -I scripts/gen-reference.py references/halopsa-api.json references

Run from the halopsa-api skill folder, then re-attach the spec and both maps here. For the client-portal repo snapshot, write the same download to docs/halo/swagger.json and commit it. The file is about 5 MB; do not paste it into KB pages.

Deferred Revenue — GET /api/Control Fields

GET /api/Control returns the tenant-level Control object. The fields relevant to deferred-revenue and down-payment behaviour:

Field Type Notes
enable_deferred_revenue boolean Master DR toggle for the tenant
enable_downpayment_invoices boolean Down-payment invoice feature toggle
deferred_revenue_client integer Client ID used for DR accounting entries
deferred_revenue_code string Accounting code for DR entries
deferred_revenue_prepay_item_name string Item name used for prepay DR line items
downpayment_item integer Halo's configured down-payment line item ID (DTC dev: item 3)

These fields are not documented in the HaloPSA UI. The swagger spec is the only reliable source for them.