Create a new system. Users can create systems for organizations they can manage based on hierarchical permissions. The organization_id must be specified in the request.
Body
Required
-
System name
-
Organization Logto ID to associate the system with (use the logto_id from organization responses)
-
Custom system data (optional)
-
Additional notes or description for the system (optional)
-
Optional. Attributes the new system's created_by display org to an ancestor org (a reseller or distributor) instead of the caller's own org — used when an upper tier creates a system on behalf of a lower one (e.g. bulk import). Honored only for owner or distributor callers, with the target within the caller's hierarchy. Display/audit only: system ownership and visibility stay governed by organization_id. Empty = attributed to the caller's organization. When set, the created_by snapshot in responses shows the attributed org and carries on_behalf_of: true.
-
Optional. Creation timestamp the system already has in an external source of record (e.g. a bulk import), used instead of the API call time. Honored only for owner or distributor callers; cannot be in the future.
-
Optional. Registration timestamp the system already has in an external source of record. The system is created already registered, so POST /api/systems/register is not needed (and would return 409). Honored only for owner or distributor callers; cannot be in the future or precede created_at.
curl \
--request POST 'https://collect.your-domain.com/api/systems' \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data '{"name":"Production Server 01","organization_id":"akkbs6x2wo82","custom_data":{"datacenter":"EU-West-1","environment":"production","tier":"web"},"notes":"Production web server for EU region","created_by_organization_id":"0lomt7qqpbue","created_at":"2019-03-18T12:20:53Z","registered_at":"2021-01-21T17:24:10Z"}'
{
"name": "Production Server 01",
"organization_id": "akkbs6x2wo82",
"custom_data": {
"datacenter": "EU-West-1",
"environment": "production",
"tier": "web"
},
"notes": "Production web server for EU region",
"created_by_organization_id": "0lomt7qqpbue",
"created_at": "2019-03-18T12:20:53Z",
"registered_at": "2021-01-21T17:24:10Z"
}
{
"code": 201,
"message": "system created successfully",
"data": {
"id": "4cf3053f-d0d5-4b10-b752-ff8f7b63c2f7",
"name": "Production Server 01",
"type": "nsec",
"status": "active",
"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": "4405ffd0-0aca-44ef-bae2-c8545bce94f4",
"logto_id": "akkbs6x2wo82",
"name": "ACME Corp",
"type": "customer"
},
"custom_data": {
"datacenter": "EU-West-1",
"environment": "production",
"tier": "web"
},
"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",
"username": "edoardo.super",
"name": "Edoardo Super",
"email": "edoardo.spadoni@nethesis.it",
"organization_id": "lbswt1rxdhbz",
"organization_name": "Nethesis Italia",
"on_behalf_of": true
},
"last_heartbeat": "2025-07-21T10:25:00Z",
"last_inventory": "2025-07-21T10:20:00Z",
"registered_at": "2025-11-06T10:30:00Z",
"suspended_at": "2025-11-10T14:00:00Z",
"suspended_by_org_id": "org_abc123",
"rebranding_enabled": true,
"rebranding_org_id": "org_dist001"
}
}
{
"code": 400,
"message": "validation failed",
"data": {
"type": "validation_error",
"errors": [
{
"key": "username",
"message": "required",
"value": "string"
}
]
}
}
{
"code": 401,
"message": "invalid token",
"data": {}
}
{
"code": 403,
"message": "insufficient permissions",
"data": {}
}