Consolidate hosts
Merges all interfaces, ports, and services from other_host into
destination_host, then deletes other_host. Both hosts must be
on the same network.
Merge Behavior
- Interfaces: Transferred to destination. If an interface with matching subnet+IP or MAC already exists on destination, bindings are remapped to use the existing interface.
- Ports: Transferred to destination. If a port with the same number and protocol already exists, bindings are remapped to use the existing port.
- Services: Transferred to destination with deduplication. See upsert behavior for details.
Restrictions
- Cannot consolidate a host with itself.
- Cannot consolidate a host that has a daemon - consolidate into it instead.
User API key (Bearer scp_u_...). Create in Platform > API Keys.
In: header
Path Parameters
Destination host ID - will receive all children
uuidHost to merge into destination - will be deleted
uuidResponse Body
application/json
application/json
application/json
curl -X PUT "https://loading/api/v1/hosts/497f6eca-6276-4993-bfeb-53cbbbba6f08/consolidate/497f6eca-6276-4993-bfeb-53cbbbba6f08"{
"meta": {
"api_version": 1,
"server_version": "0.14.10"
},
"success": true,
"data": {
"created_at": "2026-01-15T10:30:00Z",
"description": "Primary web server",
"hidden": false,
"hostname": "web-server-01.local",
"id": "550e8400-e29b-41d4-a716-446655440003",
"if_entries": [
{
"admin_status": "Up",
"cdp_address": null,
"cdp_device_id": null,
"cdp_platform": null,
"cdp_port_id": null,
"created_at": "2026-01-15T10:30:00Z",
"host_id": "550e8400-e29b-41d4-a716-446655440003",
"id": "550e8400-e29b-41d4-a716-44665544000f",
"if_alias": "Uplink to Core Switch",
"if_descr": "GigabitEthernet0/1",
"if_index": 1,
"if_name": "Gi0/1",
"if_type": 6,
"interface_id": "550e8400-e29b-41d4-a716-446655440005",
"lldp_chassis_id": null,
"lldp_mgmt_addr": null,
"lldp_port_desc": null,
"lldp_port_id": null,
"lldp_sys_desc": null,
"lldp_sys_name": null,
"mac_address": "DE:AD:BE:EF:CA:FE",
"neighbor": null,
"network_id": "550e8400-e29b-41d4-a716-446655440002",
"oper_status": "Up",
"speed_bps": 1000000000,
"updated_at": "2026-01-15T10:30:00Z"
}
],
"interfaces": [
{
"created_at": "2026-01-15T10:30:00Z",
"host_id": "550e8400-e29b-41d4-a716-446655440003",
"id": "550e8400-e29b-41d4-a716-446655440005",
"ip_address": "192.168.1.100",
"mac_address": "DE:AD:BE:EF:CA:FE",
"name": "eth0",
"network_id": "550e8400-e29b-41d4-a716-446655440002",
"position": 0,
"subnet_id": "550e8400-e29b-41d4-a716-446655440004",
"updated_at": "2026-01-15T10:30:00Z"
}
],
"name": "web-server-01",
"network_id": "550e8400-e29b-41d4-a716-446655440002",
"ports": [
{
"created_at": "2026-01-15T10:30:00Z",
"host_id": "550e8400-e29b-41d4-a716-446655440003",
"id": "550e8400-e29b-41d4-a716-446655440006",
"network_id": "550e8400-e29b-41d4-a716-446655440002",
"number": 80,
"protocol": "Tcp",
"type": "Http",
"updated_at": "2026-01-15T10:30:00Z"
}
],
"services": [
{
"bindings": [
{
"created_at": "2026-03-02T07:10:08.140148Z",
"id": "7d9d9b6f-6450-42cd-8c7c-e5ae02a67d3b",
"interface_id": "550e8400-e29b-41d4-a716-446655440005",
"network_id": "550e8400-e29b-41d4-a716-446655440002",
"port_id": "550e8400-e29b-41d4-a716-446655440006",
"service_id": "550e8400-e29b-41d4-a716-446655440007",
"type": "Port",
"updated_at": "2026-03-02T07:10:08.140148Z"
}
],
"created_at": "2026-01-15T10:30:00Z",
"host_id": "550e8400-e29b-41d4-a716-446655440003",
"id": "550e8400-e29b-41d4-a716-446655440007",
"name": "nginx",
"network_id": "550e8400-e29b-41d4-a716-446655440002",
"position": 0,
"service_definition": "PeaNUT",
"source": {
"type": "Manual"
},
"tags": [],
"updated_at": "2026-01-15T10:30:00Z",
"virtualization": null
}
],
"source": {
"type": "Manual"
},
"tags": [],
"updated_at": "2026-01-15T10:30:00Z",
"virtualization": null
},
"error": "string"
}{
"meta": {
"api_version": 1,
"server_version": "0.14.10"
},
"success": true,
"code": "string",
"error": "string",
"params": {
"property1": null,
"property2": null
}
}{
"meta": {
"api_version": 1,
"server_version": "0.14.10"
},
"success": true,
"code": "string",
"error": "string",
"params": {
"property1": null,
"property2": null
}
}Create a new host
Creates a host with optional interfaces, ports, and services. The `source` field is automatically set to `Manual`. ### Tag Validation - Tags must exist and belong to your organization - Duplicate tag UUIDs are automatically deduplicated - Invalid or cross-organization tag UUIDs return a 400 error
Update a host
Updates host properties. Children (interfaces, ports, services) are managed via their own endpoints. ### Tag Validation - Tags must exist and belong to your organization - Duplicate tag UUIDs are automatically deduplicated - Invalid or cross-organization tag UUIDs return a 400 error