Download OpenAPI specification:Download
HTTP API for the ServiceRadar platform, served by the ServiceRadar web
application (web-ng).
The API is JSON over HTTPS. Most endpoints require an authenticated request. There are two ways to authenticate:
Authorization: Bearer <token> header. Tokens are issued from the
ServiceRadar UI under Settings → API Credentials
(/settings/api-credentials).The data-plane endpoints under /api (for example /api/query and
/api/devices) accept either form of authentication. Some admin and
onboarding endpoints additionally accept an X-API-Key header.
See the published API Reference documentation page for an authentication walkthrough and SRQL query examples.
Executes a ServiceRadar Query Language (SRQL) query and returns the
result set. SRQL is read-only: only SELECT/WITH statements are
produced and executed.
Results are subject to the caller's authorization scope.
| query required | string The SRQL query to execute. |
| limit | integer Maximum number of rows to return. |
| cursor | string Opaque pagination cursor returned by a previous response. |
| direction | string Enum: "next" "prev" Pagination direction relative to the cursor. |
| mode | string Optional execution mode hint. |
{- "query": "show devices order by last_seen desc",
- "limit": 50
}{- "results": [
- null
], - "pagination": {
- "next_cursor": "string",
- "prev_cursor": "string",
- "limit": 0
}, - "viz": { },
- "error": "string"
}Returns a paginated list of devices from the inventory. Pagination is
offset based; use the next_offset value from the response to fetch
the next page.
| limit | integer <= 500 Default: 100 Maximum number of devices to return (default 100, max 500). |
| offset | integer Default: 0 Number of devices to skip for pagination (default 0). |
| search | string Free-text search across device identity fields. |
| status | string Enum: "online" "offline" Filter by availability status. |
| gateway_id | string Filter devices reported by a specific gateway. |
| device_type | string Filter by device type. |
{- "data": [
- {
- "uid": "string",
- "type_id": 0,
- "type": "string",
- "name": "string",
- "hostname": "string",
- "ip": "string",
- "mac": "string",
- "vendor_name": "string",
- "model": "string",
- "domain": "string",
- "zone": "string",
- "region": "string",
- "first_seen": "2019-08-24T14:15:22Z",
- "last_seen": "2019-08-24T14:15:22Z",
- "first_seen_time": "2019-08-24T14:15:22Z",
- "last_seen_time": "2019-08-24T14:15:22Z",
- "risk_level": "string",
- "risk_score": 0,
- "is_managed": true,
- "is_available": true,
- "gateway_id": "string",
- "agent_id": "string",
- "discovery_sources": [
- "string"
], - "os": { },
- "metadata": { }
}
], - "pagination": {
- "limit": 0,
- "offset": 0,
- "next_offset": 0
}
}Returns a single device identified by its OCSF uid.
| uid required | string The device's unique identifier (OCSF |
{- "data": {
- "uid": "string",
- "type_id": 0,
- "type": "string",
- "name": "string",
- "hostname": "string",
- "ip": "string",
- "mac": "string",
- "vendor_name": "string",
- "model": "string",
- "domain": "string",
- "zone": "string",
- "region": "string",
- "first_seen": "2019-08-24T14:15:22Z",
- "last_seen": "2019-08-24T14:15:22Z",
- "first_seen_time": "2019-08-24T14:15:22Z",
- "last_seen_time": "2019-08-24T14:15:22Z",
- "risk_level": "string",
- "risk_score": 0,
- "is_managed": true,
- "is_available": true,
- "gateway_id": "string",
- "agent_id": "string",
- "discovery_sources": [
- "string"
], - "os": { },
- "metadata": { }
}
}Exports devices as OCSF v1.7.0 Device objects
(Device Inventory Info, class UID 5001). Supports filtering by
device type, time range, and offset pagination.
| type_id | integer Filter by OCSF device |
| first_seen_after | string <date-time> Only include devices first seen after this ISO 8601 timestamp. |
| last_seen_after | string <date-time> Only include devices last seen after this ISO 8601 timestamp. |
| limit | integer <= 1000 Default: 100 Maximum number of devices to return (default 100, max 1000). |
| offset | integer Default: 0 Number of devices to skip for pagination (default 0). |
{- "ocsf_version": "1.7.0",
- "class_uid": 5001,
- "class_name": "Device Inventory Info",
- "devices": [
- { }
], - "count": 0,
- "pagination": {
- "limit": 0,
- "offset": 0,
- "next_offset": 0
}
}Returns the canonical sr: device UID at an address, without probing
the device. The IP is authoritative; an optional MAC corroborates it.
A MAC no device holds is ignored, and a MAC held by a different device
is reported as a conflict rather than used as a tiebreak. No identity
is ever created.
Composite check validation runs resolve identity too, but additionally re-probe the device from every vantage-point agent on a named check. Use this endpoint when you want the identifier and not the scan.
Requires the identity.resolve permission.
| ip required | string Example: ip=192.168.1.55 The address to resolve. |
| partition | string Default: "default" The partition to resolve within. Defaults to |
| mac | string Example: mac=aa:bb:cc:dd:ee:ff Optional MAC to corroborate the address. Ignored when no device holds it; a conflict when another device does. |
{- "data": {
- "ip": "192.168.1.55",
- "partition": "default",
- "uid": "sr:8cad4cc3-e9f8-4873-a1fe-cf2529b246a0"
}
}The batch form of the resolve endpoint, taking the same devices
shape composite check validation runs accept, with the same limit of
128 per request.
Returns 200 and reports each address separately: one address that
cannot be resolved does not fail the request, because a caller
resolving a long list still needs the entries that worked. Every entry
echoes the address it is for, so results can be matched to the request
without relying on ordering.
Requires the identity.resolve permission.
| partition | string Default: "default" Partition applied to every entry that does not name its own.
Defaults to |
required | Array of objects <= 128 items The addresses to resolve. At most 128. |
{- "partition": "default",
- "devices": [
- {
- "ip": "192.168.1.55",
- "mac": "string",
- "partition": "string"
}
]
}{- "data": [
- {
- "ip": "192.168.1.55",
- "partition": "default",
- "uid": "sr:8cad4cc3-e9f8-4873-a1fe-cf2529b246a0",
- "error": "not_found",
- "uids": [
- "string"
], - "ip_uid": "string",
- "mac_uid": "string"
}
]
}Lists user accounts. Requires admin privileges.
| limit | integer Default: 100 Maximum number of users to return (default 100). |
| role | string Filter by role. |
| status | string Filter by account status. |
[- {
- "id": "string",
- "email": "string",
- "display_name": "string",
- "role": "string",
- "role_profile_id": "string",
- "status": "string",
- "has_password": true,
- "has_external_id": true,
- "confirmed_at": "2019-08-24T14:15:22Z",
- "last_login_at": "2019-08-24T14:15:22Z",
- "last_auth_method": "string",
- "inserted_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]Creates a new user account. Requires admin privileges.
| email required | string |
| display_name | string |
| role | string |
| password | string Optional password for a local account. |
| role_profile_id | string Optional RBAC role profile to assign. |
{- "display_name": "Jane Doe",
- "role": "viewer",
- "password": "string",
- "role_profile_id": "string"
}{- "id": "string",
- "email": "string",
- "display_name": "string",
- "role": "string",
- "role_profile_id": "string",
- "status": "string",
- "has_password": true,
- "has_external_id": true,
- "confirmed_at": "2019-08-24T14:15:22Z",
- "last_login_at": "2019-08-24T14:15:22Z",
- "last_auth_method": "string",
- "inserted_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Returns a single user account by ID. Requires admin privileges.
| id required | string The user's unique identifier. |
{- "id": "string",
- "email": "string",
- "display_name": "string",
- "role": "string",
- "role_profile_id": "string",
- "status": "string",
- "has_password": true,
- "has_external_id": true,
- "confirmed_at": "2019-08-24T14:15:22Z",
- "last_login_at": "2019-08-24T14:15:22Z",
- "last_auth_method": "string",
- "inserted_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Updates a user account. Requires admin privileges.
| id required | string The user's unique identifier. |
| display_name | string |
| role | string |
| role_profile_id | string |
{- "display_name": "string",
- "role": "string",
- "role_profile_id": "string"
}{- "id": "string",
- "email": "string",
- "display_name": "string",
- "role": "string",
- "role_profile_id": "string",
- "status": "string",
- "has_password": true,
- "has_external_id": true,
- "confirmed_at": "2019-08-24T14:15:22Z",
- "last_login_at": "2019-08-24T14:15:22Z",
- "last_auth_method": "string",
- "inserted_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Returns the OpenAPI document generated from the running web
application for the admin API surface. Requires admin privileges.
A published copy is also available unauthenticated at
/api/docs/v1/admin/openapi.json.
{ }