Network devices
Hosts found by RMM network probes with their findings, and network kit (UniFi) from connectors: polling and firmware upgrades.
| Method | Path | Summary |
|---|---|---|
| GET | /api/network | Scoped by the probe that saw a host: with a site/group picked, only that site's probes, their hosts and findings |
| POST | /api/network/scan | Scan network hosts now |
| POST | /api/network/findings/status | Accept or dismiss network findings |
| GET | /api/network/kit | Connectors are set up in BRM-Admin → Warden → Network integrations |
| POST | /api/network/kit/:id/poll | Refresh a network device now |
| POST | /api/network/kit/upgrade | Firmware upgrades: { connector_id, device_ids, when (ISO time, or empty for now) } |
| DELETE | /api/network/kit/jobs/:id | Cancel a firmware upgrade |
#Scoped by the probe that saw a host: with a site/group picked, only that site's probes, their hosts and findings
GET
/api/network- Address
https://<your-org>.brambleit.cloud/warden/api/network- Requires
- Signed-in browser session (the
sso_session/session_idcookies from Bramble sign-in).
Licence: Warden.
Response 200
| Field | Type | Description |
|---|---|---|
enabled | boolean | |
hour | integer | |
probes | array of any | |
runs | array of any | |
hosts | array of object | |
hosts[].id | integer | |
hosts[].tenant_id | integer | |
hosts[].ip | string | |
hosts[].mac | string, or null | |
hosts[].vendor | string, or null | |
hosts[].hostname | string, or null | |
hosts[].os_guess | string, or null | |
hosts[].probe_device_id | string, or null | |
hosts[].first_seen | string (date-time), or null | |
hosts[].last_seen | string (date-time), or null | |
hosts[].last_run_id | integer, or null | |
hosts[].rmm | any | |
hosts[].services | array of any | |
hosts[].findings | integer | |
findings | array of object | |
findings[].id | integer | |
findings[].tenant_id | integer | |
findings[].ip | string | |
findings[].port | integer | |
findings[].check_key | string | |
findings[].severity | string: "critical" | "high" | "medium" | "low" | |
findings[].title | string | |
findings[].detail | string, or null | |
findings[].status | string: "open" | "resolved" | "accepted" | |
findings[].status_note | string, or null | |
findings[].status_by | string, or null | |
findings[].first_seen | string (date-time), or null | |
findings[].last_seen | string (date-time), or null | |
findings[].resolved_at | string (date-time), or null | |
findings[].host | any | |
counts | object | |
counts.hosts | integer | |
counts.services | integer | |
counts.accepted | integer |
Example response
JSON
{
"enabled": true,
"hour": 1,
"probes": [],
"runs": [],
"hosts": [
{
"id": 42,
"tenant_id": 1,
"ip": "192.0.2.10",
"mac": "string",
"vendor": "string",
"hostname": "office-pc-01",
"os_guess": "string",
"probe_device_id": "string",
"first_seen": "2026-11-12T09:30:00.000Z",
"last_seen": "2026-11-12T09:30:00.000Z",
"last_run_id": 7,
"rmm": null,
"services": [],
"findings": 1
}
],
"findings": [
{
"id": 42,
"tenant_id": 1,
"ip": "192.0.2.10",
"port": 1,
"check_key": "…",
"severity": "critical",
"title": "Example title",
"detail": "string",
"status": "open",
"status_note": "active",
"status_by": "active",
"first_seen": "2026-11-12T09:30:00.000Z",
"last_seen": "2026-11-12T09:30:00.000Z",
"resolved_at": "2026-11-12T09:30:00.000Z",
"host": null
}
],
"counts": {
"hosts": 1,
"services": 1,
"…Object.fromEntries(SEVS.": "…",
"accepted": 1
}
}Example request
JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/warden/api/network', {
method: 'GET',
credentials: 'include',
});
const data = await res.json();#Scan network hosts now
POST
/api/network/scan- Address
https://<your-org>.brambleit.cloud/warden/api/network/scan- Requires
- Signed-in browser session (the
sso_session/session_idcookies from Bramble sign-in).
Licence: Warden.
Response 201
Example request
JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/warden/api/network/scan', {
method: 'POST',
credentials: 'include',
});
const data = await res.json();#Accept or dismiss network findings
POST
/api/network/findings/status- Address
https://<your-org>.brambleit.cloud/warden/api/network/findings/status- Requires
- Signed-in browser session (the
sso_session/session_idcookies from Bramble sign-in).
Licence: Warden.
Request body JSON
| Name | Type | Description |
|---|---|---|
ids | array of any | |
status | string | |
note | string |
Response 200
| Field | Type | Description |
|---|---|---|
updated | integer |
Example response
JSON
{
"updated": 1
}Example request
JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/warden/api/network/findings/status', {
method: 'POST',
credentials: 'include',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({"ids":[],"status":"active","note":"string"}),
});
const data = await res.json();#Connectors are set up in BRM-Admin → Warden → Network integrations
GET
/api/network/kit- Address
https://<your-org>.brambleit.cloud/warden/api/network/kit- Requires
- Signed-in browser session (the
sso_session/session_idcookies from Bramble sign-in).
Licence: Warden.
Response 200
Example request
JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/warden/api/network/kit', {
method: 'GET',
credentials: 'include',
});
const data = await res.json();#Refresh a network device now
POST
/api/network/kit/:id/poll- Address
https://<your-org>.brambleit.cloud/warden/api/network/kit/:id/poll- Requires
- Signed-in browser session (the
sso_session/session_idcookies from Bramble sign-in).
Licence: Warden.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | number |
Response 202
| Field | Type | Description |
|---|---|---|
message | string |
Example response
JSON
{
"message": "Saved"
}Errors
| Status | Message |
|---|---|
| 404 | Integration not found |
Example request
JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/warden/api/network/kit/12.5/poll', {
method: 'POST',
credentials: 'include',
});
const data = await res.json();#Firmware upgrades: { connector_id, device_ids, when (ISO time, or empty for now) }
POST
/api/network/kit/upgrade- Address
https://<your-org>.brambleit.cloud/warden/api/network/kit/upgrade- Requires
- Signed-in browser session (the
sso_session/session_idcookies from Bramble sign-in).
Licence: Warden.
Request body JSON
| Name | Type | Description |
|---|---|---|
connector_id | integer | |
device_ids | array of any | |
when | any |
Response 201
| Field | Type | Description |
|---|---|---|
message | string |
Example response
JSON
{
"…r": "…",
"message": "Saved"
}Example request
JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/warden/api/network/kit/upgrade', {
method: 'POST',
credentials: 'include',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({"connector_id":7,"device_ids":[],"when":"…"}),
});
const data = await res.json();#Cancel a firmware upgrade
DELETE
/api/network/kit/jobs/:id- Address
https://<your-org>.brambleit.cloud/warden/api/network/kit/jobs/:id- Requires
- Signed-in browser session (the
sso_session/session_idcookies from Bramble sign-in).
Licence: Warden.
Path parameters
| Name | Type | Description |
|---|---|---|
idrequired | number |
Response 200
| Field | Type | Description |
|---|---|---|
message | string |
Example response
JSON
{
"message": "Saved"
}Errors
| Status | Message |
|---|---|
| 409 | Only a scheduled upgrade that hasn't started can be cancelled |
Example request
JavaScript
// From a page served by Bramble (uses the signed-in session)
const res = await fetch('/warden/api/network/kit/jobs/12.5', {
method: 'DELETE',
credentials: 'include',
});
const data = await res.json();Was this page helpful?
Thanks for your feedback.