/systems - List systems
Get list of systems visible to the user based on hierarchical organization permissions. Supports filtering by name, type, creator, version, organization, and status.
Query String Examples:
- Single type filter:
?type=nsec - Multiple types filter:
?type=nsec&type=ns8 - Multiple filters combined:
?type=nsec&status=online&status=deleted&version=8.0 - With pagination and sorting:
?page=1&page_size=50&sort_by=name&sort_direction=asc&type=nsec - Search with filters:
?search=backup&type=ns8&organization_id=org_abc123xyz - Creator filter (by user):
?created_by=53h5zxpwu4vc - Creator filter (by organization):
?created_by=lbswt1rxdhbz - Creator filter (multiple):
?created_by=53h5zxpwu4vc&created_by=lbswt1rxdhbz
Complete Example Request:
GET /api/systems?page=1&page_size=20&sort_by=created_at&sort_direction=desc&type=nsec&type=ns8&status=online&version=nsec:8.0&version=ns8:1.2.3&organization_id=org_abc123xyz
This retrieves systems that are:
- Type: nsec OR ns8
- Status: online
- Version: (nsec version 8.0) OR (ns8 version 1.2.3)
- Organization: org_abc123xyz
- Sorted by creation date (newest first)
- Page 1 with 20 items per page
Query parameters
-
Page number
Minimum value is
1. Default value is1. -
Items per page
Minimum value is
1, maximum value is100. Default value is20. -
Search term
Minimum length is
1. -
Field to sort systems by
Values are
name,type,status,fqdn,version,system_key,created_at,updated_at,creator_name, ororganization_name. -
Sort direction
Values are
ascordesc. Default value isasc. -
Filter systems by name (case-insensitive, partial match)
-
Filter systems by system key (exact match). Useful for exporting a single system.
-
Filter systems by type/product (exact match). Supports multiple values for checkbox filtering.
-
Filter systems by creator user ID or creator organization ID (exact match). Each provided ID is checked against both the user_id and organization_id fields of the system creator. Supports multiple values for checkbox filtering.
Examples:
?created_by=53h5zxpwu4vc- matches systems created by user with ID 53h5zxpwu4vc?created_by=lbswt1rxdhbz- matches systems created by users in organization lbswt1rxdhbz?created_by=53h5zxpwu4vc&created_by=lbswt1rxdhbz- matches systems created by the user OR by users in the organization
-
Filter systems by version using prefixed format
product:version(e.g.,nsec:8.0,ns8:1.2.3). The prefix prevents ambiguity when the same version number exists for multiple products. Supports multiple values for checkbox filtering.Example:
?version=nsec:8.0&version=ns8:1.2.3matches systems with (nsec version 8.0) OR (ns8 version 1.2.3)Backward compatibility: Non-prefixed versions (e.g.,
8.0) are still supported but may match multiple products. -
Filter systems by organization ID (exact match). Supports multiple values for checkbox filtering.
-
Filter systems by status (exact match). Supports multiple values for checkbox filtering.
Special value "deleted" shows soft-deleted systems (where deleted_at IS NOT NULL). When "deleted" is combined with other statuses, both deleted and non-deleted systems matching the other statuses are returned.
Values are
unknown,online,offline, ordeleted.
curl \
--request GET 'https://api.your-domain.com/api/systems' \
--header "Authorization: Bearer $ACCESS_TOKEN"
{
"code": 200,
"message": "systems retrieved successfully",
"data": {
"systems": [
{
"id": "4cf3053f-d0d5-4b10-b752-ff8f7b63c2f7",
"name": "Production Server 01",
"type": "nsec",
"status": "unknown",
"fqdn": "prod-web-01.example.com",
"ipv4_address": "192.168.1.100",
"ipv6_address": "2001:db8::1",
"version": "2.1.4",
"system_key": "ABC123DEF456",
"organization_id": "org_123456789",
"organization_name": "Acme Corporation",
"custom_data": {
"tier": "web",
"datacenter": "EU-West-1",
"environment": "production"
},
"system_secret": "my_a1b2c3d4e5f6g7h8i9j0.k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6a7b8c9d0",
"notes": "Production web server for EU region",
"created_at": "2025-07-01T09:00:00Z",
"updated_at": "2025-07-10T10:30:00Z",
"created_by": {
"user_id": "53h5zxpwu4vc",
"name": "Edoardo Super",
"email": "edoardo.spadoni@nethesis.it",
"organization_id": "lbswt1rxdhbz",
"organization_name": "Nethesis Italia"
},
"heartbeat_status": "alive",
"last_heartbeat": "2025-07-21T10:25:00Z",
"heartbeat_minutes": 5,
"registered_at": "2025-11-06T10:30:00Z"
}
],
"pagination": {
"page": 1,
"page_size": 20,
"total_count": 156,
"total_pages": 8,
"has_next": true,
"has_prev": false,
"next_page": 2,
"prev_page": 42,
"sort_by": "name",
"sort_direction": "asc"
}
}
}
{
"code": 401,
"message": "invalid token",
"data": {}
}
{
"code": 403,
"message": "insufficient permissions",
"data": {}
}