Skip to content

API endpoint reference

Every endpoint in the OpsMerge API, grouped by feature area. 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):

bash
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), beta endpoints are recent and may still change, and internal 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 /beta-invites/validateinternalPre-flight check a beta invite code
POST /beta-requestinternalSubmit a beta-tester application
POST /logininternalAuthenticate and obtain a bearer token
POST /logoutinternalInvalidate the current bearer token
POST /password/resetinternalComplete a password reset
POST /password/reset-requestinternalRequest a password-reset email
POST /signupinternalStart a self-serve signup
GET /signup/check-sluginternalCheck tenant slug availability
GET /signup/provision/status/{token}internalPoll tenant provisioning status
POST /signup/resendinternalResend the signup verification email
GET /signup/verifyinternalConsume the signup magic link

MFA

Multi-factor authentication (TOTP)

Full schemas and try-it →

EndpointTierWhat it does
POST /mfa/disableinternalDisable MFA for the current user
POST /mfa/logininternalComplete MFA login
POST /mfa/setupinternalBegin TOTP MFA setup
GET /mfa/statusinternalGet MFA status for the current user
POST /mfa/verify-setupinternalVerify a TOTP code to complete MFA setup

SSO

OpenID Connect Single Sign-On

Full schemas and try-it →

EndpointTierWhat it does
POST /sso/exchangeinternalExchange an SSO authorization code for a bearer token
GET /sso/providersinternalList SSO providers (admin)
POST /sso/providersinternalCreate an SSO provider
GET /sso/providers/publicinternalList enabled SSO providers for the login page
PUT /sso/providers/{id}internalUpdate an SSO provider
DELETE /sso/providers/{id}internalDelete an SSO provider
GET /sso/{providerID}/authorizeinternalInitiate SSO authorization (redirect to identity provider)
GET /sso/{providerID}/callbackinternalSSO callback from the identity 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 /organizationsinternalList all organizations (platform admin)
POST /organizationsinternalCreate an organization (platform admin)
GET /organizations/{id}internalGet an organization by ID (platform admin)
PUT /organizations/{id}internalUpdate 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-credsinternalRotate NATS credentials for every agent in the tenant
POST /agents/moveinternalMove agents to another site (bulk)
POST /agents/registerstableRegister a new agent (called by the agent binary)
GET /agents/{agentID}/forecastsinternalGet capacity forecasts for an agent
GET /agents/{agentID}/historyinternalGet unified activity history for an agent
POST /agents/{agentID}/log-levelinternalSet the agent's log level (optionally time-boxed)
PUT /agents/{agentID}/primary-contactinternalSet or clear the agent's primary contact
GET /agents/{agentID}/recent-usersinternalList 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-metricinternalGet 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-credsinternalRotate 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
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}/checksstableList check templates in a policy
POST /policies/{id}/checksstableAdd a check template to a 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}/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
PUT /alert-templates/{id}stableUpdate an alert template
DELETE /alert-templates/{id}stableDelete 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/notificationsinternalList curated PSA notifications
GET /psa/notifications/{system_key}internalGet one curated notification
PUT /psa/notifications/{system_key}internalUpdate a curated notification
GET /settings/notificationsinternalGet notification settings (SMTP, Twilio, Slack, Teams, Discord)
PUT /settings/notificationsinternalUpdate channel webhook defaults (Slack, Teams, Discord)
POST /settings/notifications/test/discordinternalSend a test notification to the default Discord webhook
POST /settings/notifications/test/slackinternalSend a test notification to the default Slack webhook
POST /settings/notifications/test/teamsinternalSend a test notification to the default Teams webhook
GET /settings/smtpinternalGet SMTP configuration
PUT /settings/smtpinternalUpdate SMTP configuration
POST /settings/smtp/testinternalSend a test email via SMTP

Reports

Report templates, data queries, generation, and scheduling

Full schemas and try-it →

EndpointTierWhat it does
GET /report-historyinternalList report generation history
GET /report-history/{id}internalGet one report history entry (with rendered HTML)
DELETE /report-history/{id}internalDelete a report history entry
GET /report-history/{id}/downloadinternalDownload a generated report
GET /report-queriesinternalList report data queries
POST /report-queriesinternalCreate a report data query
GET /report-queries/modelsinternalList queryable models and operators
POST /report-queries/testinternalTest an unsaved (draft) data query
GET /report-queries/{id}internalGet a report data query
PUT /report-queries/{id}internalUpdate a report data query
DELETE /report-queries/{id}internalDelete a report data query
POST /report-queries/{id}/duplicateinternalDuplicate a saved data query
POST /report-queries/{id}/testinternalTest a saved data query and return sample results
GET /report-schedulesinternalList report schedules
POST /report-schedulesinternalCreate a report schedule
GET /report-schedules/{id}internalGet a report schedule
PUT /report-schedules/{id}internalUpdate a report schedule
DELETE /report-schedules/{id}internalDelete a report schedule
POST /report-schedules/{id}/run-nowinternalRun a report schedule immediately
POST /report-schedules/{id}/test-sendinternalSend a test report to one address
GET /report-templatesinternalList report templates
POST /report-templatesinternalCreate a report template
POST /report-templates/importinternalImport a report template from an export envelope
GET /report-templates/{id}internalGet a report template
PUT /report-templates/{id}internalUpdate a report template
DELETE /report-templates/{id}internalDelete a report template
POST /report-templates/{id}/duplicateinternalDuplicate a report template
GET /report-templates/{id}/exportinternalExport a report template as JSON
POST /report-templates/{id}/previewinternalPreview a rendered report template
POST /report-templates/{id}/preview-datainternalPreview a template with live query data
POST /reports/{templateID}/generateinternalGenerate a report from a template

Files

Remote file browser (browse, download, upload)

Full schemas and try-it →

EndpointTierWhat it does
GET /agents/{agentID}/filesinternalBrowse files on an agent
DELETE /agents/{agentID}/filesinternalDelete a file or directory on an agent
POST /agents/{agentID}/files/copyinternalCopy a file on an agent
POST /agents/{agentID}/files/downloadinternalDownload a file from an agent
POST /agents/{agentID}/files/mkdirinternalCreate a directory on an agent
POST /agents/{agentID}/files/moveinternalMove a file on an agent
POST /agents/{agentID}/files/uploadinternalUpload a file to an agent

Software

Software inventory

Full schemas and try-it →

EndpointTierWhat it does
GET /agents/{agentID}/softwareinternalList installed software on an agent
POST /agents/{agentID}/software/scaninternalRun a software inventory scan on an agent
GET /softwareinternalList software across all agents (organization-wide)

CodeSigning

Agent binary signing and Authenticode certificates

Full schemas and try-it →

EndpointTierWhat it does
GET /platform/authenticodeinternalGet platform Authenticode certificate status
GET /settings/signing-keyinternalGet signing key status (public key only)
POST /settings/signing-keyinternalGenerate an Ed25519 signing key pair

Distribution

Agent version management, updates, and installer generation

Full schemas and try-it →

EndpointTierWhat it does
GET /agent-versionsinternalList uploaded agent versions
POST /agent-versions/uploadinternalUpload a signed agent binary
DELETE /agent-versions/{id}internalDelete an agent version
GET /agent-versions/{id}/downloadinternalDownload an agent binary (authenticated)
POST /agents/installerinternalGenerate a platform-specific installer script
POST /agents/updateinternalTrigger a fleet-wide agent update (staged rollout)
GET /agents/update-historyinternalGet agent update history
GET /agents/update-statusinternalGet agent version distribution

Security

Security settings, lockout management

Full schemas and try-it →

EndpointTierWhat it does
GET /settings/locked-accountsinternalList locked accounts
POST /settings/locked-accounts/{username}/unlockinternalUnlock a locked account
GET /settings/securityinternalGet security settings
PUT /settings/securityinternalUpdate security settings

CustomFields

Custom field definitions and values

Full schemas and try-it →

EndpointTierWhat it does
GET /agents/{id}/custom-fieldsinternalGet custom field values for an agent
PUT /agents/{id}/custom-fieldsinternalSet custom field values for an agent
GET /clients/{id}/custom-fieldsinternalGet custom field values for a client
PUT /clients/{id}/custom-fieldsinternalSet custom field values for a client
GET /custom-fieldsinternalList custom field definitions
POST /custom-fieldsinternalCreate a custom field definition
PUT /custom-fields/{id}internalUpdate a custom field definition
DELETE /custom-fields/{id}internalDelete a custom field definition
GET /sites/{id}/custom-fieldsinternalGet custom field values for a site
PUT /sites/{id}/custom-fieldsinternalSet custom field values for a site

Notes

Agent notes

Full schemas and try-it →

EndpointTierWhat it does
GET /agents/{id}/notesinternalList notes for an agent
POST /agents/{id}/notesinternalAdd a note to an agent
PUT /agents/{id}/notes/{noteID}internalUpdate an agent note
DELETE /agents/{id}/notes/{noteID}internalDelete an agent note

Audit

Audit log

Full schemas and try-it →

EndpointTierWhat it does
GET /audit-logsinternalList audit logs for the current tenant
GET /audit-logs/exportinternalExport 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/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}/mergestableMerge a ticket into another
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_templatesinternalList ticket templates
POST /psa/ticket_templatesinternalCreate a ticket template
PATCH /psa/ticket_templates/{id}internalUpdate a ticket template
DELETE /psa/ticket_templates/{id}internalDelete a ticket template

Canned Responses

Reusable reply snippets for ticket comments

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/canned_responsesinternalList canned responses
POST /psa/canned_responsesinternalCreate a canned response
PATCH /psa/canned_responses/{id}internalUpdate a canned response
DELETE /psa/canned_responses/{id}internalDelete a canned response
POST /psa/canned_responses/{id}/previewinternalPreview a rendered canned response

Saved Filters

Per-user saved list filters

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/saved_filtersinternalList saved filters
POST /psa/saved_filtersinternalCreate a saved filter
PATCH /psa/saved_filters/{id}internalUpdate a saved filter
DELETE /psa/saved_filters/{id}internalDelete 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
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
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}stableDelete 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-sendstableBulk-send invoices by email
GET /psa/billing/invoices/{id}stableGet invoice detail
PATCH /psa/billing/invoices/{id}stableUpdate invoice metadata (drafts only)
POST /psa/billing/invoices/{id}/freeagent-pushinternalRe-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-pushinternalRe-enqueue the QuickBooks Online push
POST /psa/billing/invoices/{id}/voidstableVoid an invoice
GET /psa/billing/runinternalBilling 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/lookupinternalLook up a company by number
GET /psa/billing/companies-house/searchinternalSearch Companies House
GET /psa/billing/invoice-brandinginternalGet invoice branding settings
PATCH /psa/billing/invoice-brandinginternalUpdate invoice branding settings
POST /psa/billing/invoice-branding/logointernalUpload the invoice logo
DELETE /psa/billing/invoice-branding/logointernalRemove the invoice logo
GET /psa/billing/invoice-branding/previewinternalPreview a sample invoice PDF
GET /psa/billing/invoice-numberinternalGet the next invoice number
PUT /psa/billing/invoice-numberinternalSet the next invoice number (forward-only)
GET /psa/billing/settingsinternalGet invoicing defaults
PUT /psa/billing/settingsinternalSave invoicing defaults
GET /psa/billing/tax-ratesstableList tax rates
POST /psa/billing/tax-ratesstableCreate a tax rate
GET /psa/billing/vat-settingsinternalGet VAT settings
PATCH /psa/billing/vat-settingsinternalUpdate 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
GET /kb/articlesstableList or search knowledge base articles
POST /kb/articlesstableCreate a knowledge base article
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

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}/dnsstableGet the current DNS snapshot
GET /domain-monitors/{id}/dns-securitystableGet the current DNS-security snapshot
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
GET /domain-monitors/{id}/sslstableGet the current SSL snapshot
GET /domain-monitors/{id}/whoisstableGet the current WHOIS snapshot

Agent Enrolment

Registration token lifecycle and installer downloads

Full schemas and try-it →

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

Quotes

PSA quotes, sections, items and lifecycle

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/quote-settingsbetaGet org-level quote settings
PATCH /psa/quote-settingsbetaUpdate org-level quote settings
GET /psa/quotesbetaList quotes
POST /psa/quotesbetaCreate a draft quote
GET /psa/quotes/{id}betaGet a quote with sections, items and signature
PATCH /psa/quotes/{id}betaUpdate a quote header
DELETE /psa/quotes/{id}betaDelete a draft quote
GET /psa/quotes/{id}/auditbetaList the audit trail for a quote
POST /psa/quotes/{id}/clear-needs-infobetaClear the needs_info flag on a quote
POST /psa/quotes/{id}/itemsbetaAdd a line item to a quote
PATCH /psa/quotes/{id}/items/{item_id}betaUpdate a quote line item
DELETE /psa/quotes/{id}/items/{item_id}betaDelete a quote line item
POST /psa/quotes/{id}/manual-acceptbetaManually mark a quote accepted
POST /psa/quotes/{id}/manual-declinebetaManually mark a quote declined
GET /psa/quotes/{id}/messagesbetaList the reply thread for a quote
POST /psa/quotes/{id}/messagesbetaSend a reply on the quote thread
GET /psa/quotes/{id}/pdfbetaDownload the quote PDF
POST /psa/quotes/{id}/revisebetaCreate a new revision of a quote
POST /psa/quotes/{id}/sectionsbetaAdd a section to a quote
PATCH /psa/quotes/{id}/sections/{section_id}betaUpdate a quote section
DELETE /psa/quotes/{id}/sections/{section_id}betaDelete a quote section
POST /psa/quotes/{id}/sendbetaSend (or resend) a quote to the customer
POST /psa/quotes/{id}/withdrawbetaWithdraw a quote

Quote Templates

Reusable quote templates and instantiation

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/quote-templatesbetaList quote templates
POST /psa/quote-templatesbetaCreate a quote template
GET /psa/quote-templates/{id}betaGet a quote template with sections and items
PATCH /psa/quote-templates/{id}betaUpdate a quote template
DELETE /psa/quote-templates/{id}betaDelete a quote template
POST /psa/quote-templates/{id}/instantiatebetaInstantiate a template into a new draft quote
POST /psa/quote-templates/{id}/itemsbetaAdd an item to a quote template
PATCH /psa/quote-templates/{id}/items/{item_id}betaUpdate a quote template item
DELETE /psa/quote-templates/{id}/items/{item_id}betaDelete a quote template item
POST /psa/quote-templates/{id}/sectionsbetaAdd a section to a quote template
PATCH /psa/quote-templates/{id}/sections/{section_id}betaUpdate a quote template section
DELETE /psa/quote-templates/{id}/sections/{section_id}betaDelete a quote template section

Quote Approval

Quote approval chains and decisions

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/quote-approval-chainsbetaList quote approval chains
POST /psa/quote-approval-chainsbetaCreate a quote approval chain
GET /psa/quote-approval-chains/{id}betaGet an approval chain with its steps
PATCH /psa/quote-approval-chains/{id}betaUpdate an approval chain
DELETE /psa/quote-approval-chains/{id}betaDelete an approval chain
POST /psa/quote-approval-chains/{id}/stepsbetaAdd a step to an approval chain
PATCH /psa/quote-approval-chains/{id}/steps/{step_id}betaUpdate an approval chain step
DELETE /psa/quote-approval-chains/{id}/steps/{step_id}betaDelete an approval chain step
GET /psa/quotes/{id}/approval-stepsbetaList the per-quote approval run state
POST /psa/quotes/{id}/approvebetaApprove a quote awaiting approval
POST /psa/quotes/{id}/rejectbetaReject a quote awaiting approval
POST /psa/quotes/{id}/submit-for-approvalbetaSubmit a draft quote for approval

Projects

PSA projects, phases, milestones, risks and approvals

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/projectsbetaList projects
POST /psa/projectsbetaCreate a project
POST /psa/projects/from-templatebetaInstantiate a project from a template
GET /psa/projects/portfoliobetaPortfolio rollup across all projects
GET /psa/projects/{id}betaGet a project with phases and milestones
PATCH /psa/projects/{id}betaUpdate a project
DELETE /psa/projects/{id}betaArchive a project
GET /psa/projects/{id}/approvalsbetaList approvals for a project
POST /psa/projects/{id}/approvalsbetaCreate an approval request
POST /psa/projects/{id}/approvals/{approval_id}/decidebetaDecide an approval
GET /psa/projects/{id}/burn-ratebetaProject burn-rate
GET /psa/projects/{id}/dependenciesbetaList task dependencies for a project
POST /psa/projects/{id}/dependenciesbetaCreate a task dependency
DELETE /psa/projects/{id}/dependencies/{dep_id}betaDelete a task dependency
POST /psa/projects/{id}/discovery/scanbetaRun a discovery scan
GET /psa/projects/{id}/milestonesbetaList milestones for a project
POST /psa/projects/{id}/milestonesbetaCreate a milestone
PATCH /psa/projects/{id}/milestones/{m_id}betaUpdate a milestone (may trigger billing)
DELETE /psa/projects/{id}/milestones/{m_id}betaDelete a milestone
GET /psa/projects/{id}/phasesbetaList phases for a project
POST /psa/projects/{id}/phasesbetaCreate a phase
PATCH /psa/projects/{id}/phases/reorderbetaReorder all phases
PATCH /psa/projects/{id}/phases/{phase_id}betaUpdate a phase
DELETE /psa/projects/{id}/phases/{phase_id}betaDelete a phase
GET /psa/projects/{id}/risksbetaList RAID entries for a project
POST /psa/projects/{id}/risksbetaCreate a RAID entry
PATCH /psa/projects/{id}/risks/{risk_id}betaUpdate a RAID entry
DELETE /psa/projects/{id}/risks/{risk_id}betaDelete a RAID entry
POST /psa/projects/{id}/shift-tasksbetaBulk-shift task due dates

Project Templates

Reusable project templates and versions

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/project-templatesbetaList project templates
POST /psa/project-templatesbetaCreate a project template
GET /psa/project-templates/available-varsbetaList template substitution variables
POST /psa/project-templates/import-samplesbetaImport the sample template catalogue
GET /psa/project-templates/{id}betaGet a project template with its current version
PATCH /psa/project-templates/{id}betaUpdate template metadata
DELETE /psa/project-templates/{id}betaArchive a project template
PUT /psa/project-templates/{id}/payloadbetaSave a new template payload version
GET /psa/project-templates/{id}/versionsbetaList template version history
GET /psa/project-templates/{id}/versions/{version}betaGet one template version

Products

Product catalogue and supplier SKU links

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/productsbetaList products
POST /psa/productsbetaCreate a product
GET /psa/products/{id}betaGet a product
PATCH /psa/products/{id}betaUpdate a product
DELETE /psa/products/{id}betaDelete a product
GET /psa/products/{id}/supplier-skusbetaList a product's supplier SKU links
POST /psa/products/{id}/supplier-skusbetaLink a supplier SKU to a product
DELETE /psa/products/{id}/supplier-skus/{link_id}betaUnlink a supplier SKU from a product

Catalogue

Cross-supplier catalogue search

Full schemas and try-it →

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

Suppliers

Suppliers and price-feed ingestion

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/suppliersbetaList suppliers
POST /psa/suppliersbetaCreate a supplier
GET /psa/suppliers/{id}betaGet a supplier
PATCH /psa/suppliers/{id}betaUpdate a supplier
DELETE /psa/suppliers/{id}betaDelete a supplier
GET /psa/suppliers/{id}/feedbetaList a supplier's feed items
POST /psa/suppliers/{id}/feed/ingestbetaIngest a previewed supplier CSV
GET /psa/suppliers/{id}/feed/mappingsbetaList a supplier's CSV mapping presets
POST /psa/suppliers/{id}/feed/mappingsbetaSave a CSV mapping preset
DELETE /psa/suppliers/{id}/feed/mappings/{mid}betaDelete a CSV mapping preset
POST /psa/suppliers/{id}/feed/previewbetaPreview a supplier CSV upload

Procurement

Procured item tracking

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/procured-itemsbetaList client procured items
POST /psa/procured-itemsbetaCreate a procured item
GET /psa/procured-items/{id}betaGet a procured item
PATCH /psa/procured-items/{id}betaUpdate a procured item
DELETE /psa/procured-items/{id}betaDelete a procured item

MDM

Mobile device management (beta, per-org flag)

Full schemas and try-it →

EndpointTierWhat it does
GET /mdm/connectionsbetaList MDM provider connections
POST /mdm/connections/{provider}/callbackbetaComplete the AMAPI enterprise binding (connect leg 2)
POST /mdm/connections/{provider}/connectbetaStart the AMAPI enterprise binding (connect leg 1)
POST /mdm/connections/{provider}/disconnectbetaDisconnect the MDM provider (DESTRUCTIVE)
POST /mdm/connections/{provider}/testbetaTest the MDM provider connection
GET /mdm/defaultsbetaGet hierarchy default policies
PUT /mdm/defaults/orgbetaSet the org default policy
PUT /mdm/defaults/site/{id}betaSet a site default policy
GET /mdm/devicesbetaList MDM devices
GET /mdm/devices/{id}betaGet an MDM device
POST /mdm/devices/{id}/clear-lostbetaClear lost mode (recovery)
GET /mdm/devices/{id}/commandsbetaList a device's command history
POST /mdm/devices/{id}/commandsbetaIssue a device command
PUT /mdm/devices/{id}/policybetaAssign a policy to a device
POST /mdm/devices/{id}/report-lostbetaReport a device lost
POST /mdm/enrolment-tokensbetaCreate a device enrolment token
POST /mdm/managed-play/web-tokenbetaMint a Managed Google Play web token
GET /mdm/policiesbetaList MDM policies
POST /mdm/policiesbetaCreate an MDM policy
GET /mdm/policies/{id}betaGet an MDM policy
PUT /mdm/policies/{id}betaUpdate an MDM policy
DELETE /mdm/policies/{id}betaDelete an MDM policy
POST /mdm/policies/{id}/pushbetaPush a policy to the provider
GET /organizations/{id}/mdm-enabledbetaGet an organization's MDM beta flag
PUT /organizations/{id}/mdm-enabledbetaSet an organization's MDM beta flag

CSAT

Customer satisfaction surveys and analytics

Full schemas and try-it →

EndpointTierWhat it does
GET /csat/{token}betaLoad a CSAT survey landing page
POST /csat/{token}betaSubmit a CSAT survey response
GET /psa/csat/aggregatebetaCSAT aggregate metrics
GET /psa/csat/responsesbetaList recent CSAT responses

Asset Groups

Smart asset groups with filter DSL

Full schemas and try-it →

EndpointTierWhat it does
GET /asset-groupsbetaList asset groups
POST /asset-groupsbetaCreate an asset group
GET /asset-groups/fieldsbetaList queryable criteria fields
POST /asset-groups/previewbetaPreview criteria without saving
POST /asset-groups/recompute-allbetaRecompute every asset group
GET /asset-groups/{id}betaGet an asset group
PUT /asset-groups/{id}betaUpdate an asset group
DELETE /asset-groups/{id}betaDelete an asset group
POST /asset-groups/{id}/clonebetaClone an asset group
GET /asset-groups/{id}/membersbetaList group members
POST /asset-groups/{id}/recomputebetaRecompute group membership now

Network Devices

SNMP network device inventory and polling

Full schemas and try-it →

EndpointTierWhat it does
GET /device-countsinternalGet 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-domainsinternalList a client's email domains
POST /clients/{clientID}/email-domainsinternalAdd an email domain to a client
DELETE /clients/{clientID}/email-domains/{id}internalRemove an email domain from a client
GET /psa/email/activityinternalList email activity
GET /psa/email/activity/summaryinternalEmail activity summary
GET /psa/email/activity/{id}internalGet email activity detail
GET /psa/email/blocklistinternalList blocklist entries
POST /psa/email/blocklistinternalAdd blocklist entry
DELETE /psa/email/blocklist/{id}internalRemove blocklist entry
GET /psa/email/domainsinternalGet outbound domain config (Haraka)
POST /psa/email/domainsinternalProvision outbound domain (Haraka)
POST /psa/email/domains/challengeinternalIssue domain ownership challenge
POST /psa/email/domains/challenge/verifyinternalVerify domain ownership challenge
PUT /psa/email/domains/{id}internalUpdate outbound domain (Haraka)
DELETE /psa/email/domains/{id}internalDelete outbound domain (Haraka)
POST /psa/email/domains/{id}/verifyinternalVerify outbound domain DNS (Haraka)
GET /psa/email/hyvor/domainsinternalList outbound domains (Hyvor)
POST /psa/email/hyvor/domainsinternalAdd outbound domain (Hyvor)
PATCH /psa/email/hyvor/domains/{id}internalUpdate outbound domain (Hyvor)
DELETE /psa/email/hyvor/domains/{id}internalRemove outbound domain (Hyvor)
POST /psa/email/hyvor/domains/{id}/primaryinternalSet primary outbound domain (Hyvor)
POST /psa/email/hyvor/domains/{id}/verifyinternalVerify outbound domain DNS (Hyvor)
GET /psa/email/hyvor/sendsinternalList sent messages (Hyvor delivery reporting)
GET /psa/email/hyvor/sends/{id}internalGet sent message detail (Hyvor delivery reporting)
GET /psa/email/inbound-mailboxesinternalList inbound mailboxes
POST /psa/email/inbound-mailboxesinternalCreate inbound mailbox
PUT /psa/email/inbound-mailboxes/{id}internalUpdate inbound mailbox
DELETE /psa/email/inbound-mailboxes/{id}internalDelete inbound 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/featuresinternalToggle AI features
PATCH /psa/settings/ai/rate-limitsinternalPatch AI per-feature daily rate limits
GET /psa/settings/ai/usageinternalList AI usage metering rows
GET /psa/settings/categoriesinternalList ticket categories
POST /psa/settings/categoriesinternalCreate a ticket category
PATCH /psa/settings/categories/{id}internalUpdate a ticket category
DELETE /psa/settings/categories/{id}internalDelete a ticket category
GET /psa/settings/categories/{id}/subtreeinternalList a category subtree
GET /psa/settings/priority-matrixinternalGet the 5x5 priority matrix
POST /psa/settings/priority-matrix/resetinternalReset the priority matrix
PUT /psa/settings/priority-matrix/{impact}/{urgency}internalUpsert a priority matrix cell
DELETE /psa/settings/priority-matrix/{impact}/{urgency}internalDelete a priority matrix cell
GET /psa/settings/sla-calendarsinternalList SLA calendars
POST /psa/settings/sla-calendarsinternalCreate an SLA calendar
GET /psa/settings/sla-calendars/{id}internalGet an SLA calendar
PATCH /psa/settings/sla-calendars/{id}internalUpdate an SLA calendar
DELETE /psa/settings/sla-calendars/{id}internalDelete an SLA calendar
GET /psa/settings/sla-plansinternalList SLA plans
POST /psa/settings/sla-plansinternalCreate an SLA plan
GET /psa/settings/sla-plans/resolveinternalResolve the SLA plan for a hypothetical ticket
GET /psa/settings/sla-plans/{id}internalGet an SLA plan
PATCH /psa/settings/sla-plans/{id}internalUpdate an SLA plan
DELETE /psa/settings/sla-plans/{id}internalDelete an SLA plan
GET /psa/settings/ticket-type-formsinternalList per-type ticket forms (merged view)
GET /psa/settings/ticket-type-forms/defaultsinternalList platform-default ticket forms
PUT /psa/settings/ticket-type-forms/{ticket_type}internalUpsert a tenant form override
DELETE /psa/settings/ticket-type-forms/{ticket_type}internalReset a form to the platform default
GET /psa/settings/ticketsinternalGet org-wide ticket settings
PUT /psa/settings/ticketsinternalUpdate org-wide ticket settings
GET /psa/statusinternalGet 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/rulesinternalList automation rules
POST /psa/rulesinternalCreate an automation rule
POST /psa/rules/dry-runinternalDry-run a rule definition
GET /psa/rules/{id}internalGet a rule
PATCH /psa/rules/{id}internalUpdate a rule
DELETE /psa/rules/{id}internalDelete a rule
GET /psa/rules/{id}/runsinternalList rule runs (audit history)

QuickBooks

QuickBooks Online accounting sync

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/integrations/qbointernalGet QuickBooks connection status
DELETE /psa/integrations/qbointernalDisconnect QuickBooks
POST /psa/integrations/qbo/authorizeinternalStart QuickBooks OAuth flow
POST /psa/integrations/qbo/callbackinternalComplete QuickBooks OAuth flow
POST /psa/integrations/qbo/create-from-localinternalPush a local entity to QuickBooks
POST /psa/integrations/qbo/link-localinternalLink a local entity to an existing QuickBooks entity
GET /psa/integrations/qbo/lookup-localinternalAutocomplete local map targets (QuickBooks)
GET /psa/integrations/qbo/pending-importsinternalList QuickBooks pending imports
PATCH /psa/integrations/qbo/pending-imports/{id}internalDecide a QuickBooks pending import
GET /psa/integrations/qbo/preferencesinternalGet QuickBooks preferences
PATCH /psa/integrations/qbo/preferencesinternalUpdate QuickBooks preferences
POST /psa/integrations/qbo/syncinternalTrigger a manual QuickBooks sync
GET /psa/integrations/qbo/sync-historyinternalList QuickBooks sync history
GET /psa/integrations/qbo/unmapped-localinternalList local entities unmapped to QuickBooks

FreeAgent

FreeAgent accounting sync

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/integrations/freeagentinternalGet FreeAgent connection status
DELETE /psa/integrations/freeagentinternalDisconnect FreeAgent
POST /psa/integrations/freeagent/authorizeinternalStart FreeAgent OAuth flow
GET /psa/integrations/freeagent/bank-accountsinternalList FreeAgent bank accounts
POST /psa/integrations/freeagent/callbackinternalComplete FreeAgent OAuth flow
POST /psa/integrations/freeagent/create-from-localinternalPush a local client to FreeAgent
GET /psa/integrations/freeagent/income-categoriesinternalList FreeAgent income categories
GET /psa/integrations/freeagent/lookup-localinternalAutocomplete local map targets (FreeAgent)
GET /psa/integrations/freeagent/pending-importsinternalList FreeAgent pending imports
PATCH /psa/integrations/freeagent/pending-imports/{id}internalDecide a FreeAgent pending import
GET /psa/integrations/freeagent/preferencesinternalGet FreeAgent preferences
PATCH /psa/integrations/freeagent/preferencesinternalUpdate FreeAgent preferences
POST /psa/integrations/freeagent/syncinternalTrigger a manual FreeAgent sync
GET /psa/integrations/freeagent/sync-historyinternalList FreeAgent sync history
GET /psa/integrations/freeagent/unmapped-localinternalList local entities unmapped to FreeAgent

Entra

Microsoft Entra contact sync

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/integrations/entrainternalGet Entra connection status
DELETE /psa/integrations/entrainternalDisconnect Entra
GET /psa/integrations/entra/authorizeinternalStart the Entra OAuth flow
GET /psa/integrations/entra/callbackinternalEntra OAuth callback
POST /psa/integrations/entra/connectinternalSave Entra app credentials
POST /psa/integrations/entra/syncinternalTrigger an Entra contact sync

Pax8

Pax8 marketplace sync

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/integrations/pax8internalGet Pax8 connection status
DELETE /psa/integrations/pax8internalDisconnect Pax8
POST /psa/integrations/pax8/connectinternalConnect Pax8
POST /psa/integrations/pax8/credentialsinternalRotate Pax8 credentials
GET /psa/integrations/pax8/linkedinternalList Pax8-linked clients
GET /psa/integrations/pax8/lookup-localinternalTypeahead lookup of local clients
GET /psa/integrations/pax8/pending-importsinternalList the Pax8 pending-imports queue
PATCH /psa/integrations/pax8/pending-imports/{id}internalDecide a Pax8 pending import
PATCH /psa/integrations/pax8/preferencesinternalUpdate Pax8 preferences
POST /psa/integrations/pax8/syncinternalTrigger a Pax8 sync now
GET /psa/integrations/pax8/sync-historyinternalList Pax8 sync history

CIPP

CIPP tenant mapping and sync

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/integrations/cippinternalGet CIPP connection status
DELETE /psa/integrations/cippinternalDisconnect CIPP
POST /psa/integrations/cipp/connectinternalConnect CIPP
POST /psa/integrations/cipp/syncinternalTrigger a CIPP contact sync
GET /psa/integrations/cipp/tenantsinternalList CIPP tenant mappings
POST /psa/integrations/cipp/tenants/auto-createinternalAuto-create clients for unmapped CIPP tenants
PUT /psa/integrations/cipp/tenants/{cippTenantId}/mapinternalMap a CIPP tenant to a client
POST /psa/integrations/cipp/tenants/{cippTenantId}/syncinternalSync one CIPP tenant now
GET /psa/integrations/cipp/unmapped-countinternalCount unmapped CIPP tenants

Distributors

Ingram, TD Synnex and Exertis supplier integrations

Full schemas and try-it →

EndpointTierWhat it does
GET /psa/integrations/exertisinternalGet Exertis connection
POST /psa/integrations/exertisinternalCreate or update the Exertis connection
DELETE /psa/integrations/exertisinternalDisconnect Exertis
POST /psa/integrations/exertis/cataloginternalPull the Exertis catalogue
POST /psa/integrations/exertis/testinternalTest the Exertis connection
GET /psa/integrations/ingraminternalGet Ingram Micro connection
POST /psa/integrations/ingraminternalCreate or update the Ingram Micro connection
DELETE /psa/integrations/ingraminternalDisconnect Ingram Micro
GET /psa/integrations/ingram/cataloginternalSearch the Ingram catalogue
POST /psa/integrations/ingram/painternalIngram price and availability lookup
POST /psa/integrations/ingram/testinternalTest the Ingram connection
GET /psa/integrations/tdsynnexinternalGet TD Synnex connection
POST /psa/integrations/tdsynnexinternalCreate or update the TD Synnex connection
DELETE /psa/integrations/tdsynnexinternalDisconnect TD Synnex
POST /psa/integrations/tdsynnex/painternalTD Synnex price and availability lookup
POST /psa/integrations/tdsynnex/testinternalTest 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/toggleinternalGet the per-client Bitdefender billing toggle
PUT /clients/{client_id}/bitdefender/toggleinternalSet the per-client Bitdefender billing toggle
GET /integrations/bitdefenderinternalGet Bitdefender connection status
DELETE /integrations/bitdefenderinternalDisconnect Bitdefender
GET /integrations/bitdefender/clients/{client_id}/endpointsinternalList Bitdefender endpoints for a client
GET /integrations/bitdefender/companiesinternalList provisioned Bitdefender companies
GET /integrations/bitdefender/companies/{client_id}internalGet the Bitdefender company for one client
POST /integrations/bitdefender/connectinternalConnect Bitdefender GravityZone
GET /integrations/bitdefender/costsinternalList Bitdefender module cost rows
PUT /integrations/bitdefender/costsinternalUpsert a Bitdefender module cost row
DELETE /integrations/bitdefender/costs/{module_key}internalDelete a Bitdefender module cost row
GET /integrations/bitdefender/defaultsinternalGet Bitdefender provisioning defaults
PUT /integrations/bitdefender/defaultsinternalSave Bitdefender provisioning defaults
GET /integrations/bitdefender/incidents/{incident_id}internalGet one Bitdefender incident
GET /integrations/bitdefender/policiesinternalList Bitdefender template policies
POST /integrations/bitdefender/provision/{client_id}internalProvision a Bitdefender company for one client
GET /integrations/bitdefender/push/healthinternalGet Bitdefender push delivery stats
POST /integrations/bitdefender/reconcileinternalRun Bitdefender billing reconciliation now
GET /integrations/bitdefender/reportsinternalList Bitdefender reports
GET /integrations/bitdefender/reports/{report_id}/downloadinternalGet Bitdefender report download links
POST /integrations/bitdefender/testinternalTest Bitdefender credentials
GET /integrations/bitdefender/usageinternalList Bitdefender usage snapshots
GET /integrations/bitdefender/usage/clients/{client_id}internalList 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/configinternalGet Dial 9 configuration
PUT /psa/billing/dial9/configinternalSave Dial 9 configuration
POST /psa/billing/dial9/invoices/{id}/append-linesinternalAppend Dial 9 telecom lines to a draft invoice
POST /psa/billing/dial9/keypairinternalGenerate a Dial 9 SFTP keypair
GET /psa/billing/dial9/numbersinternalList Dial 9 DID inventory
PATCH /psa/billing/dial9/numbers/{id}internalAssign a Dial 9 number
POST /psa/billing/dial9/peek-host-keyinternalPeek (and optionally pin) the Dial 9 SFTP host key
GET /psa/billing/dial9/quarantineinternalList open CDR quarantine rows
POST /psa/billing/dial9/quarantine/{id}/resolveinternalResolve a CDR quarantine row
POST /psa/billing/dial9/syncinternalTrigger a Dial 9 sync now
GET /psa/billing/dial9/tariffsinternalList Dial 9 tariffs
PATCH /psa/billing/dial9/tariffs/{id}internalSet a Dial 9 tariff markup override
GET /psa/billing/dial9/unitsinternalList Dial 9 units
PATCH /psa/billing/dial9/units/{id}internalAssign 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/billing/invoicesinternalList the contact's client invoices (portal)
GET /portal/billing/invoices/{id}internalGet invoice detail (portal)
GET /portal/billing/invoices/{id}/payinternalGet the pay-now URL for an invoice (portal)
GET /portal/billing/paymentsinternalList the contact's client payment history (portal)
GET /portal/brandinginternalGet portal branding (contact-facing)
GET /portal/documentsinternalList documents for a target (portal)
POST /portal/documents/confirm-uploadinternalConfirm a presigned document upload (portal)
POST /portal/documents/presigned-uploadinternalPresign a document upload (portal)
GET /portal/documents/quotainternalGet tenant document storage usage (portal)
DELETE /portal/documents/{id}internalDelete an own-uploaded document (portal)
GET /portal/documents/{id}/downloadinternalGet a presigned download URL for a document (portal)
GET /portal/kb/articlesinternalList or search knowledge base articles (portal)
GET /portal/kb/articles/{id}internalGet a knowledge base article (portal)
GET /portal/kb/categoriesinternalList knowledge base categories (portal)
GET /portal/selfinternalGet own portal profile
PATCH /portal/selfinternalUpdate own portal profile
POST /portal/self/change-passwordinternalChange own portal password
PUT /portal/self/notification-preferencesinternalReplace own notification preferences
GET /portal/ticketsinternalList own tickets (portal)
POST /portal/ticketsinternalCreate a ticket (portal)
GET /portal/tickets/{id}internalGet own ticket detail (portal)
GET /portal/tickets/{id}/attachments/{aid}/downloadinternalDownload a ticket attachment (portal)
POST /portal/tickets/{id}/closeinternalClose own resolved ticket (portal)
POST /portal/tickets/{id}/commentsinternalAdd a comment to own ticket (portal)
GET /public/invoice-refresh/{token}internalPreflight an invoice email refresh (public magic link)
POST /public/invoice-refresh/{token}internalRe-send the invoice email (public magic link)
GET /public/quotes/{token}internalView a quote (public magic link)
POST /public/quotes/{token}/acceptinternalAccept and sign a quote (public magic link)
POST /public/quotes/{token}/declineinternalDecline a quote (public magic link)
PATCH /public/quotes/{token}/items/{item_id}/optionalinternalToggle an optional quote line (public magic link)
GET /public/quotes/{token}/pdfinternalDownload the quote PDF (public magic link)

Portal Branding

Tenant portal branding administration

Full schemas and try-it →

EndpointTierWhat it does
GET /settings/portal-brandinginternalGet portal branding settings (MSP admin)
PUT /settings/portal-brandinginternalUpdate portal branding settings (MSP admin)
POST /settings/portal-branding/logointernalPresign a portal logo upload (MSP admin)
DELETE /settings/portal-branding/logointernalClear the portal logo (MSP admin)

Tray

System tray app configuration and self-service script runs

Full schemas and try-it →

EndpointTierWhat it does
PUT /agents/{agentID}/tray-enabledinternalToggle the tray app on a single agent
GET /tray-configsinternalList tray configs
POST /tray-configsinternalCreate a tray config
GET /tray-configs/resolve/{agentID}internalResolve the effective tray config for an agent
GET /tray-configs/{configID}/scriptsinternalList self-service scripts in a tray config
POST /tray-configs/{configID}/scriptsinternalAdd a script to a tray config catalogue
GET /tray-configs/{id}internalGet a tray config
PUT /tray-configs/{id}internalUpdate a tray config
DELETE /tray-configs/{id}internalDelete a tray config
GET /tray-notificationsinternalList tray notification history
POST /tray-notificationsinternalSend a tray notification
DELETE /tray-notifications/{id}internalDelete a tray notification record
PUT /tray-policy-scripts/{id}internalUpdate a self-service catalogue entry
DELETE /tray-policy-scripts/{id}internalRemove a self-service catalogue entry
GET /tray-script-runsinternalList tray self-service script runs
POST /tray-script-runs/{id}/approveinternalApprove a pending self-service run
POST /tray-script-runs/{id}/denyinternalDeny a pending self-service run

Virtualization

Hypervisor hosts and VM actions

Full schemas and try-it →

EndpointTierWhat it does
GET /virtualization/hostsinternalList virtualization hosts
GET /virtualization/hosts/{id}internalGet a virtualization host
GET /virtualization/hosts/{id}/vmsinternalList VMs on a host
GET /virtualization/vms/{id}internalGet a virtual machine
POST /virtualization/vms/{id}/actioninternalDispatch a VM lifecycle action
GET /virtualization/vms/{id}/statsinternalGet 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}/backupsinternalGet backup protection state for an agent
GET /backups/endpointsinternalList MSP360 backup endpoints
PUT /backups/endpoints/{id}/mapinternalMap an MSP360 endpoint to an agent
GET /backups/plansinternalList MSP360 backup plans
GET /integrations/msp360internalGet MSP360 connection status
DELETE /integrations/msp360internalDisconnect MSP360
POST /integrations/msp360/connectinternalConnect MSP360 (validate and store credentials)
PATCH /integrations/msp360/preferencesinternalUpdate MSP360 alert preferences
POST /integrations/msp360/syncinternalTrigger an immediate MSP360 sync

Endpoint Security

Per-agent endpoint security state

Full schemas and try-it →

EndpointTierWhat it does
GET /agents/{id}/bitdefenderinternalGet Bitdefender state for an agent
POST /agents/{id}/bitdefender/installinternalDispatch a Bitdefender install to an agent

Patches

Patch policies, scans and managed updates

Full schemas and try-it →

EndpointTierWhat it does
GET /agents/{agentID}/managed-updatesinternalGet managed-updates state for an agent
PUT /agents/{agentID}/managed-updatesinternalSet the agent-level managed-updates override
POST /agents/{agentID}/managed-updates/reapplyinternalForce re-push of the managed-updates control to an agent
GET /agents/{agentID}/patch-policyinternalGet the patch policy assigned to an agent
PUT /agents/{agentID}/patch-policyinternalAssign or clear the patch policy for an agent
GET /agents/{agentID}/patchesinternalGet patch install history for an agent
GET /agents/{agentID}/patches/availableinternalList cached available patches for an agent
POST /agents/{agentID}/patches/installinternalQueue patch installation on an agent
GET /agents/{agentID}/patches/install-statusinternalGet progress of the latest patch install job
POST /agents/{agentID}/patches/scaninternalRun a live patch scan on an agent
GET /clients/{clientID}/managed-updatesinternalGet managed-updates state for a client
PUT /clients/{clientID}/managed-updatesinternalSet the client-level managed-updates override
GET /clients/{clientID}/patch-policyinternalGet the patch policy assigned to a client
PUT /clients/{clientID}/patch-policyinternalAssign or clear the patch policy for a client
GET /organization/managed-updatesinternalGet org-wide managed-updates state and compliance summary
PUT /organization/managed-updatesinternalSet the org-wide managed-updates default
GET /organization/patch-auto-installinternalGet the org's auto-install safety valves
PUT /organization/patch-auto-installinternalUpdate the org's auto-install safety valves
GET /organization/patch-policyinternalGet the org-wide default patch policy
PUT /organization/patch-policyinternalAssign or clear the org-wide default patch policy
GET /patch-dispatch-loginternalList recent patch-dispatcher decisions
GET /patch-policiesinternalList patch policies
POST /patch-policiesinternalCreate a patch policy
GET /patch-policies/{id}internalGet a patch policy
PUT /patch-policies/{id}internalUpdate a patch policy
DELETE /patch-policies/{id}internalDelete a patch policy
GET /sites/{siteID}/managed-updatesinternalGet managed-updates state for a site
PUT /sites/{siteID}/managed-updatesinternalSet the site-level managed-updates override
GET /sites/{siteID}/patch-policyinternalGet the patch policy assigned to a site
PUT /sites/{siteID}/patch-policyinternalAssign 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
GET /agent-versions/currentinternalGet current agent version metadata (public)
GET /agent-versions/current/checksuminternalGet current agent binary checksum (public, text/plain)
GET /agent-versions/current/downloadinternalDownload the current agent binary (public)
HEAD /agent-versions/current/downloadinternalProbe the current agent binary download (public)
GET /agent-versions/{id}/public-downloadinternalDownload a specific agent version binary (public)
GET /agents/{agentID}/bitlocker-keysinternalReveal stored BitLocker recovery keys for an agent
GET /agents/{agentID}/eventloginternalQuery event logs on an agent (live)
GET /agents/{agentID}/processesinternalList running processes on an agent (live)
POST /agents/{agentID}/processes/{pid}/killinternalKill a process on an agent
GET /agents/{agentID}/registryinternalBrowse a Windows registry path on an agent
POST /agents/{agentID}/registryinternalCreate a registry key or value on an agent
PUT /agents/{agentID}/registryinternalModify a registry value on an agent
DELETE /agents/{agentID}/registryinternalDelete a registry key or value on an agent
GET /agents/{agentID}/servicesinternalList services on an agent (live)
POST /agents/{agentID}/services/{name}/actioninternalStart, stop, or restart a service on an agent
POST /agents/{agentID}/trigger-updateinternalTrigger a self-update check on a single agent
POST /agents/{id}/scheduled-rebootinternalSchedule a delayed reboot on an agent
POST /agents/{id}/shutdowninternalShut down an agent's endpoint
POST /agents/{id}/uninstallinternalUninstall an agent and delete its record
GET /settings/agent-powerinternalGet agent power action messages
PUT /settings/agent-powerinternalUpdate agent power action messages

Terminal

Remote terminal WebSocket

Full schemas and try-it →

EndpointTierWhat it does
GET /agents/{agentID}/terminalinternalOpen 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-desktopinternalOpen a remote-desktop WebSocket relay to an agent
GET /agents/{agentID}/rustdeskinternalGet RustDesk connection credentials for an agent
GET /agents/{agentID}/rustdesk-configinternalResolve the effective RustDesk config for an agent
GET /rustdesk-config/{scopeType}/{scopeID}internalGet the RustDesk config row for a scope
PUT /rustdesk-config/{scopeType}/{scopeID}internalUpsert the RustDesk config for a scope
DELETE /rustdesk-config/{scopeType}/{scopeID}internalDelete the RustDesk config row for a scope
GET /settings/rustdeskinternalGet RustDesk server settings and org approval defaults
PUT /settings/rustdeskinternalUpdate 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/scriptsinternalGenerate or improve a script with AI
POST /psa/ai/tickets/{ticket_id}/draft-replyinternalGenerate an AI draft reply
POST /psa/ai/tickets/{ticket_id}/sentimentinternalScore ticket sentiment
POST /psa/ai/tickets/{ticket_id}/suggest-categoryinternalSuggest ticket categories (AI)
POST /psa/ai/tickets/{ticket_id}/summaryinternalSummarise a ticket (AI)
GET /settings/aiinternalGet AI script-generation settings
PUT /settings/aiinternalUpdate AI script-generation settings

Chat

Technician-to-user chat sessions

Full schemas and try-it →

EndpointTierWhat it does
POST /agents/{agentID}/chat-inviteinternalInvite an end user to chat
GET /chat-sessions/{id}internalGet a chat session
POST /chat-sessions/{id}/closeinternalClose a chat session
POST /chat-sessions/{id}/messagesinternalSend a chat message
GET /chat-sessions/{id}/streaminternalStream chat session events (WebSocket)

Account

Own profile, preferences and auth tickets

Full schemas and try-it →

EndpointTierWhat it does
POST /auth/http-ticketinternalIssue a single-use HTTP iframe ticket
GET /auth/meinternalGet the authenticated user's profile
POST /auth/ws-ticketinternalIssue a single-use WebSocket auth ticket
POST /bug-reportsinternalSubmit a bug report
GET /dashboard/summaryinternalGet the dashboard summary
PATCH /users/meinternalUpdate the current user
GET /users/me/table-prefs/{key}internalGet table layout preferences
PUT /users/me/table-prefs/{key}internalSave table layout preferences

Platform Billing

OpsMerge subscription management (denied to API keys)

Full schemas and try-it →

EndpointTierWhat it does
POST /billing/portalinternalCreate a Stripe Customer Portal session
GET /billing/public-pricinginternalGet public subscription pricing (public)
POST /billing/tier-change/confirminternalConfirm a mid-cycle tier change
GET /billing/tier-change/previewinternalPreview a mid-cycle tier change
DELETE /billing/tier-change/scheduledinternalCancel a scheduled tier change
POST /billing/upgradeinternalCreate a Stripe Checkout session for upgrade

Webhooks (Inbound)

Third-party webhook receivers with per-provider authentication

Full schemas and try-it →

EndpointTierWhat it does
POST /integrations/bitdefender/pushinternalBitdefender push event webhook
POST /mdm/amapi/webhookinternalGoogle AMAPI Pub/Sub push webhook
POST /mdm/apple/checkininternalApple MDM CheckIn endpoint
POST /mdm/apple/serverinternalApple MDM CommandResults endpoint
GET /mdm/connect/amapi/redirectinternalAMAPI enterprise-signup callback redirect
POST /pax8/webhook/{token}internalPax8 webhook
POST /psa/billing/webhook/platforminternalStripe platform billing webhook
POST /psa/email/hyvor/webhookinternalHyvor Relay delivery webhook
POST /psa/email/webhookinternalHaraka inbound email webhook
POST /qbo/webhookinternalQuickBooks Online webhook
POST /webhooks/threatdown/{secret}internalThreatDown OneView webhook

ThreatDown

ThreatDown/Malwarebytes OneView integration

Full schemas and try-it →

EndpointTierWhat it does
GET /agents/{id}/threatdowninternalGet the agent's ThreatDown endpoint state
GET /agents/{id}/threatdown/detectionsinternalList ThreatDown detections for an agent
POST /agents/{id}/threatdown/detections/{detectionID}/ackinternalAcknowledge a ThreatDown detection
POST /agents/{id}/threatdown/installinternalInstall the ThreatDown agent on an endpoint
GET /agents/{id}/threatdown/jobs/{jobID}internalPoll the status of a ThreatDown scan job
GET /clients/{id}/threatdowninternalGet the client's ThreatDown configuration
PUT /clients/{id}/threatdowninternalUpdate the client's ThreatDown configuration
POST /clients/{id}/threatdown/create-siteinternalCreate a OneView site for the client
POST /clients/{id}/threatdown/matchinternalAuto-match the client to a OneView site by name
GET /clients/{id}/threatdown/subscriptioninternalGet the client's OneView site subscription
POST /clients/{id}/threatdown/subscriptioninternalAssign an initial subscription to the client's site
PUT /clients/{id}/threatdown/subscriptioninternalReplace the full subscription list on the client's site
POST /clients/{id}/threatdown/subscription/extend-trialinternalExtend the trial subscription on the client's site
GET /settings/threatdowninternalGet org ThreatDown (OneView) settings
PUT /settings/threatdowninternalUpdate org ThreatDown settings
POST /threatdown/detections/ack-bulkinternalAcknowledge multiple ThreatDown detections
GET /threatdown/detections/unackedinternalList unacknowledged ThreatDown detections (org-wide)
PUT /threatdown/endpoints/{id}/linkinternalLink or unlink a ThreatDown endpoint to an RMM agent
POST /threatdown/rematch-unmatchedinternalRe-run agent matching for unmatched ThreatDown endpoints
POST /threatdown/scan/{agentID}internalTrigger a ThreatDown threat scan on an agent
GET /threatdown/sitesinternalList OneView sites available to the org
GET /threatdown/subscriptions/availabilityinternalGet OneView subscription availability
GET /threatdown/subscriptions/reportinternalGet the OneView subscriptions usage report
POST /threatdown/syncinternalRun a full ThreatDown sync now
GET /threatdown/unmatchedinternalList ThreatDown endpoints with no linked agent

Triggers

Event trigger configuration

Full schemas and try-it →

EndpointTierWhat it does
GET /triggersinternalList automation triggers
POST /triggersinternalCreate a trigger
GET /triggers/{id}internalGet a trigger
PUT /triggers/{id}internalUpdate a trigger
DELETE /triggers/{id}internalDelete a trigger
GET /triggers/{id}/historyinternalList a trigger's execution history
POST /triggers/{id}/testinternalTest-fire a trigger

Compliance

Compliance scores and retention policies

Full schemas and try-it →

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

Anomaly Detection

Anomaly detection findings and config

Full schemas and try-it →

EndpointTierWhat it does
GET /anomaly/eventsinternalList anomaly events
GET /anomaly/settingsinternalList anomaly detection settings
PUT /anomaly/settings/{checkType}internalUpdate anomaly settings for one check type
GET /anomaly/timelineinternalGet 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-ratesinternalList Bank of England base rates
POST /admin/boe-base-ratesinternalUpsert a Bank of England base rate
DELETE /admin/boe-base-ratesinternalDelete a Bank of England base rate

OpsMerge is a product of Brindleford Technologies Ltd, company number 16871436, registered in England and Wales.