Hosts

Consolidate hosts

Merges all ip_addresses, 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}

Path parameters

destination_hoststring uuid required

Destination host ID - will receive all children

other_hoststring uuid required

Host to merge into destination - will be deleted

Response

Hosts consolidated successfully

errorstring nullable

Human-readable failure message. Omitted on success.

successboolean required

true when the request succeeded. false responses carry error instead of data.

Example response

{
  "data": {
    "created_at": "2026-01-15T10:30:00Z",
    "credential_assignments": [],
    "description": "Primary web server",
    "hidden": false,
    "hostname": "web-server-01.local",
    "id": "550e8400-e29b-41d4-a716-446655440003",
    "interfaces": [
      {
        "admin_status": "Up",
        "cdp_address": null,
        "cdp_device_id": null,
        "cdp_platform": null,
        "cdp_port_id": null,
        "created_at": "2026-01-15T10:30:00Z",
        "first_discovery_id": null,
        "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,
        "ip_address_id": "550e8400-e29b-41d4-a716-446655440005",
        "last_discovery_id": null,
        "last_seen_at": "2026-01-15T10:30:00Z",
        "lineage_id": null,
        "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,
        "neighbor_seen_at": null,
        "network_id": "550e8400-e29b-41d4-a716-446655440002",
        "oper_status": "Up",
        "speed_bps": 1000000000,
        "updated_at": "2026-01-15T10:30:00Z",
        "valid_from": "2026-01-15T10:30:00Z",
        "valid_to": null
      }
    ],
    "ip_addresses": [
      {
        "created_at": "2026-01-15T10:30:00Z",
        "first_discovery_id": null,
        "host_id": "550e8400-e29b-41d4-a716-446655440003",
        "id": "550e8400-e29b-41d4-a716-446655440005",
        "ip_address": "192.168.1.100",
        "last_discovery_id": null,
        "last_seen_at": "2026-01-15T10:30:00Z",
        "lineage_id": null,
        "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",
        "valid_from": "2026-01-15T10:30:00Z",
        "valid_to": null
      }
    ],
    "last_seen_at": "2026-01-15T10:30:00Z",
    "name": "web-server-01",
    "name_source": "Manual",
    "network_id": "550e8400-e29b-41d4-a716-446655440002",
    "ports": [
      {
        "created_at": "2026-01-15T10:30:00Z",
        "first_discovery_id": null,
        "host_id": "550e8400-e29b-41d4-a716-446655440003",
        "id": "550e8400-e29b-41d4-a716-446655440006",
        "last_discovery_id": null,
        "last_seen_at": "2026-01-15T10:30:00Z",
        "lineage_id": null,
        "network_id": "550e8400-e29b-41d4-a716-446655440002",
        "number": 80,
        "protocol": "Tcp",
        "type": "Http",
        "updated_at": "2026-01-15T10:30:00Z",
        "valid_from": "2026-01-15T10:30:00Z",
        "valid_to": null
      }
    ],
    "services": [
      {
        "bindings": [
          {
            "created_at": "2026-08-26T01:22:52.422761Z",
            "first_discovery_id": null,
            "id": "75ac6952-cc37-4a61-a171-ce1ad0dde536",
            "ip_address_id": "550e8400-e29b-41d4-a716-446655440005",
            "last_discovery_id": null,
            "last_seen_at": "2026-08-26T01:22:52.422761Z",
            "lineage_id": null,
            "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-08-26T01:22:52.422761Z",
            "valid_from": "2026-08-26T01:22:52.422761Z",
            "valid_to": null
          }
        ],
        "created_at": "2026-01-15T10:30:00Z",
        "first_discovery_id": null,
        "host_id": "550e8400-e29b-41d4-a716-446655440003",
        "id": "550e8400-e29b-41d4-a716-446655440007",
        "last_discovery_id": null,
        "last_seen_at": "2026-01-15T10:30:00Z",
        "lineage_id": null,
        "name": "nginx",
        "network_id": "550e8400-e29b-41d4-a716-446655440002",
        "position": 0,
        "service_definition": "Jotty",
        "source": {
          "type": "Manual"
        },
        "tags": [],
        "updated_at": "2026-01-15T10:30:00Z",
        "valid_from": "2026-01-15T10:30:00Z",
        "valid_to": null,
        "virtualization_metadata": null,
        "virtualization_service_id": null
      }
    ],
    "source": {
      "type": "Manual"
    },
    "tags": [],
    "updated_at": "2026-01-15T10:30:00Z",
    "virtualization_metadata": null,
    "virtualization_service_id": null
  },
  "meta": {
    "api_version": 1,
    "server_version": "0.17.13"
  }
}

Changes

Changed in 11 of the 72 revisions of this API.119054

    • added the optional property data/manufacturer to the response with the 200 status

      response-optional-property-added

    • added the optional property data/model to the response with the 200 status

      response-optional-property-added

    • added the optional property data/serial_number to the response with the 200 status

      response-optional-property-added

    • added the optional property data/sys_name to the response with the 200 status

      response-optional-property-added

    • added the new DnsSd enum value to the data/name_source response property for the response status 200

      response-property-enum-value-added

    • added the optional property data/interfaces/items/allOf[InterfaceBase]/neighbor_seen_at to the response with the 200 status

      response-optional-property-added

    • added the new Unnamed enum value to the data/name_source response property for the response status 200

      response-property-enum-value-added

    • added the optional property data/name_source to the response with the 200 status

      response-optional-property-added

    • removed the optional property data/services/items/allOf[ServiceBase]/virtualization from the response with the 200 status

      response-optional-property-removed

    • removed the optional property data/virtualization from the response with the 200 status

      response-optional-property-removed

    • added the optional property data/services/items/allOf[ServiceBase]/virtualization_metadata to the response with the 200 status

      response-optional-property-added

    • added the optional property data/virtualization_metadata to the response with the 200 status

      response-optional-property-added

    • added the optional property data/virtualization_service_id to the response with the 200 status

      response-optional-property-added

    • added the required property data/services/items/allOf[ServiceBase]/virtualization_service_id to the response with the 200 status

      response-required-property-added

    This revision also has 3 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

  • 51af15be596e5567See the full diff
    • added subschema #1: ChassisComponent subschema #2: InterfaceAlias subschema #3: PortComponent subschema #4: MacAddress subschema #5: NetworkAddress subschema #6: InterfaceName subschema #7: LocallyAssigned to the data/interfaces/items/allOf[InterfaceBase]/lldp_chassis_id/oneOf[LldpChassisId]/ response property oneOf list for the response status 200

      response-property-one-of-added

    • added subschema #1: Interface subschema #2: Host to the data/interfaces/items/allOf[InterfaceBase]/neighbor/oneOf[Neighbor]/ response property oneOf list for the response status 200

      response-property-one-of-added

    • added subschema #1: InterfaceAlias subschema #2: PortComponent subschema #3: MacAddress subschema #4: NetworkAddress subschema #5: InterfaceName subschema #6: AgentCircuitId subschema #7: LocallyAssigned to the data/interfaces/items/allOf[InterfaceBase]/lldp_port_id/oneOf[LldpPortId]/ response property oneOf list for the response status 200

      response-property-one-of-added

    • added subschema #1: Reason subschema #2: Container to the data/services/items/allOf[ServiceBase]/source/oneOf[subschema #4: DiscoveryWithMatch]/details/reason response property oneOf list for the response status 200

      response-property-one-of-added

    • added subschema #1: Reason subschema #2: Container to the data/source/oneOf[subschema #4: DiscoveryWithMatch]/details/reason response property oneOf list for the response status 200

      response-property-one-of-added

    • added the new AMQP enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new AMQPTls enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new BACnet enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new Cassandra enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new CouchDb enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new Custom enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new Dhcp enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new DnsTcp enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new DnsUdp enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new Docker enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new DockerTls enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new Elasticsearch enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new Ftp enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new Http enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new Http3000 enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new Http5000 enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new Http8080 enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new Http8081 enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new Http8082 enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new Http8888 enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new Http9000 enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new Https enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new Https10443 enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new Https8443 enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new Https9443 enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new InfluxDb enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new Ipp enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new JetDirect enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new Kafka enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new Kerberos enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new Kubernetes enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new Ldap enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new Ldaps enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new LdpTcp enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new LdpUdp enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new MongoDB enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new Mqtt enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new MqttTls enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new MsSql enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new MySql enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new Nfs enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new Ntp enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new OpenVPN enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new PostgreSQL enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new RabbitMqMgmt enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new Rdp enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new Redis enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new Rtsp enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new Samba enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new Sip enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new SipTls enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new Snmp enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new SnmpAlt enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new Ssh enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new Telnet enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • added the new Wireguard enum value to the data/ports/items/allOf[PortBase]/allOf[PortType]/type response property for the response status 200

      response-property-enum-value-added

    • removed subschema #1 subschema #2 from the data/interfaces/items/allOf[InterfaceBase]/neighbor/oneOf[Neighbor]/ response property oneOf list for the response status 200

      response-property-one-of-removed

    • removed subschema #1 subschema #2 from the data/services/items/allOf[ServiceBase]/source/oneOf[subschema #4: DiscoveryWithMatch]/details/reason response property oneOf list for the response status 200

      response-property-one-of-removed

    • removed subschema #1 subschema #2 from the data/source/oneOf[subschema #4: DiscoveryWithMatch]/details/reason response property oneOf list for the response status 200

      response-property-one-of-removed

    • removed subschema #1 subschema #2 subschema #3 subschema #4 subschema #5 subschema #6 subschema #7 from the data/interfaces/items/allOf[InterfaceBase]/lldp_chassis_id/oneOf[LldpChassisId]/ response property oneOf list for the response status 200

      response-property-one-of-removed

    • removed subschema #1 subschema #2 subschema #3 subschema #4 subschema #5 subschema #6 subschema #7 from the data/interfaces/items/allOf[InterfaceBase]/lldp_port_id/oneOf[LldpPortId]/ response property oneOf list for the response status 200

      response-property-one-of-removed

    • the data/interfaces/items/allOf[InterfaceBase]/mac_address response's property pattern ^(?:[0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$ was added for the status 200

      response-property-pattern-added

    • the data/ip_addresses/items/allOf[IPAddressBase]/mac_address response's property pattern ^(?:[0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}$ was added for the status 200

      response-property-pattern-added

    • added the required property data/last_seen_at to the response with the 200 status

      response-required-property-added

    • added subschema #2: Podman to the data/services/items/allOf[ServiceBase]/virtualization/oneOf[subschema #2: ServiceVirtualization]/ response property oneOf list for the response status 200

      response-property-one-of-added

    • added subschema #2: VCenter subschema #3: ESXi to the data/virtualization/oneOf[subschema #2: HostVirtualization]/ response property oneOf list for the response status 200

      response-property-one-of-added

  • d38c20597ec1430See the full diff
    • removed the required property data/services/items/allOf[ServiceBase]/source/oneOf[subschema #3: Discovery]/metadata from the response with the 200 status

      response-required-property-removed

    • removed the required property data/services/items/allOf[ServiceBase]/source/oneOf[subschema #4: DiscoveryWithMatch]/metadata from the response with the 200 status

      response-required-property-removed

    • removed the required property data/source/oneOf[subschema #3: Discovery]/metadata from the response with the 200 status

      response-required-property-removed

    • removed the required property data/source/oneOf[subschema #4: DiscoveryWithMatch]/metadata from the response with the 200 status

      response-required-property-removed

    • added the optional property data/interfaces/items/allOf[subschema #2]/first_discovery_id to the response with the 200 status

      response-optional-property-added

    • added the optional property data/interfaces/items/allOf[subschema #2]/last_discovery_id to the response with the 200 status

      response-optional-property-added

    • added the optional property data/interfaces/items/allOf[subschema #2]/last_seen_at to the response with the 200 status

      response-optional-property-added

    • added the optional property data/interfaces/items/allOf[subschema #2]/lineage_id to the response with the 200 status

      response-optional-property-added

    • added the optional property data/interfaces/items/allOf[subschema #2]/valid_from to the response with the 200 status

      response-optional-property-added

    • added the optional property data/interfaces/items/allOf[subschema #2]/valid_to to the response with the 200 status

      response-optional-property-added

    • added the optional property data/ip_addresses/items/allOf[subschema #2]/first_discovery_id to the response with the 200 status

      response-optional-property-added

    • added the optional property data/ip_addresses/items/allOf[subschema #2]/last_discovery_id to the response with the 200 status

      response-optional-property-added

    • added the optional property data/ip_addresses/items/allOf[subschema #2]/last_seen_at to the response with the 200 status

      response-optional-property-added

    • added the optional property data/ip_addresses/items/allOf[subschema #2]/lineage_id to the response with the 200 status

      response-optional-property-added

    • added the optional property data/ip_addresses/items/allOf[subschema #2]/valid_from to the response with the 200 status

      response-optional-property-added

    • added the optional property data/ip_addresses/items/allOf[subschema #2]/valid_to to the response with the 200 status

      response-optional-property-added

    • added the optional property data/ports/items/allOf[subschema #2]/first_discovery_id to the response with the 200 status

      response-optional-property-added

    • added the optional property data/ports/items/allOf[subschema #2]/last_discovery_id to the response with the 200 status

      response-optional-property-added

    • added the optional property data/ports/items/allOf[subschema #2]/last_seen_at to the response with the 200 status

      response-optional-property-added

    • added the optional property data/ports/items/allOf[subschema #2]/lineage_id to the response with the 200 status

      response-optional-property-added

    • added the optional property data/ports/items/allOf[subschema #2]/valid_from to the response with the 200 status

      response-optional-property-added

    • added the optional property data/ports/items/allOf[subschema #2]/valid_to to the response with the 200 status

      response-optional-property-added

    • added the optional property data/services/items/allOf[ServiceBase]/bindings/items/allOf[subschema #2]/first_discovery_id to the response with the 200 status

      response-optional-property-added

    • added the optional property data/services/items/allOf[ServiceBase]/bindings/items/allOf[subschema #2]/last_discovery_id to the response with the 200 status

      response-optional-property-added

    • added the optional property data/services/items/allOf[ServiceBase]/bindings/items/allOf[subschema #2]/last_seen_at to the response with the 200 status

      response-optional-property-added

    • added the optional property data/services/items/allOf[ServiceBase]/bindings/items/allOf[subschema #2]/lineage_id to the response with the 200 status

      response-optional-property-added

    • added the optional property data/services/items/allOf[ServiceBase]/bindings/items/allOf[subschema #2]/valid_from to the response with the 200 status

      response-optional-property-added

    • added the optional property data/services/items/allOf[ServiceBase]/bindings/items/allOf[subschema #2]/valid_to to the response with the 200 status

      response-optional-property-added

    • added the optional property data/services/items/allOf[subschema #2]/first_discovery_id to the response with the 200 status

      response-optional-property-added

    • added the optional property data/services/items/allOf[subschema #2]/last_discovery_id to the response with the 200 status

      response-optional-property-added

    • added the optional property data/services/items/allOf[subschema #2]/last_seen_at to the response with the 200 status

      response-optional-property-added

    • added the optional property data/services/items/allOf[subschema #2]/lineage_id to the response with the 200 status

      response-optional-property-added

    • added the optional property data/services/items/allOf[subschema #2]/valid_from to the response with the 200 status

      response-optional-property-added

    • added the optional property data/services/items/allOf[subschema #2]/valid_to to the response with the 200 status

      response-optional-property-added

    This revision also has 3 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog