API endpoint reference

Last updated 6 August 2026

API endpoint reference

Every API-key-callable endpoint in the OpsMerge API, grouped by feature area. (Inbound vendor webhooks, browser-only redirects, and the login/signup/password flows your app authenticates through are excluded — they exist, but a bearer API key isn't the caller.) For authentication, API keys, scopes, rate limits, and request/response conventions, start with the API guide. For full request/response schemas and an in-browser test client, use the interactive docs.

Paths below are relative to the base URL https://app.opsmerge.cloud/api/v1. Stable and beta endpoints — the public API — authenticate with a bearer API key (see creating a key):

curl -H "Authorization: Bearer om_your_api_key_here" \
  https://app.opsmerge.cloud/api/v1/auth/me

Each endpoint carries a stability tier: stable endpoints are the public API proper (6 months' notice before breaking changes), endpoints are recent and may still change, and endpoints exist for the web UI — documented for transparency, but with zero compatibility guarantees. Build integrations on stable endpoints.

Internal endpoints don't necessarily take API keys: most use the web UI's session token, and some (login, signup, password reset, client-portal and public quote links) have their own authentication or none at all. The interactive docs show each endpoint's exact security scheme.

Auth

Authentication and session management

Full schemas and try-it →

EndpointTierWhat it does
GET /auth/device-sessionsList my device sessions
POST /auth/device-sessionsRegister a device session
POST /auth/device-sessions/exchangeExchange a device refresh token for a bearer token
DELETE /auth/device-sessions/{id}Revoke a device session
POST /auth/device-sessions/{id}/push-tokenRegister a mobile push token
DELETE /auth/device-sessions/{id}/push-tokenUnregister a mobile push token
GET /auth/push-preferencesGet my mobile push preferences
PUT /auth/push-preferencesUpdate my mobile push preferences
POST /push/testSend a test push notification to my devices

MFA

Multi-factor authentication (TOTP)

Full schemas and try-it →

EndpointTierWhat it does
POST /mfa/disableDisable MFA for the current user
POST /mfa/setupBegin TOTP MFA setup
GET /mfa/statusGet MFA status for the current user
POST /mfa/verify-setupVerify a TOTP code to complete MFA setup

SSO

OpenID Connect Single Sign-On

Full schemas and try-it →

EndpointTierWhat it does
GET /sso/providersList SSO providers (admin)
POST /sso/providersCreate an SSO provider
PUT /sso/providers/{id}Update an SSO provider
DELETE /sso/providers/{id}Delete an SSO provider

Users

User account management

Full schemas and try-it →

EndpointTierWhat it does
GET /usersstableList users in the current tenant
POST /usersstableCreate a new user
GET /users/{id}stableGet a user by ID
PUT /users/{id}stableUpdate a user
DELETE /users/{id}stableSoft-delete a user
POST /users/{id}/passwordstableChange a user's password

Roles

Role and permission management

Full schemas and try-it →

EndpointTierWhat it does
GET /permissionsstableList all available permission keys
GET /rolesstableList roles
POST /rolesstableCreate a role
GET /roles/{id}stableGet a role by ID
PUT /roles/{id}stableUpdate a role
DELETE /roles/{id}stableDelete a role

Organizations

Multi-tenant organization management (superuser only)

Full schemas and try-it →

EndpointTierWhat it does
GET /organizationsList all organizations (platform admin)
POST /organizationsCreate an organization (platform admin)
GET /organizations/{id}Get an organization by ID (platform admin)
PUT /organizations/{id}Update an organization (platform admin)

Clients

Client management within an organization

Full schemas and try-it →

EndpointTierWhat it does
GET /clientsstableList clients
POST /clientsstableCreate a client
GET /clients/{id}stableGet a client by ID
PUT /clients/{id}stableUpdate a client
DELETE /clients/{id}stableDelete a client
PUT /clients/{id}/alert-templatestableAssign or clear the client's alert template
GET /clients/{id}/usagestableGet reference counts for a client

Sites

Site management within clients

Full schemas and try-it →

EndpointTierWhat it does
GET /clients/{clientID}/sitesstableList sites under a client
POST /clients/{clientID}/sitesstableCreate a site under a client
GET /sitesstableList all sites across all clients
GET /sites/{id}stableGet a site by ID
PUT /sites/{id}stableUpdate a site
DELETE /sites/{id}stableDelete a site
PUT /sites/{id}/alert-templatestableAssign or clear the site's alert template
POST /sites/{id}/tokenstableGenerate a registration token for this site

Agents

Agent lifecycle, status, commands, and bulk operations

Full schemas and try-it →

EndpointTierWhat it does
GET /agentsstableList agents
POST /agents/bulkstableExecute a bulk operation on multiple agents
POST /agents/bulk/rotate-nats-credsRotate NATS credentials for every agent in the tenant
POST /agents/moveMove agents to another site (bulk)
POST /agents/registerstableRegister a new agent (called by the agent binary)
GET /agents/{agentID}/forecastsGet capacity forecasts for an agent
GET /agents/{agentID}/historyGet unified activity history for an agent
POST /agents/{agentID}/log-levelSet the agent's log level (optionally time-boxed)
PUT /agents/{agentID}/primary-contactSet or clear the agent's primary contact
GET /agents/{agentID}/recent-usersList contacts recently seen logged in on the agent
GET /agents/{id}stableGet agent details
PUT /agents/{id}stableUpdate agent metadata
DELETE /agents/{id}stableDelete an agent
POST /agents/{id}/cmdstableExecute a shell command on an agent
GET /agents/{id}/live-metricGet a live metric snapshot from the agent
POST /agents/{id}/maintenancestableToggle agent maintenance mode
POST /agents/{id}/rebootstableReboot an agent
POST /agents/{id}/rotate-nats-credsRotate one agent's NATS credentials

Checks

Health check management and results

Full schemas and try-it →

EndpointTierWhat it does
GET /agents/{agentID}/checksstableList checks for an agent
POST /agents/{agentID}/checksstableCreate a check on an agent
GET /checksstableList checks across all agents
GET /checks/summarystableGet check status summary across all agents
GET /checks/{id}stableGet check details
PUT /checks/{id}stableUpdate a check
DELETE /checks/{id}stableDelete a check
GET /checks/{id}/resultsstableGet check result history
POST /checks/{id}/runstableRun a check immediately

Tasks

Automated task scheduling and results

Full schemas and try-it →

EndpointTierWhat it does
GET /agents/{agentID}/tasksstableList tasks for an agent
POST /agents/{agentID}/tasksstableCreate a task on an agent
GET /tasksstableList tasks across all agents
POST /tasksstableCreate a task (agent or smart-group target)
GET /tasks/summarystableGet task status summary across all agents
GET /tasks/{id}stableGet task details
PUT /tasks/{id}stableUpdate a task
DELETE /tasks/{id}stableDelete a task
GET /tasks/{id}/resultsstableGet task execution history
POST /tasks/{id}/runstableRun a task immediately

Scripts

Script library, execution, and streaming

Full schemas and try-it →

EndpointTierWhat it does
POST /agents/{agentID}/runscriptstableRun a script on a specific agent
GET /agents/{agentID}/script-historystableGet script run history for an agent
GET /script-batchesstableList script batch runs
GET /script-batches/{batchID}stableGet batch detail with per-agent jobs
DELETE /script-batches/{batchID}stableCancel a batch
DELETE /script-batches/{batchID}/jobs/{jobID}stableCancel a single batch job
GET /script-categoriesstableList script categories
POST /script-categoriesstableCreate a script category
PUT /script-categories/{id}stableUpdate a script category
DELETE /script-categories/{id}stableDelete a script category
GET /script-runs/{executionID}/statusstablePoll async script run status
GET /script-runs/{executionID}/streamstableStream script output via SSE
GET /scriptsstableList scripts
POST /scriptsstableCreate a script
GET /scripts/{id}stableGet a script by ID
PUT /scripts/{id}stableUpdate a script
DELETE /scripts/{id}stableDelete a script
POST /scripts/{scriptID}/dispatchstableDispatch a script to multiple agents as a durable batch
GET /scripts/{scriptID}/historystableGet execution history for a script
POST /scripts/{scriptID}/runstableBulk-run a script on multiple agents

Policies

Policy engine — check/task templates with hierarchy cascade

Full schemas and try-it →

EndpointTierWhat it does
GET /agents/{agentID}/effective-policyThe policy currently in effect for an agent
PUT /agents/{agentID}/policystableAssign a direct policy to an agent
PUT /clients/{clientID}/policystableAssign policies to a client
GET /organization/policystableGet the organisation default policy assignments
PUT /organization/policystableAssign the organisation default policies
GET /policiesstableList policies
POST /policiesstableCreate a policy
GET /policies/{id}stableGet policy details
PUT /policies/{id}stableUpdate a policy
DELETE /policies/{id}stableDelete a policy
GET /policies/{id}/app-settingsGet a policy's App Management schedule/settings
PUT /policies/{id}/app-settingsUpdate a policy's App Management schedule/settings
GET /policies/{id}/appsList desired-state apps on a policy
POST /policies/{id}/appsAdd a desired-state app to a policy
POST /policies/{id}/apps/batchAdd multiple desired-state apps to a policy at once
GET /policies/{id}/checksstableList check templates in a policy
POST /policies/{id}/checksstableAdd a check template to a policy
POST /policies/{id}/duplicatestableDuplicate a policy
GET /policies/{id}/groupsSmart groups that apply this policy
GET /policies/{id}/scriptsstableList scheduled-script bindings on a policy
POST /policies/{id}/scriptsstableSchedule a script on a policy
PUT /policies/{id}/scripts/{binding_id}stableUpdate a scheduled-script binding
DELETE /policies/{id}/scripts/{binding_id}stableRemove a scheduled-script binding
POST /policies/{id}/scripts/{binding_id}/run-nowstableRun a scheduled script immediately
GET /policies/{id}/tasksstableList task templates in a policy
POST /policies/{id}/tasksstableAdd a task template to a policy
PUT /policies/{policyID}/apps/{appID}Update a desired-state app on a policy
DELETE /policies/{policyID}/apps/{appID}Remove a desired-state app from a policy
PUT /policies/{policyID}/checks/{checkID}stableUpdate a policy check template
DELETE /policies/{policyID}/checks/{checkID}stableRemove a check template from a policy
PUT /policies/{policyID}/tasks/{taskID}stableUpdate a policy task template
DELETE /policies/{policyID}/tasks/{taskID}stableRemove a task template from a policy
PUT /sites/{siteID}/policystableAssign policies to a site

Alerts

Alert management and alert templates

Full schemas and try-it →

EndpointTierWhat it does
GET /alert-templatesstableList alert templates
POST /alert-templatesstableCreate an alert template
GET /alert-templates/{id}stableGet an alert template
PUT /alert-templates/{id}stableUpdate an alert template
DELETE /alert-templates/{id}stableDelete an alert template
POST /alert-templates/{id}/teststableSend a test notification through one channel of an alert template
GET /alertsstableList alerts
GET /alerts/summarystableGet alert count summary
GET /alerts/{id}stableGet alert details
DELETE /alerts/{id}stableDelete an alert
PUT /alerts/{id}/acknowledgestableAcknowledge an alert
PUT /alerts/{id}/resolvestableResolve an alert
PUT /alerts/{id}/snoozestableSnooze an alert

Notifications

SMTP, webhook, and notification settings

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/notificationsList curated PSA notifications
GET /psa/notifications/{system_key}Get one curated notification
PUT /psa/notifications/{system_key}Update a curated notification
GET /settings/notificationsGet notification settings (SMTP, Twilio, Slack, Teams, Discord)
PUT /settings/notificationsUpdate channel webhook defaults (Slack, Teams, Discord)
POST /settings/notifications/test/discordSend a test notification to the default Discord webhook
POST /settings/notifications/test/slackSend a test notification to the default Slack webhook
POST /settings/notifications/test/teamsSend a test notification to the default Teams webhook
GET /settings/smtpGet SMTP configuration
PUT /settings/smtpUpdate SMTP configuration
POST /settings/smtp/testSend a test email via SMTP

Reports

Report templates, data queries, generation, and scheduling

Full schemas and try-it →

EndpointTierWhat it does
GET /report-historyList report generation history
GET /report-history/{id}Get one report history entry (with rendered HTML)
DELETE /report-history/{id}Delete a report history entry
GET /report-history/{id}/downloadDownload a generated report
GET /report-queriesList report data queries
POST /report-queriesCreate a report data query
GET /report-queries/modelsList queryable models and operators
POST /report-queries/testTest an unsaved (draft) data query
GET /report-queries/{id}Get a report data query
PUT /report-queries/{id}Update a report data query
DELETE /report-queries/{id}Delete a report data query
POST /report-queries/{id}/duplicateDuplicate a saved data query
POST /report-queries/{id}/testTest a saved data query and return sample results
GET /report-schedulesList report schedules
POST /report-schedulesCreate a report schedule
GET /report-schedules/{id}Get a report schedule
PUT /report-schedules/{id}Update a report schedule
DELETE /report-schedules/{id}Delete a report schedule
POST /report-schedules/{id}/run-nowRun a report schedule immediately
POST /report-schedules/{id}/test-sendSend a test report to one address
GET /report-templatesList report templates
POST /report-templatesCreate a report template
POST /report-templates/importImport a report template from an export envelope
GET /report-templates/{id}Get a report template
PUT /report-templates/{id}Update a report template
DELETE /report-templates/{id}Delete a report template
POST /report-templates/{id}/duplicateDuplicate a report template
GET /report-templates/{id}/exportExport a report template as JSON
POST /report-templates/{id}/previewPreview a rendered report template
POST /report-templates/{id}/preview-dataPreview a template with live query data
POST /reports/{templateID}/generateGenerate a report from a template

Files

Remote file browser (browse, download, upload)

Full schemas and try-it →

EndpointTierWhat it does
GET /agents/{agentID}/filesBrowse files on an agent
DELETE /agents/{agentID}/filesDelete a file or directory on an agent
POST /agents/{agentID}/files/copyCopy a file on an agent
POST /agents/{agentID}/files/downloadDownload a file from an agent
POST /agents/{agentID}/files/mkdirCreate a directory on an agent
POST /agents/{agentID}/files/moveMove a file on an agent
POST /agents/{agentID}/files/uploadUpload a file to an agent

Software

Software inventory

Full schemas and try-it →

EndpointTierWhat it does
GET /agents/{agentID}/softwareList installed software on an agent
POST /agents/{agentID}/software/scanRun a software inventory scan on an agent
POST /inventory/refresh-allRefresh software + app inventory on all online agents
GET /softwareList software across all agents (organization-wide)

CodeSigning

Agent binary signing and Authenticode certificates

Full schemas and try-it →

EndpointTierWhat it does
GET /platform/authenticodeGet platform Authenticode certificate status
GET /settings/signing-keyGet signing key status (public key only)
POST /settings/signing-keyGenerate an Ed25519 signing key pair

Distribution

Agent version management, updates, and installer generation

Full schemas and try-it →

EndpointTierWhat it does
GET /agent-versionsList uploaded agent versions
POST /agent-versions/uploadUpload a signed agent binary
DELETE /agent-versions/{id}Delete an agent version
GET /agent-versions/{id}/downloadDownload an agent binary (authenticated)
POST /agents/installerGenerate a platform-specific installer script
POST /agents/updateTrigger a fleet-wide agent update (staged rollout)
GET /agents/update-historyGet agent update history
GET /agents/update-statusGet agent version distribution

Security

Security settings, lockout management

Full schemas and try-it →

EndpointTierWhat it does
GET /settings/locked-accountsList locked accounts
POST /settings/locked-accounts/{username}/unlockUnlock a locked account
GET /settings/securityGet security settings
PUT /settings/securityUpdate security settings

CustomFields

Custom field definitions and values

Full schemas and try-it →

EndpointTierWhat it does
GET /agents/{id}/custom-fieldsGet custom field values for an agent
PUT /agents/{id}/custom-fieldsSet custom field values for an agent
GET /clients/{id}/custom-fieldsGet custom field values for a client
PUT /clients/{id}/custom-fieldsSet custom field values for a client
GET /custom-fieldsList custom field definitions
POST /custom-fieldsCreate a custom field definition
PUT /custom-fields/{id}Update a custom field definition
DELETE /custom-fields/{id}Delete a custom field definition
GET /sites/{id}/custom-fieldsGet custom field values for a site
PUT /sites/{id}/custom-fieldsSet custom field values for a site

Notes

Agent notes

Full schemas and try-it →

EndpointTierWhat it does
GET /agents/{id}/notesList notes for an agent
POST /agents/{id}/notesAdd a note to an agent
PUT /agents/{id}/notes/{noteID}Update an agent note
DELETE /agents/{id}/notes/{noteID}Delete an agent note

Audit

Audit log

Full schemas and try-it →

EndpointTierWhat it does
GET /audit-logsList audit logs for the current tenant
GET /audit-logs/exportExport audit logs (CSV or JSON)

Tickets

PSA tickets, comments, attachments, watchers and triage

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/ticketsstableList tickets
POST /psa/ticketsstableCreate a ticket
GET /psa/tickets/for-agent/{agentId}stableList tickets linked to an agent
GET /psa/tickets/statsstableTicket stats for the dashboard
GET /psa/tickets/streamstableStream ticket lifecycle events (SSE)
GET /psa/tickets/{id}stableGet a ticket with comments and attachments
PATCH /psa/tickets/{id}stablePartially update a ticket
DELETE /psa/tickets/{id}stableDelete a ticket
GET /psa/tickets/{id}/activitystableGet ticket activity (audit trail)
POST /psa/tickets/{id}/archivestableArchive a ticket
GET /psa/tickets/{id}/attachmentsstableList ticket attachments
POST /psa/tickets/{id}/attachmentsstableUpload a ticket attachment
GET /psa/tickets/{id}/attachments/{aid}/downloadstableDownload a ticket attachment
GET /psa/tickets/{id}/commentsstableList ticket comments
POST /psa/tickets/{id}/commentsstableAdd a ticket comment
GET /psa/tickets/{id}/linksstableList linked entities for a ticket
POST /psa/tickets/{id}/linksstableLink an agent (asset) to a ticket
DELETE /psa/tickets/{id}/links/{linkId}stableRemove a related-entity link from a ticket
POST /psa/tickets/{id}/mergestableMerge a ticket into another
GET /psa/tickets/{id}/participantsstableList ticket participants
POST /psa/tickets/{id}/participantsstableAdd a ticket participant (CC)
DELETE /psa/tickets/{id}/participantsstableRemove a ticket participant
POST /psa/tickets/{id}/transitionstableTransition ticket status
POST /psa/tickets/{id}/triage/assignstableAssign a triage-queue ticket to a client
POST /psa/tickets/{id}/triage/spamstableMark a triage-queue ticket as spam
POST /psa/tickets/{id}/unarchivestableUnarchive a ticket
GET /psa/tickets/{id}/watchersstableList ticket watchers
POST /psa/tickets/{id}/watchersstableAdd a ticket watcher
DELETE /psa/tickets/{id}/watchers/{user_id}stableRemove a ticket watcher

Ticket Templates

Reusable ticket templates

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/ticket_templatesList ticket templates
POST /psa/ticket_templatesCreate a ticket template
PATCH /psa/ticket_templates/{id}Update a ticket template
DELETE /psa/ticket_templates/{id}Delete a ticket template

Canned Responses

Reusable reply snippets for ticket comments

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/canned_responsesList canned responses
POST /psa/canned_responsesCreate a canned response
PATCH /psa/canned_responses/{id}Update a canned response
DELETE /psa/canned_responses/{id}Delete a canned response
POST /psa/canned_responses/{id}/previewPreview a rendered canned response

Saved Filters

Per-user saved list filters

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/saved_filtersList saved filters
POST /psa/saved_filtersCreate a saved filter
PATCH /psa/saved_filters/{id}Update a saved filter
DELETE /psa/saved_filters/{id}Delete a saved filter

Contacts

Client contacts and portal linking

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/contactsstableList contacts
POST /psa/contactsstableCreate a contact
POST /psa/contacts/mergestableMerge two contacts
GET /psa/contacts/{id}stableGet a contact by ID
PATCH /psa/contacts/{id}stablePartially update a contact
DELETE /psa/contacts/{id}stableDelete a contact
GET /psa/contacts/{id}/mailbox-statsstableGet mailbox storage stats for a contact
POST /psa/contacts/{id}/portal-linkstableLink a contact to a client-portal account
DELETE /psa/contacts/{id}/portal-linkstableUnlink a contact's client-portal account
POST /psa/contacts/{id}/portal-passwordstableSet a contact's client-portal password
GET /psa/contacts/{id}/ticketsstableList tickets raised by a contact

Billing Services

PSA service catalogue and categories

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/billing/service-categoriesstableList service categories
POST /psa/billing/service-categoriesstableCreate a service category
GET /psa/billing/servicesstableList services in the catalogue
POST /psa/billing/servicesstableCreate a service
GET /psa/billing/services/{id}stableGet a service by ID
PUT /psa/billing/services/{id}stableUpdate a service
DELETE /psa/billing/services/{id}stableDelete a service
GET /psa/billing/services/{id}/usagestableGet service reference counts

Contracts

PSA contracts, lines, billing cycles and asset category mapping

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/billing/asset-assignmentsstableList asset billing assignments
POST /psa/billing/asset-assignments/bulkstableBulk-assign a billing category
PATCH /psa/billing/asset-assignments/{asset_id}stableUpdate one asset's billing assignment
GET /psa/billing/categoriesstableList billing categories
POST /psa/billing/categoriesstableCreate a custom billing category
PATCH /psa/billing/categories/{id}stableUpdate a custom billing category
DELETE /psa/billing/categories/{id}stableDelete a custom billing category
GET /psa/billing/category-defaultsstableList asset-type category defaults
PATCH /psa/billing/category-defaults/{asset_type}stableSet the default category for an asset type
GET /psa/billing/contractsstableList contracts
POST /psa/billing/contractsstableCreate a contract
GET /psa/billing/contracts/{id}stableGet a contract with its lines
PUT /psa/billing/contracts/{id}stableUpdate a contract
GET /psa/billing/contracts/{id}/billing-cyclestableGet the contract's open billing cycle
PUT /psa/billing/contracts/{id}/billing-cyclestableUpdate the contract's billing cycle anchor
GET /psa/billing/contracts/{id}/forecaststableForecast the next invoice (dry run)
POST /psa/billing/contracts/{id}/generate-invoicestableGenerate an invoice from the contract now
GET /psa/billing/contracts/{id}/invoice-recipientsstablePreview invoice email recipients for a contract
POST /psa/billing/contracts/{id}/linesstableAdd a line to a contract
PUT /psa/billing/contracts/{id}/lines/{lineId}stableUpdate a contract line
DELETE /psa/billing/contracts/{id}/lines/{lineId}stableRemove a contract line
PATCH /psa/billing/contracts/{id}/lines/{lineId}/pax8stableUpdate Pax8 settings on a Pax8-mapped line

Invoices

PSA invoices, items, issue/void lifecycle and PDFs

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/billing/invoicesstableList invoices
POST /psa/billing/invoicesstableCreate a draft invoice
POST /psa/billing/invoices/bulk-issuestableBulk-issue draft invoices
GET /psa/billing/invoices/bulk-issue/batches/{batchID}stablePoll an async bulk-issue batch
POST /psa/billing/invoices/bulk-sendstableBulk-send invoices by email
GET /psa/billing/invoices/bulk-send/batches/{batchID}stablePoll an async bulk-send batch
GET /psa/billing/invoices/{id}stableGet invoice detail
PATCH /psa/billing/invoices/{id}stableUpdate invoice metadata (drafts only)
POST /psa/billing/invoices/{id}/freeagent-pushRe-enqueue the FreeAgent push
POST /psa/billing/invoices/{id}/issuestableIssue a draft invoice
POST /psa/billing/invoices/{id}/itemsstableAdd a line to a draft invoice
PATCH /psa/billing/invoices/{id}/items/{itemId}stableUpdate a draft invoice line
DELETE /psa/billing/invoices/{id}/items/{itemId}stableDelete a draft invoice line
GET /psa/billing/invoices/{id}/pdfstableDownload the invoice PDF
POST /psa/billing/invoices/{id}/pdf/regeneratestableRegenerate the invoice PDF archive
POST /psa/billing/invoices/{id}/qbo-pushRe-enqueue the QuickBooks Online push
POST /psa/billing/invoices/{id}/sendstableRe-send the invoice-issued email (PDF attached)
POST /psa/billing/invoices/{id}/voidstableVoid an invoice
GET /psa/billing/runBilling run review (drafts grouped by client)

Billing Settings

Tenant billing configuration, VAT, branding and lookups

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/billing/companies-house/lookupLook up a company by number
GET /psa/billing/companies-house/searchSearch Companies House
GET /psa/billing/email-templatesList client-facing billing email templates
PUT /psa/billing/email-templates/{type}Update one email type's wording overrides
GET /psa/billing/invoice-brandingGet invoice branding settings
PATCH /psa/billing/invoice-brandingUpdate invoice branding settings
POST /psa/billing/invoice-branding/logoUpload the invoice logo
DELETE /psa/billing/invoice-branding/logoRemove the invoice logo
GET /psa/billing/invoice-branding/previewPreview a sample invoice PDF
GET /psa/billing/invoice-numberGet the next invoice number
PUT /psa/billing/invoice-numberSet the next invoice number (forward-only)
GET /psa/billing/settingsGet invoicing defaults
PUT /psa/billing/settingsSave invoicing defaults
GET /psa/billing/tax-ratesstableList tax rates
POST /psa/billing/tax-ratesstableCreate a tax rate
GET /psa/billing/vat-settingsGet VAT settings
PATCH /psa/billing/vat-settingsUpdate VAT settings

Time Tracking

Time entries, timers and timesheet workflow

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/time/entriesstableList time entries
POST /psa/time/entriesstableCreate a time entry
GET /psa/time/entries/{id}stableGet a time entry by ID
PATCH /psa/time/entries/{id}stableUpdate a time entry
DELETE /psa/time/entries/{id}stableDelete a time entry
GET /psa/time/settingsstableGet time tracking settings
PUT /psa/time/settingsstableUpdate time tracking settings
PUT /psa/time/settings/default-servicestableSet or clear the default T&M service
POST /psa/time/settings/reconcile-unassignedstableAssign the default service to unassigned billable entries
GET /psa/time/settings/servicesstableList active services for the default-service picker
GET /psa/time/settings/unassigned-billablestableCount billable time entries with no service
GET /psa/time/timer-prefsstableGet the caller's timer preferences
PUT /psa/time/timer-prefsstableUpdate the caller's timer preferences
GET /psa/time/timersstableList the caller's live timers
POST /psa/time/timersstableStart a new timer
PATCH /psa/time/timers/{id}stableUpdate a timer's notes, label, or ticket
DELETE /psa/time/timers/{id}stableDiscard a timer without logging time
POST /psa/time/timers/{id}/pausestablePause a running timer
POST /psa/time/timers/{id}/resumestableResume a paused timer
POST /psa/time/timers/{id}/stopstableStop a timer and commit it as a time entry
GET /psa/time/timesheetsstableList timesheets
GET /psa/time/timesheets/{id}stableGet a timesheet with its time entries
POST /psa/time/timesheets/{id}/approvestableApprove a submitted timesheet
POST /psa/time/timesheets/{id}/rejectstableReject a submitted timesheet
POST /psa/time/timesheets/{id}/reopenstableReopen a rejected timesheet
POST /psa/time/timesheets/{id}/submitstableSubmit a timesheet for approval

Knowledge Base

Internal KB articles, versions and categories

Full schemas and try-it →

EndpointTierWhat it does
POST /kb/ai/generateGenerate a draft KB article with AI
GET /kb/articlesstableList or search knowledge base articles
POST /kb/articlesstableCreate a knowledge base article
POST /kb/articles/backfill-embeddingsBackfill semantic-search embeddings
GET /kb/articles/by-slug/{slug}stableGet a knowledge base article by slug
GET /kb/articles/{id}stableGet a knowledge base article
PUT /kb/articles/{id}stableUpdate a knowledge base article
DELETE /kb/articles/{id}stableDelete a knowledge base article
POST /kb/articles/{id}/restore/{version}stableRestore a prior version of a knowledge base article
GET /kb/articles/{id}/versionsstableList versions of a knowledge base article
GET /kb/categoriesstableList knowledge base categories
POST /kb/categoriesstableCreate a knowledge base category
PUT /kb/categories/{id}stableUpdate a knowledge base category
DELETE /kb/categories/{id}stableDelete a knowledge base category
POST /kb/imagesUpload an image for use in KB article bodies
GET /psa/ai/tickets/{ticket_id}/kb-suggestionsSuggest related KB articles for a ticket

Documents

Document storage, uploads and associations

Full schemas and try-it →

EndpointTierWhat it does
GET /documentsstableList documents
POST /documents/articlesstableCreate a rich-text document article
GET /documents/articles/{id}stableGet a rich-text document article
PUT /documents/articles/{id}stableUpdate a rich-text document article
POST /documents/confirm-uploadstableConfirm a completed upload
POST /documents/presign-inline-imagestableRequest a presigned upload URL for an inline image
POST /documents/presigned-uploadstableRequest a presigned upload URL
GET /documents/quotastableGet document storage quota usage
DELETE /documents/{id}stableDelete a document
PUT /documents/{id}/associationsstableReplace a document's associations
GET /documents/{id}/downloadstableGet a download URL for a document
GET /documents/{id}/rawstableRedirect to the raw document content

Domain Monitoring

SSL/DNS/WHOIS/HTTP domain monitors

Full schemas and try-it →

EndpointTierWhat it does
GET /domain-monitorsstableList domain monitors
POST /domain-monitorsstableCreate a domain monitor
GET /domain-monitors/{id}stableGet a domain monitor
PUT /domain-monitors/{id}stableUpdate a domain monitor
DELETE /domain-monitors/{id}stableDelete a domain monitor
GET /domain-monitors/{id}/historystableList check result history
PUT /domain-monitors/{id}/pausestablePause or resume a domain monitor
POST /domain-monitors/{id}/refreshstableTrigger an immediate check run

Agent Enrolment

Registration token lifecycle and installer downloads

Full schemas and try-it →

EndpointTierWhat it does
GET /installers/stub-downloadDownload the single-EXE installer stub (public, token-authorised)
PATCH /registration-tokens/{id}Extend (or shorten) a registration token's expiry
DELETE /registration-tokens/{id}Revoke a registration token
GET /sites/{id}/tokensList registration tokens for a site

Quotes

PSA quotes, sections, items and lifecycle

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/quote-settingsGet org-level quote settings
PATCH /psa/quote-settingsUpdate org-level quote settings
GET /psa/quotesList quotes
POST /psa/quotesCreate a draft quote
GET /psa/quotes/{id}Get a quote with sections, items and signature
PATCH /psa/quotes/{id}Update a quote header
DELETE /psa/quotes/{id}Delete a draft quote
GET /psa/quotes/{id}/auditList the audit trail for a quote
POST /psa/quotes/{id}/clear-needs-infoClear the needs_info flag on a quote
POST /psa/quotes/{id}/finaliseFinalise a signed quote (invoice and/or contract)
POST /psa/quotes/{id}/itemsAdd a line item to a quote
PATCH /psa/quotes/{id}/items/{item_id}Update a quote line item
DELETE /psa/quotes/{id}/items/{item_id}Delete a quote line item
POST /psa/quotes/{id}/manual-acceptManually mark a quote accepted
POST /psa/quotes/{id}/manual-declineManually mark a quote declined
GET /psa/quotes/{id}/messagesList the reply thread for a quote
POST /psa/quotes/{id}/messagesSend a reply on the quote thread
GET /psa/quotes/{id}/pdfDownload the quote PDF
POST /psa/quotes/{id}/reviseCreate a new revision of a quote
POST /psa/quotes/{id}/sectionsAdd a section to a quote
PATCH /psa/quotes/{id}/sections/{section_id}Update a quote section
DELETE /psa/quotes/{id}/sections/{section_id}Delete a quote section
POST /psa/quotes/{id}/sendSend (or resend) a quote to the customer
POST /psa/quotes/{id}/withdrawWithdraw a quote

Quote Templates

Reusable quote templates and instantiation

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/quote-templatesList quote templates
POST /psa/quote-templatesCreate a quote template
GET /psa/quote-templates/{id}Get a quote template with sections and items
PATCH /psa/quote-templates/{id}Update a quote template
DELETE /psa/quote-templates/{id}Delete a quote template
POST /psa/quote-templates/{id}/instantiateInstantiate a template into a new draft quote
POST /psa/quote-templates/{id}/itemsAdd an item to a quote template
PATCH /psa/quote-templates/{id}/items/{item_id}Update a quote template item
DELETE /psa/quote-templates/{id}/items/{item_id}Delete a quote template item
POST /psa/quote-templates/{id}/sectionsAdd a section to a quote template
PATCH /psa/quote-templates/{id}/sections/{section_id}Update a quote template section
DELETE /psa/quote-templates/{id}/sections/{section_id}Delete a quote template section

Quote Approval

Quote approval chains and decisions

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/quote-approval-chainsList quote approval chains
POST /psa/quote-approval-chainsCreate a quote approval chain
GET /psa/quote-approval-chains/{id}Get an approval chain with its steps
PATCH /psa/quote-approval-chains/{id}Update an approval chain
DELETE /psa/quote-approval-chains/{id}Delete an approval chain
POST /psa/quote-approval-chains/{id}/stepsAdd a step to an approval chain
PATCH /psa/quote-approval-chains/{id}/steps/{step_id}Update an approval chain step
DELETE /psa/quote-approval-chains/{id}/steps/{step_id}Delete an approval chain step
GET /psa/quotes/{id}/approval-stepsList the per-quote approval run state
POST /psa/quotes/{id}/approveApprove a quote awaiting approval
POST /psa/quotes/{id}/rejectReject a quote awaiting approval
POST /psa/quotes/{id}/submit-for-approvalSubmit a draft quote for approval

Projects

PSA projects, phases, milestones, risks and approvals

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/projectsList projects
POST /psa/projectsCreate a project
POST /psa/projects/from-templateInstantiate a project from a template
GET /psa/projects/portfolioPortfolio rollup across all projects
GET /psa/projects/{id}Get a project with phases and milestones
PATCH /psa/projects/{id}Update a project
DELETE /psa/projects/{id}Archive a project
GET /psa/projects/{id}/approvalsList approvals for a project
POST /psa/projects/{id}/approvalsCreate an approval request
POST /psa/projects/{id}/approvals/{approval_id}/decideDecide an approval
GET /psa/projects/{id}/burn-rateProject burn-rate
GET /psa/projects/{id}/dependenciesList task dependencies for a project
POST /psa/projects/{id}/dependenciesCreate a task dependency
DELETE /psa/projects/{id}/dependencies/{dep_id}Delete a task dependency
POST /psa/projects/{id}/discovery/scanRun a discovery scan
GET /psa/projects/{id}/milestonesList milestones for a project
POST /psa/projects/{id}/milestonesCreate a milestone
PATCH /psa/projects/{id}/milestones/{m_id}Update a milestone (may trigger billing)
DELETE /psa/projects/{id}/milestones/{m_id}Delete a milestone
GET /psa/projects/{id}/phasesList phases for a project
POST /psa/projects/{id}/phasesCreate a phase
PATCH /psa/projects/{id}/phases/reorderReorder all phases
PATCH /psa/projects/{id}/phases/{phase_id}Update a phase
DELETE /psa/projects/{id}/phases/{phase_id}Delete a phase
GET /psa/projects/{id}/risksList RAID entries for a project
POST /psa/projects/{id}/risksCreate a RAID entry
PATCH /psa/projects/{id}/risks/{risk_id}Update a RAID entry
DELETE /psa/projects/{id}/risks/{risk_id}Delete a RAID entry
POST /psa/projects/{id}/shift-tasksBulk-shift task due dates

Project Templates

Reusable project templates and versions

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/project-templatesList project templates
POST /psa/project-templatesCreate a project template
GET /psa/project-templates/available-varsList template substitution variables
POST /psa/project-templates/import-samplesImport the sample template catalogue
GET /psa/project-templates/{id}Get a project template with its current version
PATCH /psa/project-templates/{id}Update template metadata
DELETE /psa/project-templates/{id}Archive a project template
PUT /psa/project-templates/{id}/payloadSave a new template payload version
GET /psa/project-templates/{id}/versionsList template version history
GET /psa/project-templates/{id}/versions/{version}Get one template version

Products

Product catalogue and supplier SKU links

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/productsList products
POST /psa/productsCreate a product
GET /psa/products/{id}Get a product
PATCH /psa/products/{id}Update a product
DELETE /psa/products/{id}Delete a product
GET /psa/products/{id}/supplier-skusList a product's supplier SKU links
POST /psa/products/{id}/supplier-skusLink a supplier SKU to a product
DELETE /psa/products/{id}/supplier-skus/{link_id}Unlink a supplier SKU from a product

Catalogue

Cross-supplier catalogue search

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/catalogue/searchSearch the unified product catalogue

Suppliers

Suppliers and price-feed ingestion

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/suppliersList suppliers
POST /psa/suppliersCreate a supplier
GET /psa/suppliers/{id}Get a supplier
PATCH /psa/suppliers/{id}Update a supplier
DELETE /psa/suppliers/{id}Delete a supplier
GET /psa/suppliers/{id}/feedList a supplier's feed items
POST /psa/suppliers/{id}/feed/ingestIngest a previewed supplier CSV
GET /psa/suppliers/{id}/feed/mappingsList a supplier's CSV mapping presets
POST /psa/suppliers/{id}/feed/mappingsSave a CSV mapping preset
DELETE /psa/suppliers/{id}/feed/mappings/{mid}Delete a CSV mapping preset
POST /psa/suppliers/{id}/feed/previewPreview a supplier CSV upload

Procurement

Procured item tracking

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/procured-itemsList client procured items
POST /psa/procured-itemsCreate a procured item
GET /psa/procured-items/{id}Get a procured item
PATCH /psa/procured-items/{id}Update a procured item
DELETE /psa/procured-items/{id}Delete a procured item

MDM

Mobile device management (beta, per-org flag)

Full schemas and try-it →

EndpointTierWhat it does
GET /mdm/connectionsList MDM provider connections
POST /mdm/connections/{provider}/callbackComplete the AMAPI enterprise binding (connect leg 2)
POST /mdm/connections/{provider}/connectStart the AMAPI enterprise binding (connect leg 1)
POST /mdm/connections/{provider}/disconnectDisconnect the MDM provider (DESTRUCTIVE)
POST /mdm/connections/{provider}/testTest the MDM provider connection
GET /mdm/defaultsGet hierarchy default policies
PUT /mdm/defaults/orgSet the org default policy
PUT /mdm/defaults/site/{id}Set a site default policy
GET /mdm/devicesList MDM devices
GET /mdm/devices/{id}Get an MDM device
POST /mdm/devices/{id}/clear-lostClear lost mode (recovery)
GET /mdm/devices/{id}/commandsList a device's command history
POST /mdm/devices/{id}/commandsIssue a device command
POST /mdm/devices/{id}/commands/{cmdId}/cancelCancel a sent device command
GET /mdm/devices/{id}/eventsList a device's webhook events
GET /mdm/devices/{id}/locationsList a device's lost-mode GPS fixes
PUT /mdm/devices/{id}/policyAssign a policy to a device
POST /mdm/devices/{id}/report-lostReport a device lost
GET /mdm/devices/{id}/security-eventsList a device's on-device security events
POST /mdm/devices/{id}/syncRefresh an MDM device from its provider
GET /mdm/enrolment-optionsEnrolment targeting options
POST /mdm/enrolment-tokensCreate a device enrolment token
POST /mdm/enrolment-wifiSave an enrolment Wi-Fi network
DELETE /mdm/enrolment-wifi/{id}Delete a saved enrolment Wi-Fi network
POST /mdm/managed-play/web-tokenMint a Managed Google Play web token
GET /mdm/policiesList MDM policies
POST /mdm/policiesCreate an MDM policy
GET /mdm/policies/{id}Get an MDM policy
PUT /mdm/policies/{id}Update an MDM policy
DELETE /mdm/policies/{id}Delete an MDM policy
POST /mdm/policies/{id}/pushPush a policy to the provider
GET /organizations/{id}/mdm-enabledGet an organization's MDM beta flag
PUT /organizations/{id}/mdm-enabledSet an organization's MDM beta flag

CSAT

Customer satisfaction surveys and analytics

Full schemas and try-it →

EndpointTierWhat it does
GET /csat/{token}Load a CSAT survey landing page
POST /csat/{token}Submit a CSAT survey response
GET /psa/csat/aggregateCSAT aggregate metrics
GET /psa/csat/responsesList recent CSAT responses

QBR

vCIO quarterly business review scorecards and roadmap

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/settings/qbrGet the org's review-term setting
PUT /psa/settings/qbrSet the org's review-term setting
PATCH /qbr/cards/{cardID}Update a roadmap card
DELETE /qbr/cards/{cardID}Delete a roadmap card
GET /qbr/clients/{clientID}/cardsList a client's roadmap cards
POST /qbr/clients/{clientID}/cardsAdd a roadmap card
GET /qbr/clients/{clientID}/scorecardCompute and return a client's QBR scorecard
GET /qbr/clients/{clientID}/share-linkGet or create a client's share link
DELETE /qbr/clients/{clientID}/share-linkRevoke a client's share link
POST /qbr/clients/{clientID}/share-link/rotateRotate a client's share link
GET /qbr/public/{token}Public client review view (no auth)
POST /qbr/public/{token}/cards/{cardID}/selectClient selects a card option (public, no auth)

Asset Groups

Smart asset groups with filter DSL

Full schemas and try-it →

EndpointTierWhat it does
GET /asset-groupsList asset groups
POST /asset-groupsCreate an asset group
GET /asset-groups/fieldsList queryable criteria fields
POST /asset-groups/previewPreview criteria without saving
POST /asset-groups/recompute-allRecompute every asset group
GET /asset-groups/{id}Get an asset group
PUT /asset-groups/{id}Update an asset group
DELETE /asset-groups/{id}Delete an asset group
POST /asset-groups/{id}/cloneClone an asset group
GET /asset-groups/{id}/membersList group members
GET /asset-groups/{id}/policiesGet the RMM policy a group applies
PUT /asset-groups/{id}/policiesSet the RMM policy a group applies
POST /asset-groups/{id}/recomputeRecompute group membership now

Network Devices

SNMP network device inventory and polling

Full schemas and try-it →

EndpointTierWhat it does
GET /device-countsGet combined agent and network device counts
GET /network-devicesstableList network devices
POST /network-devicesstableCreate a network device
POST /network-devices/discoverstableRun SNMP discovery via an agent
GET /network-devices/{id}stableGet a network device
PUT /network-devices/{id}stableUpdate a network device
DELETE /network-devices/{id}stableDelete a network device
POST /network-devices/{id}/pollstablePoll a device on demand

Email Gateway

Inbound/outbound email domains, mailboxes, blocklist and activity

Full schemas and try-it →

EndpointTierWhat it does
GET /clients/{clientID}/email-domainsList a client's email domains
POST /clients/{clientID}/email-domainsAdd an email domain to a client
DELETE /clients/{clientID}/email-domains/{id}Remove an email domain from a client
GET /psa/email/activityList email activity
GET /psa/email/activity/summaryEmail activity summary
GET /psa/email/activity/{id}Get email activity detail
GET /psa/email/blocklistList blocklist entries
POST /psa/email/blocklistAdd blocklist entry
DELETE /psa/email/blocklist/{id}Remove blocklist entry
GET /psa/email/connected-mailboxesList connected mailboxes
POST /psa/email/connected-mailboxes/callbackComplete mailbox connect flow
POST /psa/email/connected-mailboxes/connectStart mailbox connect flow
PATCH /psa/email/connected-mailboxes/{id}Update connected mailbox settings
DELETE /psa/email/connected-mailboxes/{id}Disconnect mailbox

PSA Settings

Ticket categories, priority matrix, SLA plans and AI feature config

Full schemas and try-it →

EndpointTierWhat it does
PATCH /psa/settings/ai/featuresToggle AI features
PATCH /psa/settings/ai/rate-limitsPatch AI per-feature daily rate limits
GET /psa/settings/ai/usageList AI usage metering rows
GET /psa/settings/categoriesList ticket categories
POST /psa/settings/categoriesCreate a ticket category
POST /psa/settings/categories/importImport a ticket-category taxonomy from CSV
POST /psa/settings/categories/install-defaultsInstall the standard system-default taxonomy
POST /psa/settings/categories/remove-defaultsRemove the system-default categories (reverse of install)
GET /psa/settings/categories/templateDownload the category-import CSV template
PATCH /psa/settings/categories/{id}Update a ticket category
DELETE /psa/settings/categories/{id}Delete a ticket category
GET /psa/settings/categories/{id}/subtreeList a category subtree
GET /psa/settings/priority-matrixGet the 5x5 priority matrix
POST /psa/settings/priority-matrix/resetReset the priority matrix
PUT /psa/settings/priority-matrix/{impact}/{urgency}Upsert a priority matrix cell
DELETE /psa/settings/priority-matrix/{impact}/{urgency}Delete a priority matrix cell
GET /psa/settings/sla-calendarsList SLA calendars
POST /psa/settings/sla-calendarsCreate an SLA calendar
GET /psa/settings/sla-calendars/{id}Get an SLA calendar
PATCH /psa/settings/sla-calendars/{id}Update an SLA calendar
DELETE /psa/settings/sla-calendars/{id}Delete an SLA calendar
GET /psa/settings/sla-plansList SLA plans
POST /psa/settings/sla-plansCreate an SLA plan
GET /psa/settings/sla-plans/resolveResolve the SLA plan for a hypothetical ticket
GET /psa/settings/sla-plans/{id}Get an SLA plan
PATCH /psa/settings/sla-plans/{id}Update an SLA plan
DELETE /psa/settings/sla-plans/{id}Delete an SLA plan
GET /psa/settings/ticket-type-formsList per-type ticket forms (merged view)
GET /psa/settings/ticket-type-forms/defaultsList platform-default ticket forms
PUT /psa/settings/ticket-type-forms/{ticket_type}Upsert a tenant form override
DELETE /psa/settings/ticket-type-forms/{ticket_type}Reset a form to the platform default
GET /psa/settings/ticketsGet org-wide ticket settings
PUT /psa/settings/ticketsUpdate org-wide ticket settings
GET /psa/statusGet PSA module status for the current tenant

Ticket Rules

Ticket automation rules and dry-run

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/rulesList automation rules
POST /psa/rulesCreate an automation rule
POST /psa/rules/dry-runDry-run a rule definition
GET /psa/rules/{id}Get a rule
PATCH /psa/rules/{id}Update a rule
DELETE /psa/rules/{id}Delete a rule
GET /psa/rules/{id}/runsList rule runs (audit history)

QuickBooks

QuickBooks Online accounting sync

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/integrations/qboGet QuickBooks connection status
DELETE /psa/integrations/qboDisconnect QuickBooks
POST /psa/integrations/qbo/authorizeStart QuickBooks OAuth flow
POST /psa/integrations/qbo/callbackComplete QuickBooks OAuth flow
POST /psa/integrations/qbo/create-from-localPush a local entity to QuickBooks
POST /psa/integrations/qbo/link-localLink a local entity to an existing QuickBooks entity
GET /psa/integrations/qbo/lookup-localAutocomplete local map targets (QuickBooks)
GET /psa/integrations/qbo/pending-importsList QuickBooks pending imports
PATCH /psa/integrations/qbo/pending-imports/{id}Decide a QuickBooks pending import
GET /psa/integrations/qbo/preferencesGet QuickBooks preferences
PATCH /psa/integrations/qbo/preferencesUpdate QuickBooks preferences
POST /psa/integrations/qbo/syncTrigger a manual QuickBooks sync
GET /psa/integrations/qbo/sync-historyList QuickBooks sync history
GET /psa/integrations/qbo/unmapped-localList local entities unmapped to QuickBooks

FreeAgent

FreeAgent accounting sync

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/integrations/freeagentGet FreeAgent connection status
DELETE /psa/integrations/freeagentDisconnect FreeAgent
POST /psa/integrations/freeagent/authorizeStart FreeAgent OAuth flow
GET /psa/integrations/freeagent/bank-accountsList FreeAgent bank accounts
POST /psa/integrations/freeagent/callbackComplete FreeAgent OAuth flow
POST /psa/integrations/freeagent/create-from-localPush a local client to FreeAgent
GET /psa/integrations/freeagent/income-categoriesList FreeAgent income categories
GET /psa/integrations/freeagent/lookup-localAutocomplete local map targets (FreeAgent)
GET /psa/integrations/freeagent/pending-importsList FreeAgent pending imports
PATCH /psa/integrations/freeagent/pending-imports/{id}Decide a FreeAgent pending import
GET /psa/integrations/freeagent/preferencesGet FreeAgent preferences
PATCH /psa/integrations/freeagent/preferencesUpdate FreeAgent preferences
POST /psa/integrations/freeagent/syncTrigger a manual FreeAgent sync
GET /psa/integrations/freeagent/sync-historyList FreeAgent sync history
GET /psa/integrations/freeagent/unmapped-localList local entities unmapped to FreeAgent

Entra

Microsoft Entra contact sync

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/integrations/entraGet Entra connection status
DELETE /psa/integrations/entraDisconnect Entra
GET /psa/integrations/entra/authorizeStart the Entra OAuth flow
GET /psa/integrations/entra/callbackEntra OAuth callback
POST /psa/integrations/entra/connectSave Entra app credentials
POST /psa/integrations/entra/syncTrigger an Entra contact sync

Pax8

Pax8 marketplace sync

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/integrations/pax8Get Pax8 connection status
DELETE /psa/integrations/pax8Disconnect Pax8
POST /psa/integrations/pax8/clients/{clientId}/unlinkUnlink an OpsMerge client from its Pax8 company
POST /psa/integrations/pax8/connectConnect Pax8
POST /psa/integrations/pax8/credentialsRotate Pax8 credentials
POST /psa/integrations/pax8/lines/{lineId}/releaseRelease a Pax8 subscription from its contract line
GET /psa/integrations/pax8/linkedList Pax8-linked clients
GET /psa/integrations/pax8/lookup-localTypeahead lookup of local clients
GET /psa/integrations/pax8/marginsList Pax8 line margins (sell vs cost)
GET /psa/integrations/pax8/pending-importsList the Pax8 pending-imports queue
PATCH /psa/integrations/pax8/pending-imports/{id}Decide a Pax8 pending import
PATCH /psa/integrations/pax8/preferencesUpdate Pax8 preferences
GET /psa/integrations/pax8/price-overridesList Pax8 per-contract sale-price overrides
POST /psa/integrations/pax8/price-overrides/{lineId}/removeRemove a Pax8 sale-price override
POST /psa/integrations/pax8/syncTrigger a Pax8 sync now
GET /psa/integrations/pax8/sync-historyList Pax8 sync history

CIPP

CIPP tenant mapping and sync

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/integrations/cippGet CIPP connection status
DELETE /psa/integrations/cippDisconnect CIPP
POST /psa/integrations/cipp/connectConnect CIPP
POST /psa/integrations/cipp/syncTrigger a CIPP contact sync
GET /psa/integrations/cipp/tenantsList CIPP tenant mappings
POST /psa/integrations/cipp/tenants/auto-createAuto-create clients for unmapped CIPP tenants
POST /psa/integrations/cipp/tenants/refreshRefresh the CIPP tenant list
PUT /psa/integrations/cipp/tenants/{cippTenantId}/enabledEnable or disable sync for one CIPP tenant
PUT /psa/integrations/cipp/tenants/{cippTenantId}/mapMap a CIPP tenant to a client
POST /psa/integrations/cipp/tenants/{cippTenantId}/syncRetry sync for one CIPP tenant
GET /psa/integrations/cipp/unmapped-countCount unmapped CIPP tenants

Distributors

Ingram, TD Synnex and Exertis supplier integrations

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/integrations/exertisGet Exertis connection
POST /psa/integrations/exertisCreate or update the Exertis connection
DELETE /psa/integrations/exertisDisconnect Exertis
POST /psa/integrations/exertis/catalogPull the Exertis catalogue
POST /psa/integrations/exertis/testTest the Exertis connection
GET /psa/integrations/ingramGet Ingram Micro connection
POST /psa/integrations/ingramCreate or update the Ingram Micro connection
DELETE /psa/integrations/ingramDisconnect Ingram Micro
GET /psa/integrations/ingram/catalogSearch the Ingram catalogue
POST /psa/integrations/ingram/paIngram price and availability lookup
POST /psa/integrations/ingram/testTest the Ingram connection
GET /psa/integrations/tdsynnexGet TD Synnex connection
POST /psa/integrations/tdsynnexCreate or update the TD Synnex connection
DELETE /psa/integrations/tdsynnexDisconnect TD Synnex
POST /psa/integrations/tdsynnex/paTD Synnex price and availability lookup
POST /psa/integrations/tdsynnex/testTest the TD Synnex connection

Bitdefender

Bitdefender GravityZone integration (bring-your-own-tenant)

Full schemas and try-it →

EndpointTierWhat it does
GET /clients/{client_id}/bitdefender/toggleGet the per-client Bitdefender billing toggle
PUT /clients/{client_id}/bitdefender/toggleSet the per-client Bitdefender billing toggle
GET /integrations/bitdefenderGet Bitdefender connection status
DELETE /integrations/bitdefenderDisconnect Bitdefender
GET /integrations/bitdefender/clients/{client_id}/endpointsList Bitdefender endpoints for a client
POST /integrations/bitdefender/clients/{client_id}/modulesDeploy Bitdefender modules across a client's endpoints
GET /integrations/bitdefender/companiesList provisioned Bitdefender companies
GET /integrations/bitdefender/companies/{client_id}Get the Bitdefender company for one client
GET /integrations/bitdefender/companies/{client_id}/addonsGet a client's Bitdefender add-on toggle states
PUT /integrations/bitdefender/companies/{client_id}/addonsToggle Bitdefender add-ons for a client
POST /integrations/bitdefender/connectConnect Bitdefender GravityZone
GET /integrations/bitdefender/costsList Bitdefender module cost rows
PUT /integrations/bitdefender/costsUpsert a Bitdefender module cost row
DELETE /integrations/bitdefender/costs/{module_key}Delete a Bitdefender module cost row
GET /integrations/bitdefender/defaultsGet Bitdefender provisioning defaults
PUT /integrations/bitdefender/defaultsSave Bitdefender provisioning defaults
DELETE /integrations/bitdefender/endpoints/{id}Remove a Bitdefender endpoint (uninstall + delete)
GET /integrations/bitdefender/incidents/{incident_id}Get one Bitdefender incident
GET /integrations/bitdefender/orphansList orphaned GravityZone endpoints
GET /integrations/bitdefender/policiesList Bitdefender template policies
POST /integrations/bitdefender/provision/{client_id}Provision a Bitdefender company for one client
GET /integrations/bitdefender/push/healthGet Bitdefender push delivery stats
POST /integrations/bitdefender/reconcileRun Bitdefender billing reconciliation now
GET /integrations/bitdefender/reportsList Bitdefender reports
GET /integrations/bitdefender/reports/{report_id}/downloadGet Bitdefender report download links
POST /integrations/bitdefender/testTest Bitdefender credentials
GET /integrations/bitdefender/usageList Bitdefender usage snapshots
GET /integrations/bitdefender/usage/clients/{client_id}List Bitdefender usage snapshots for one client

Telecom

Dial 9 telecom billing (EU cell only)

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/billing/dial9/configGet Dial 9 configuration
PUT /psa/billing/dial9/configSave Dial 9 configuration
POST /psa/billing/dial9/invoices/{id}/append-linesAppend Dial 9 telecom lines to a draft invoice
POST /psa/billing/dial9/keypairGenerate a Dial 9 SFTP keypair
GET /psa/billing/dial9/numbersList Dial 9 DID inventory
PATCH /psa/billing/dial9/numbers/{id}Assign a Dial 9 number
POST /psa/billing/dial9/peek-host-keyPeek (and optionally pin) the Dial 9 SFTP host key
GET /psa/billing/dial9/quarantineList open CDR quarantine rows
POST /psa/billing/dial9/quarantine/{id}/resolveResolve a CDR quarantine row
POST /psa/billing/dial9/syncTrigger a Dial 9 sync now
GET /psa/billing/dial9/tariffsList Dial 9 tariffs
PATCH /psa/billing/dial9/tariffs/{id}Set a Dial 9 tariff markup override
GET /psa/billing/dial9/unitsList Dial 9 units
PATCH /psa/billing/dial9/units/{id}Assign a Dial 9 unit to a client

Client Portal

End-customer portal (session-bound, not an integration surface)

Full schemas and try-it →

EndpointTierWhat it does
GET /portal/assetsList the caller's assets (portal)
GET /portal/assets/{id}Get a single asset (portal)
GET /portal/billing/invoicesList the contact's client invoices (portal)
GET /portal/billing/invoices/{id}Get invoice detail (portal)
GET /portal/billing/invoices/{id}/payGet the pay-now URL for an invoice (portal)
GET /portal/billing/invoices/{id}/pdfDownload an invoice PDF (portal)
GET /portal/billing/paymentsList the contact's client payment history (portal)
GET /portal/brandingGet portal branding (contact-facing)
GET /portal/dashboardClient-scoped dashboard summary (portal)
GET /portal/documentsList documents (portal)
POST /portal/documents/confirm-uploadConfirm a presigned document upload (portal)
POST /portal/documents/presigned-uploadPresign a document upload (portal)
DELETE /portal/documents/{id}Delete an own-uploaded document (portal)
GET /portal/documents/{id}/downloadGet a presigned download URL for a document (portal)
GET /portal/kb/articlesList or search knowledge base articles (portal)
GET /portal/kb/articles/{id}Get a knowledge base article (portal)
GET /portal/kb/categoriesList knowledge base categories (portal)
GET /portal/selfGet own portal profile
PATCH /portal/selfUpdate own portal profile
POST /portal/self/change-passwordChange own portal password
PUT /portal/self/notification-preferencesReplace own notification preferences
GET /portal/ticketsList own tickets (portal)
POST /portal/ticketsCreate a ticket (portal)
GET /portal/tickets/{id}Get own ticket detail (portal)
GET /portal/tickets/{id}/attachments/{aid}/downloadDownload a ticket attachment (portal)
POST /portal/tickets/{id}/closeClose own resolved ticket (portal)
POST /portal/tickets/{id}/commentsAdd a comment to own ticket (portal)
GET /public/kb/articlesList or search public KB articles (unauthenticated help centre)
GET /public/kb/articles/{slug}Get one public KB article by slug (unauthenticated)
GET /public/kb/categoriesPublic KB category tree (unauthenticated)
GET /public/kb/images/{id}Serve a KB article image (unauthenticated)
GET /public/portal-brandingPre-auth portal branding by host (public, white-label login)

Portal Branding

Tenant portal branding administration

Full schemas and try-it →

EndpointTierWhat it does
GET /settings/portal-brandingGet portal branding settings (MSP admin)
PUT /settings/portal-brandingUpdate portal branding settings (MSP admin)
POST /settings/portal-branding/logoPresign a portal logo upload (MSP admin)
DELETE /settings/portal-branding/logoClear the portal logo (MSP admin)
GET /settings/portal-domainsList custom portal domains (MSP admin)
POST /settings/portal-domainsAdd a custom portal domain (MSP admin)
GET /settings/portal-domains/{id}Get + refresh a custom portal domain (MSP admin)
DELETE /settings/portal-domains/{id}Remove a custom portal domain (MSP admin)

Tray

System tray app configuration and self-service script runs

Full schemas and try-it →

EndpointTierWhat it does
PUT /agents/{agentID}/tray-enabledToggle the tray app on a single agent
GET /tray-configsList tray configs
POST /tray-configsCreate a tray config
GET /tray-configs/resolve/{agentID}Resolve the effective tray config for an agent
GET /tray-configs/{configID}/scriptsList self-service scripts in a tray config
POST /tray-configs/{configID}/scriptsAdd a script to a tray config catalogue
GET /tray-configs/{id}Get a tray config
PUT /tray-configs/{id}Update a tray config
DELETE /tray-configs/{id}Delete a tray config
GET /tray-notificationsList tray notification history
POST /tray-notificationsSend a tray notification
DELETE /tray-notifications/{id}Delete a tray notification record
PUT /tray-policy-scripts/{id}Update a self-service catalogue entry
DELETE /tray-policy-scripts/{id}Remove a self-service catalogue entry
GET /tray-script-runsList tray self-service script runs
POST /tray-script-runs/{id}/approveApprove a pending self-service run
POST /tray-script-runs/{id}/denyDeny a pending self-service run

Virtualization

Hypervisor hosts and VM actions

Full schemas and try-it →

EndpointTierWhat it does
GET /virtualization/hostsList virtualization hosts
GET /virtualization/hosts/{id}Get a virtualization host
GET /virtualization/hosts/{id}/vmsList VMs on a host
GET /virtualization/vms/{id}Get a virtual machine
POST /virtualization/vms/{id}/actionDispatch a VM lifecycle action
GET /virtualization/vms/{id}/statsGet live stats for a VM

Licenses

Software licence tracking and assignment

Full schemas and try-it →

EndpointTierWhat it does
GET /clients/{clientID}/licensesstableList licences assigned to a client
GET /licensesstableList software licences
POST /licensesstableCreate a software licence
POST /licenses/importstableImport licences from CSV
GET /licenses/summarystableLicence usage summary
GET /licenses/{licenseID}stableGet a software licence
PUT /licenses/{licenseID}stableUpdate a software licence
DELETE /licenses/{licenseID}stableDelete a software licence
GET /licenses/{licenseID}/assignmentsstableList agent assignments for a licence
POST /licenses/{licenseID}/assignmentsstableAssign an agent to a licence
DELETE /licenses/{licenseID}/assignments/{agentID}stableRemove an agent from a licence
POST /licenses/{licenseID}/matchstableRe-run auto-matching for a licence

Backups

Backup endpoint mapping and plans

Full schemas and try-it →

EndpointTierWhat it does
GET /agents/{agentId}/backupsGet backup protection state for an agent
GET /backups/endpointsList MSP360 backup endpoints
PUT /backups/endpoints/{id}/mapMap an MSP360 endpoint to an agent
GET /backups/plansList MSP360 backup plans
GET /integrations/msp360Get MSP360 connection status
DELETE /integrations/msp360Disconnect MSP360
POST /integrations/msp360/connectConnect MSP360 (validate and store credentials)
PATCH /integrations/msp360/preferencesUpdate MSP360 alert preferences
POST /integrations/msp360/syncTrigger an immediate MSP360 sync

Endpoint Security

Per-agent endpoint security state

Full schemas and try-it →

EndpointTierWhat it does
GET /agents/{id}/bitdefenderGet Bitdefender state for an agent
POST /agents/{id}/bitdefender/installDispatch a Bitdefender install to an agent
POST /agents/{id}/bitdefender/modulesReconfigure Bitdefender modules on one agent's endpoint

Patches

Patch policies, scans and managed updates

Full schemas and try-it →

EndpointTierWhat it does
GET /agents/{agentID}/managed-updatesGet managed-updates state for an agent
PUT /agents/{agentID}/managed-updatesSet the agent-level managed-updates override
POST /agents/{agentID}/managed-updates/reapplyForce re-push of the managed-updates control to an agent
GET /agents/{agentID}/patch-policyGet the patch policy assigned to an agent
PUT /agents/{agentID}/patch-policyAssign or clear the patch policy for an agent
GET /agents/{agentID}/patchesGet patch install history for an agent
GET /agents/{agentID}/patches/availableList cached available patches for an agent
POST /agents/{agentID}/patches/installQueue patch installation on an agent
GET /agents/{agentID}/patches/install-statusGet progress of the latest patch install job
POST /agents/{agentID}/patches/scanRun a live patch scan on an agent
GET /clients/{clientID}/managed-updatesGet managed-updates state for a client
PUT /clients/{clientID}/managed-updatesSet the client-level managed-updates override
GET /clients/{clientID}/patch-policyGet the patch policy assigned to a client
PUT /clients/{clientID}/patch-policyAssign or clear the patch policy for a client
GET /organization/managed-updatesGet org-wide managed-updates state and compliance summary
PUT /organization/managed-updatesSet the org-wide managed-updates default
GET /organization/patch-auto-installGet the org's auto-install safety valves
PUT /organization/patch-auto-installUpdate the org's auto-install safety valves
GET /organization/patch-policyGet the org-wide default patch policy
PUT /organization/patch-policyAssign or clear the org-wide default patch policy
GET /patch-dispatch-logList recent patch-dispatcher decisions
GET /patch-policiesList patch policies
POST /patch-policiesCreate a patch policy
GET /patch-policies/{id}Get a patch policy
PUT /patch-policies/{id}Update a patch policy
DELETE /patch-policies/{id}Delete a patch policy
GET /sites/{siteID}/managed-updatesGet managed-updates state for a site
PUT /sites/{siteID}/managed-updatesSet the site-level managed-updates override
GET /sites/{siteID}/patch-policyGet the patch policy assigned to a site
PUT /sites/{siteID}/patch-policyAssign or clear the patch policy for a site

Agent Operations

Live agent operations - processes, services, registry, power

Full schemas and try-it →

EndpointTierWhat it does
HEAD /agent-versions/current/downloadProbe the current agent binary download (public)
POST /agents/trigger-update-allTrigger a self-update check on all online agents
GET /agents/{agentID}/bitlocker-keysReveal stored BitLocker recovery keys for an agent
GET /agents/{agentID}/eventlogQuery event logs on an agent (live)
GET /agents/{agentID}/processesList running processes on an agent (live)
POST /agents/{agentID}/processes/{pid}/killKill a process on an agent
GET /agents/{agentID}/registryBrowse a Windows registry path on an agent
POST /agents/{agentID}/registryCreate a registry key or value on an agent
PUT /agents/{agentID}/registryModify a registry value on an agent
DELETE /agents/{agentID}/registryDelete a registry key or value on an agent
GET /agents/{agentID}/servicesList services on an agent (live)
POST /agents/{agentID}/services/{name}/actionStart, stop, or restart a service on an agent
POST /agents/{agentID}/trigger-updateTrigger a self-update check on a single agent
POST /agents/{id}/scheduled-rebootSchedule a delayed reboot on an agent
POST /agents/{id}/shutdownShut down an agent's endpoint
POST /agents/{id}/uninstallUninstall an agent and delete its record
GET /settings/agent-powerGet agent power action messages
PUT /settings/agent-powerUpdate agent power action messages

Terminal

Remote terminal WebSocket

Full schemas and try-it →

EndpointTierWhat it does
GET /agents/{agentID}/terminalOpen a live-terminal WebSocket relay to an agent

Remote Desktop

Remote desktop and OpsMerge Connect configuration

Full schemas and try-it →

EndpointTierWhat it does
GET /agents/{agentID}/remote-desktopOpen a remote-desktop WebSocket relay to an agent
GET /agents/{agentID}/rustdeskGet RustDesk connection credentials for an agent
GET /agents/{agentID}/rustdesk-configResolve the effective RustDesk config for an agent
GET /rustdesk-config/{scopeType}/{scopeID}Get the RustDesk config row for a scope
PUT /rustdesk-config/{scopeType}/{scopeID}Upsert the RustDesk config for a scope
DELETE /rustdesk-config/{scopeType}/{scopeID}Delete the RustDesk config row for a scope
GET /settings/rustdeskGet RustDesk server settings and org approval defaults
PUT /settings/rustdeskUpdate the org's RustDesk approval defaults

API Keys

API key management and scope catalogue (session-only)

Full schemas and try-it →

EndpointTierWhat it does
GET /api-keysstableList API keys
POST /api-keysstableCreate an API key
GET /api-keys/scopesstableList the API key scope catalogue
DELETE /api-keys/{id}stableRevoke an API key

AI

AI-assisted ticket features

Full schemas and try-it →

EndpointTierWhat it does
POST /ai/scriptsGenerate or improve a script with AI
POST /psa/ai/tickets/{ticket_id}/draft-replyGenerate an AI draft reply
POST /psa/ai/tickets/{ticket_id}/rewrite-replyProofread and professionalise a typed reply
POST /psa/ai/tickets/{ticket_id}/sentimentScore ticket sentiment
POST /psa/ai/tickets/{ticket_id}/suggest-categorySuggest ticket categories (AI)
POST /psa/ai/tickets/{ticket_id}/summarySummarise a ticket (AI)
GET /settings/aiGet AI script-generation settings
PUT /settings/aiUpdate AI script-generation settings

Chat

Technician-to-user chat sessions

Full schemas and try-it →

EndpointTierWhat it does
POST /agents/{agentID}/chat-inviteInvite an end user to chat

Account

Own profile, preferences and auth tickets

Full schemas and try-it →

EndpointTierWhat it does
GET /auth/meGet the authenticated user's profile
POST /bug-reportsSubmit a bug report
GET /dashboard/summaryGet the dashboard summary
GET /users/meGet the current user's profile
PATCH /users/meUpdate the current user
GET /users/me/table-prefs/{key}Get table layout preferences
PUT /users/me/table-prefs/{key}Save table layout preferences

Webhooks (Inbound)

Third-party webhook receivers with per-provider authentication

Full schemas and try-it →

EndpointTierWhat it does
POST /webhooks/trigger/{id}stableInbound trigger webhook (webhook_inbound)

ThreatDown

ThreatDown/Malwarebytes OneView integration

Full schemas and try-it →

EndpointTierWhat it does
GET /agents/{id}/threatdownGet the agent's ThreatDown endpoint state
POST /agents/{id}/threatdown/cleanupClean up a broken ThreatDown install on an endpoint
GET /agents/{id}/threatdown/detectionsList ThreatDown detections for an agent
POST /agents/{id}/threatdown/detections/{detectionID}/ackAcknowledge a ThreatDown detection
POST /agents/{id}/threatdown/installInstall the ThreatDown agent on an endpoint
GET /agents/{id}/threatdown/jobs/{jobID}Poll the status of a ThreatDown scan job
GET /clients/{id}/threatdownGet the client's ThreatDown configuration
PUT /clients/{id}/threatdownUpdate the client's ThreatDown configuration
POST /clients/{id}/threatdown/create-siteCreate a OneView site for the client
POST /clients/{id}/threatdown/matchAuto-match the client to a OneView site by name
GET /clients/{id}/threatdown/subscriptionGet the client's OneView site subscription
POST /clients/{id}/threatdown/subscriptionAssign an initial subscription to the client's site
PUT /clients/{id}/threatdown/subscriptionReplace the full subscription list on the client's site
POST /clients/{id}/threatdown/subscription/extend-trialExtend the trial subscription on the client's site
GET /settings/threatdownGet org ThreatDown (OneView) settings
PUT /settings/threatdownUpdate org ThreatDown settings
POST /threatdown/detections/ack-bulkAcknowledge multiple ThreatDown detections
GET /threatdown/detections/unackedList unacknowledged ThreatDown detections (org-wide)
PUT /threatdown/endpoints/{id}/linkLink or unlink a ThreatDown endpoint to an RMM agent
POST /threatdown/rematch-unmatchedRe-run agent matching for unmatched ThreatDown endpoints
POST /threatdown/scan/{agentID}Trigger a ThreatDown threat scan on an agent
GET /threatdown/sitesList OneView sites available to the org
GET /threatdown/subscriptions/availabilityGet OneView subscription availability
GET /threatdown/subscriptions/reportGet the OneView subscriptions usage report
POST /threatdown/syncRun a full ThreatDown sync now
GET /threatdown/unmatchedList ThreatDown endpoints with no linked agent

SMS

VooDoo SMS integration (UK organisations only, bring-your-own API key)

Full schemas and try-it →

EndpointTierWhat it does
GET /integrations/voodoosmsGet VooDoo SMS connection status and settings
DELETE /integrations/voodoosmsDisconnect VooDoo SMS
POST /integrations/voodoosms/connectConnect VooDoo SMS (validate and store the API key)
GET /integrations/voodoosms/messagesList the SMS audit log
POST /integrations/voodoosms/sendSend an ad-hoc SMS to contacts and/or numbers
PUT /integrations/voodoosms/settingsUpdate VooDoo SMS settings
POST /integrations/voodoosms/testSend a test SMS

Triggers

Event trigger configuration

Full schemas and try-it →

EndpointTierWhat it does
GET /triggersList automation triggers
POST /triggersCreate a trigger
GET /triggers/{id}Get a trigger
PUT /triggers/{id}Update a trigger
DELETE /triggers/{id}Delete a trigger
GET /triggers/{id}/historyList a trigger's execution history
POST /triggers/{id}/testTest-fire a trigger

Compliance

Compliance scores and retention policies

Full schemas and try-it →

EndpointTierWhat it does
GET /compliance/agents/{agentID}/scoreGet the compliance score for one agent
GET /compliance/clients/{clientID}/scoreGet the aggregate compliance score for a client
GET /compliance/scoreGet compliance scores for every client in the org
GET /retention-policiesList data retention policies
PUT /retention-policies/{id}Update a retention policy

Anomaly Detection

Anomaly detection findings and config

Full schemas and try-it →

EndpointTierWhat it does
GET /anomaly/eventsList anomaly events
GET /anomaly/settingsList anomaly detection settings
PUT /anomaly/settings/{checkType}Update anomaly settings for one check type
GET /anomaly/timelineGet the anomaly alert timeline histogram

Platform Admin

Platform-operator endpoints (not tenant-facing)

Full schemas and try-it →

EndpointTierWhat it does
GET /admin/boe-base-ratesList Bank of England base rates
POST /admin/boe-base-ratesUpsert a Bank of England base rate
DELETE /admin/boe-base-ratesDelete a Bank of England base rate

1Password

Full schemas and try-it →

EndpointTierWhat it does
GET /integrations/onepassword1Password connection state
PUT /integrations/onepasswordConnect 1Password (save service-account token)
DELETE /integrations/onepasswordDisconnect 1Password
GET /integrations/onepassword/browse/vaultsList all vaults the token can read, for the Credentials browse area
GET /integrations/onepassword/browse/vaults/{vaultId}/itemsList secret-free item summaries for any vault the token can read
GET /integrations/onepassword/clients/{id}/itemsList a client's 1Password item titles (secret-free)
GET /integrations/onepassword/mappingsList vault-to-client mappings
PUT /integrations/onepassword/mappingsReplace vault-to-client mappings
POST /integrations/onepassword/revealReveal one item's fields (live fetch, audit-logged)
POST /integrations/onepassword/step-upRe-verify TOTP to unlock credential reveal for this session
GET /integrations/onepassword/vaultsList vaults visible to the service account (live)

Applications

Full schemas and try-it →

EndpointTierWhat it does
GET /agents/{agentID}/appsList application install/upgrade history for an agent
POST /agents/{agentID}/apps/installInstall applications on an agent
GET /agents/{agentID}/apps/install-statusGet the latest app install/upgrade progress
GET /agents/{agentID}/apps/inventoryList an agent's winget package inventory
POST /agents/{agentID}/apps/inventory/scanScan an agent's winget package inventory
POST /agents/{agentID}/apps/uninstallUninstall applications on an agent
POST /agents/{agentID}/apps/upgradeUpgrade applications on an agent
GET /apps/catalog/searchSearch the winget package catalog

Secure Share

Full schemas and try-it →

EndpointTierWhat it does
GET /secure-sharesList the org's secure shares
POST /secure-sharesMint a burn-after-read secret link
GET /secure-shares/public/{token}Peek a share's status (no burn)
POST /secure-shares/public/{token}/revealReveal a share (consumes one view)
GET /secure-shares/settingsGet the org's Secure Share defaults
PUT /secure-shares/settingsUpdate the org's Secure Share defaults
DELETE /secure-shares/{id}Revoke (burn) a secure share now

Ticket Conversations

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/tickets/{id}/conversationsList a ticket's third-party conversations
POST /psa/tickets/{id}/conversationsCreate a third-party conversation on a ticket
POST /psa/tickets/{id}/conversations/{convId}/messagesPost a message to a third-party conversation

Ticket Macros

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/ticket_macrosList ticket macros
POST /psa/ticket_macrosCreate a ticket macro
PATCH /psa/ticket_macros/{id}Update a ticket macro
DELETE /psa/ticket_macros/{id}Delete a ticket macro
POST /psa/tickets/{id}/macros/{macroId}/runRun a ticket macro against a ticket

Ticket Schedules

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/ticket_schedulesList recurring-ticket schedules
POST /psa/ticket_schedulesCreate a recurring-ticket schedule
PATCH /psa/ticket_schedules/{id}Update a recurring-ticket schedule
DELETE /psa/ticket_schedules/{id}Delete a recurring-ticket schedule
Was this helpful?

Related articles