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 '{"uuid":"659d2fbe-792f-4a0d-ae58-f278304d4f7f","facts":{"nodes":{"1":{"fqdn":"rl1.dp.nethserver.net","ui_name":"MyNodeRl1","version":"3.17.0-dev.6","default_ipv4":"165.22.17.26","default_ipv6":"2a03:b0c0:3:f0:0:1:dbfe:3000","cluster_leader":true}},"cluster":{"ui_name":"MyNethServer 8","subscription":"community","user_domains":[],"leader_node_id":"1"},"modules":[{"id":"mail1","name":"mail","node":"1","ui_name":"MyMail","version":"1.7.4"}]},"$schema":"https://schema.nethserver.org/facts/2022-12.json","installation":"nethserver"}'
Request example
{
"uuid": "659d2fbe-792f-4a0d-ae58-f278304d4f7f",
"facts": {
"nodes": {
"1": {
"fqdn": "rl1.dp.nethserver.net",
"ui_name": "MyNodeRl1",
"version": "3.17.0-dev.6",
"default_ipv4": "165.22.17.26",
"default_ipv6": "2a03:b0c0:3:f0:0:1:dbfe:3000",
"cluster_leader": true
}
},
"cluster": {
"ui_name": "MyNethServer 8",
"subscription": "community",
"user_domains": [],
"leader_node_id": "1"
},
"modules": [
{
"id": "mail1",
"name": "mail",
"node": "1",
"ui_name": "MyMail",
"version": "1.7.4"
}
]
},
"$schema": "https://schema.nethserver.org/facts/2022-12.json",
"installation": "nethserver"
}
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"
}
}