ScanopyScanopy
Hosts

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.
PUT
/api/v1/hosts/{destination_host}/consolidate/{other_host}
Authorization<token>

User API key (Bearer scp_u_...). Create in Platform > API Keys.

In: header

Path Parameters

destination_host*string

Destination host ID - will receive all children

Formatuuid
other_host*string

Host to merge into destination - will be deleted

Formatuuid

Response 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
  }
}