API Endpoints

Complete REST API reference. All endpoints require a Bearer token unless noted otherwise.

Base URL: https://api.maxrmm.com/api

All requests must include Authorization: Bearer <access-token> unless marked as public.


Authentication

See API Authentication for detailed flow.

MethodEndpointDescription
POST/auth/loginLogin with email + password. Returns tokens or MFA challenge.
POST/auth/mfa-verifySubmit TOTP code to complete MFA login.
POST/auth/refreshExchange a refresh token for new access + refresh tokens.

Agents

MethodEndpointDescription
GET/agentsList all agents for the company. Returns hostname, status, OS, hardware, AV status, compliance, and more.
GET/agents/:idGet full agent detail including software inventory and winget status.
POST/agentsProvision a new agent. Body: {"hostname": "..."}. Returns agent ID and one-time auth token.
GET/agents/:id/telemetryTelemetry history. Query: ?hours=24. Returns CPU, RAM, disk, uptime, AV, WAN IP over time.
GET/agents/:id/alertsUnresolved alerts for this agent (max 50).
GET/agents/:id/security-scoreSecurity score + history. Query: ?days=7.
GET/agents/:id/compliance-bridgeCompliance framework mapping for all security checks on this agent.
POST/agents/:id/commandSend a command to the agent. Body: {"type": "patch-scan", "payload": {}}.

Install Keys

MethodEndpointDescription
GET/install-keysList all install keys for the company.
POST/install-keysCreate a new install key. Body: {"name": "...", "maxUses": 100, "expiresAt": "..."}.
DELETE/install-keys/:idRevoke (disable) an install key.
GET/install-keys/:id/scriptGenerate a PowerShell install script for this key. Returns plain text.
POST/install-keys/:id/sendEmail the install script link. Body: {"emails": ["user@company.com"]}.

Alerts

MethodEndpointDescription
GET/alertsList alerts. Query: ?status=open|resolved|all&severity=critical&agentId=...&limit=100.
GET/alerts/:idGet alert detail with agent info and linked ticket.
PUT/alerts/:id/acknowledgeAcknowledge an alert (marks as seen).
PUT/alerts/:id/resolveResolve an alert.
PUT/alerts/maintenanceToggle maintenance mode. Body: {"enabled": true, "durationMinutes": 60}.
PUT/alerts/snooze/:agentIdSnooze alerts for an agent. Body: {"durationMinutes": 120}.

Alert Rules

Requires admin role.

MethodEndpointDescription
GET/alert-rulesList all alert rules.
POST/alert-rulesCreate a rule. Body: {"category": "cpu", "condition": "above", "threshold": 90, "severity": "warning"}.
PUT/alert-rules/:idUpdate a rule.
DELETE/alert-rules/:idDelete a rule.

Patches

MethodEndpointDescription
GET/patches/complianceCompliance overview with per-agent status and fleet summary.
GET/patches/historyPatch event history. Query: ?agentId=...&limit=100.
GET/patches/policyGet patch policy (auto-approve settings + maintenance window).
PUT/patches/policyUpdate patch policy. Admin only.
GET/patches/winget-policyGet winget application update policy.
PUT/patches/winget-policyUpdate winget policy. Admin only.
POST/patches/scanTrigger a patch scan. Optional body: {"agentIds": [...]}. Admin only.
POST/patches/installTrigger patch installation. Optional body: {"agentIds": [...]}. Admin only.

Scripts

MethodEndpointDescription
GET/scriptsList scripts (company + global). Query: ?category=...&language=powershell.
GET/scripts/:idGet script detail including body.
POST/scriptsCreate a script. Body: {"name": "...", "language": "powershell", "body": "...", "category": "..."}.
PUT/scripts/:idUpdate a script (company scripts only; global scripts are read-only).
DELETE/scripts/:idDelete a script (company scripts only).

Scheduled Scripts

Requires admin role.

MethodEndpointDescription
GET/scheduled-scriptsList scheduled scripts.
POST/scheduled-scriptsCreate a schedule. Body: {"name": "...", "scriptId": "...", "cron": "0 2 * * *", "agentFilter": null}.
PUT/scheduled-scripts/:idUpdate a schedule.
DELETE/scheduled-scripts/:idDelete a schedule.

Event Triggers

Requires admin role.

MethodEndpointDescription
GET/event-triggersList event triggers with linked scripts.
POST/event-triggersCreate a trigger. Body: {"name": "...", "alertCategory": "service", "scriptId": "...", "cooldownMin": 60}.
PUT/event-triggers/:idUpdate a trigger.
DELETE/event-triggers/:idDelete a trigger.

Workflows

Requires admin role.

MethodEndpointDescription
GET/workflowsList workflows.
GET/workflows/:idGet workflow detail including nodes and edges.
POST/workflowsCreate a workflow. Body: {"name": "...", "trigger": {}, "nodes": [], "edges": []}.
PUT/workflows/:idUpdate a workflow.
DELETE/workflows/:idDelete a workflow.

Tickets

MethodEndpointDescription
GET/ticketsList tickets. Query: ?status=open&assignedTo=...&priority=high&limit=50.
GET/tickets/:idGet ticket detail with comments, time entries, linked agent, and alert.
POST/ticketsCreate a ticket. Body: {"title": "...", "priority": "medium", "agentId": "..."}.
PUT/tickets/:idUpdate a ticket (status, priority, assignedTo, title, description).
POST/tickets/:id/commentsAdd a comment. Body: {"body": "...", "internal": false}.
POST/tickets/:id/timeLog time. Body: {"minutes": 30, "description": "...", "billable": true}.

SLA

MethodEndpointDescription
GET/slaGet SLA policy (response and resolution times by priority).
PUT/slaUpdate SLA policy.
GET/sla/breachesList tickets that have breached SLA targets.

Reports

MethodEndpointDescription
GET/reports/availableList available report types.
GET/reports/agent-inventoryDownload agent inventory report. Query: ?format=csv|pdf.
GET/reports/alert-summaryDownload alert summary report. Query: ?format=csv|pdf.

Scheduled Reports

Requires admin role.

MethodEndpointDescription
GET/scheduled-reportsList scheduled reports.
POST/scheduled-reportsCreate a scheduled report.
PUT/scheduled-reports/:idUpdate a scheduled report.
DELETE/scheduled-reports/:idDelete a scheduled report.

Integrations

MethodEndpointDescription
GET/integrations/catalogBrowse available integrations. Query: ?category=notification.
GET/integrations/installedList installed integrations for your company.
POST/integrations/install/:catalogIdInstall an integration. Admin only.
PUT/integrations/installed/:idUpdate integration config or toggle. Admin only.
DELETE/integrations/installed/:idUninstall an integration. Admin only.

Notification Integrations

MethodEndpointDescription
GET/integration-configList notification integrations (Slack, Teams, etc.).
POST/integration-configAdd a notification integration. Body: {"slug": "slack", "config": {"webhookUrl": "..."}}.
PUT/integration-config/:idUpdate config or toggle enabled.
DELETE/integration-config/:idRemove a notification integration.
POST/integration-config/:id/testSend a test notification.

Webhooks

Requires admin role.

MethodEndpointDescription
GET/webhooksList webhook endpoints.
POST/webhooksCreate a webhook. Body: {"url": "...", "events": ["alert.fired", "agent.offline"]}. Returns signing secret on creation.
PUT/webhooks/:idUpdate a webhook.
DELETE/webhooks/:idDelete a webhook.

Webhook Events

EventDescription
alert.firedA new alert was created
alert.resolvedAn alert was resolved
agent.onlineAn agent connected
agent.offlineAn agent disconnected
ticket.createdA new ticket was created
ticket.updatedA ticket was updated
script.completedA script execution finished
*Subscribe to all events