Skip to content

API Overview

Base URL

https://breeze.yourdomain.com/api/v1

Authentication

All API requests (except enrollment and health) require a JWT bearer token:

Terminal window
curl -H "Authorization: Bearer $TOKEN" \
https://breeze.yourdomain.com/api/v1/devices

Login

Terminal window
curl -X POST https://breeze.yourdomain.com/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{"email": "admin@example.com", "password": "..."}'
# Response:
# { "accessToken": "eyJ...", "refreshToken": "..." }

Refresh Token

Terminal window
curl -X POST https://breeze.yourdomain.com/api/v1/auth/refresh \
-H "Content-Type: application/json" \
-d '{"refreshToken": "..."}'

Core Endpoints

Devices

MethodPathDescription
GET/devicesList all devices (paginated)
GET/devices/:idGet device details
POST/devices/:id/commandsSend command to device
DELETE/devices/:idDecommission device

Organizations

MethodPathDescription
GET/organizationsList organizations
POST/organizationsCreate organization
GET/organizations/:idGet organization details
PATCH/organizations/:idUpdate organization

Sites

MethodPathDescription
GET/sitesList sites
POST/sitesCreate site
GET/sites/:idGet site details

Scripts

MethodPathDescription
GET/scriptsList scripts
POST/scriptsCreate script
POST/scripts/:id/executeExecute script on device(s)

Alerts

MethodPathDescription
GET/alertsList alerts
POST/alerts/:id/acknowledgeAcknowledge alert
POST/alerts/:id/resolveResolve alert

Users

MethodPathDescription
GET/usersList users
POST/users/inviteInvite user
PATCH/users/:idUpdate user

Audit Logs

MethodPathDescription
GET/auditQuery audit logs
GET/audit/exportExport audit logs (CSV)

Agent Enrollment

MethodPathAuthDescription
POST/agents/enrollEnrollment secretEnroll new device
GET/agents/download/:os/:archNoneDownload agent binary

Pagination

List endpoints support cursor-based pagination:

Terminal window
curl "https://breeze.yourdomain.com/api/v1/devices?limit=50&cursor=eyJ..."

Response:

{
"data": [...],
"pagination": {
"hasMore": true,
"cursor": "eyJ..."
}
}

Error Format

All errors follow a consistent format:

{
"error": {
"code": "VALIDATION_ERROR",
"message": "Invalid email address",
"details": [...]
}
}