Skip to content

Groups & Config Profiles

These endpoints are organization-scoped under /orgs/:orgId.

MethodPathDescription
GET/orgs/:orgId/groupsList groups with their effective device count
POST/orgs/:orgId/groupsCreate a group
DELETE/orgs/:orgId/groups/:idDelete a group
GET/orgs/:orgId/groups/:id/devicesList effective members (explicit + smart-tag)
POST/orgs/:orgId/groups/:id/membersAdd explicit members
DELETE/orgs/:orgId/groups/:id/members/:deviceIdRemove an explicit member
POST/orgs/:orgId/groups/:id/jobsDispatch a job to every member
POST /orgs/:orgId/groups
Content-Type: application/json
{
"name": "Site Alpha routers",
"smartTags": ["site-alpha"]
}

smartTags is optional; devices whose tags match are included automatically (subject to plan).

POST /orgs/:orgId/groups/:id/jobs
Content-Type: application/json
{
"kind": "apply_config"
}

Supported kind values include reboot, apply_config, and firmware_update. Each member device gets its own job; track them through the Jobs endpoints.

MethodPathDescription
GET/orgs/:orgId/configsList config profiles
POST/orgs/:orgId/configsCreate a config profile
PATCH/orgs/:orgId/configs/:idUpdate a config profile
DELETE/orgs/:orgId/configs/:idDelete a config profile
POST/orgs/:orgId/configs/:profileId/applyApply a profile to devices or a group
POST /orgs/:orgId/configs/:profileId/apply
Content-Type: application/json
{
"deviceIds": ["<uuid>", "<uuid>"]
}

Apply to a list of devices, or target a group. The response references the resulting jobs so you can follow each device to success or failure. Secret values in profiles are redacted when listed back.