System inventory collection endpoint with HTTP Basic authentication
POST
/systems/inventory
curl \
--request POST 'https://collect.your-domain.com/api/systems/inventory' \
--user "username:password" \
--header "Content-Type: application/json" \
--data '"{\n \"$schema\": \"https://schema.nethserver.org/facts/2022-12.json\",\n \"uuid\": \"659d2fbe-792f-4a0d-ae58-f278304d4f7f\",\n \"installation\": \"nethserver\",\n \"facts\": {\n \"cluster\": {\n \"leader_node_id\": \"1\",\n \"user_domains\": [],\n \"subscription\": \"community\",\n \"ui_name\": \"MyNethServer 8\"\n },\n \"nodes\": {\n \"1\": {\n \"cluster_leader\": true,\n \"fqdn\": \"rl1.dp.nethserver.net\",\n \"default_ipv4\": \"165.22.17.26\",\n \"default_ipv6\": \"2a03:b0c0:3:f0:0:1:dbfe:3000\",\n \"version\": \"3.17.0-dev.6\",\n \"ui_name\": \"MyNodeRl1\"\n }\n },\n \"modules\": [\n {\n \"id\": \"mail1\",\n \"version\": \"1.7.4\",\n \"name\": \"mail\",\n \"node\": \"1\",\n \"ui_name\": \"MyMail\"\n }\n ]\n }\n}"'
Request example
{
"$schema": "https://schema.nethserver.org/facts/2022-12.json",
"uuid": "659d2fbe-792f-4a0d-ae58-f278304d4f7f",
"installation": "nethserver",
"facts": {
"cluster": {
"leader_node_id": "1",
"user_domains": [],
"subscription": "community",
"ui_name": "MyNethServer 8"
},
"nodes": {
"1": {
"cluster_leader": true,
"fqdn": "rl1.dp.nethserver.net",
"default_ipv4": "165.22.17.26",
"default_ipv6": "2a03:b0c0:3:f0:0:1:dbfe:3000",
"version": "3.17.0-dev.6",
"ui_name": "MyNodeRl1"
}
},
"modules": [
{
"id": "mail1",
"version": "1.7.4",
"name": "mail",
"node": "1",
"ui_name": "MyMail"
}
]
}
}
Response examples (202)
{
"code": 200,
"message": "Inventory received and queued for processing",
"data": {
"data_size": 10145,
"message": "Your inventory data has been received and will be processed shortly",
"queue_status": "queued",
"system_key": "NETH-4cf3053f-d0d5-4b10-b752-ff8f7b63c2f7",
"timestamp": "2025-07-16T15:46:51.571831+02:00"
}
}
Response examples (400)
{
"code": 400,
"message": "validation failed",
"data": {
"type": "validation_error",
"errors": [
{
"key": "username",
"message": "required",
"value": "string"
}
]
}
}
Response examples (401)
{
"code": 401,
"message": "invalid token",
"data": {}
}
Response examples (413)
{
"code": 413,
"message": "Request too large",
"data": {
"max_size_bytes": 10485760,
"received_bytes": 20971520
}
}
Response examples (500)
{
"code": 500,
"message": "Failed to process inventory",
"data": {
"error": "Processing queue unavailable"
}
}