---
title: "Get all topologies"
method: GET
path: "/api/v1/topology"
tags: ["Topologies", "internal"]
---

# Get all topologies

`GET /api/v1/topology`

## Query parameters

- `network_id` string, uuid, nullable
- `ids` string[], nullable
- `limit` integer, nullable
- `offset` integer, nullable

## Response `200`

List of topologies

- PaginatedApiResponseTopology — Response type for paginated list endpoints (pagination is always present in meta)
  - `data` object[], required
    - `bindings` Binding[], required
      - union
        - object — Association between a service and a port / interface that the service is listening on
          - `ip_address_id` string, uuid, required
          - `type` 'IPAddress', required
          - `network_id` string, uuid, required
          - `service_id` string, uuid, required
          - `created_at` string, date-time, required
          - `id` string, uuid, required
          - `updated_at` string, date-time, required
        - object — Association between a service and a port / interface that the service is listening on
          - `ip_address_id` string, uuid, nullable, required — The IP address this port binding applies to. If `null`, the binding applies to all IP addresses on the host (and supersedes specific-IP-address bindings for this port).
          - `port_id` string, uuid, required
          - `type` 'Port', required
          - `network_id` string, uuid, required
          - `service_id` string, uuid, required
          - `created_at` string, date-time, required
          - `id` string, uuid, required
          - `updated_at` string, date-time, required
    - `dependencies` Dependency[], required
      - `color` 'Pink' | 'Rose' | 'Red' | 'Amber' | 'Orange' | 'Green' | 'Emerald' | 'Teal' | 'Cyan' | 'Blue' | 'Indigo' | 'Purple' | 'Fuchsia' | 'Violet' | 'Sky' | 'Gray' | 'Lime' | 'Yellow', required
      - `dependency_type` 'RequestPath' | 'HubAndSpoke', required
      - `description` string, nullable
      - `edge_style` 'Straight' | 'SmoothStep' | 'Bezier', required
      - `members` union, required — The members of a dependency: either service-level or binding-level. Bindings are all-or-nothing: either every position has a binding (full L3 detail) or none do (Application-level only).
        - object — Application-level only. Ordered list of service IDs.
          - `service_ids` string[], required
          - `type` 'Services', required
        - object — Full L3 detail. Ordered list of binding IDs (one per service in the chain).
          - `binding_ids` string[], required
          - `type` 'Bindings', required
      - `name` string, required
      - `network_id` string, uuid, required
      - `source` union
        - object
          - `type` 'Manual', required
        - object
          - `type` 'System', required
        - object
          - `metadata` DiscoveryMetadata[], required
            - union
              - …
          - `type` 'Discovery', required
        - object
          - `details` MatchDetails, required
            - `confidence` 'NotApplicable' | 'Low' | 'Medium' | 'High' | 'Certain', required
            - `reason` union, required — Match reason - either a simple reason string or a container with nested reasons
              - …
          - `metadata` DiscoveryMetadata[], required
            - union
              - …
          - `type` 'DiscoveryWithMatch', required
        - object
          - `type` 'Unknown', required
      - `tags` string[], required
      - `created_at` string, date-time, required
      - `id` string, uuid, required
      - `updated_at` string, date-time, required
    - `edges` Edge[], required
      - union
        - object
          - `edge_type` 'SameHost', required
          - `host_id` string, uuid, required
          - `id` string, uuid, required
          - `is_multi_hop` boolean, required
          - `label` string, nullable, required
          - `source` string, uuid, required
          - `source_handle` 'Top' | 'Bottom' | 'Left' | 'Right', required
          - `target` string, uuid, required
          - `target_handle` 'Top' | 'Bottom' | 'Left' | 'Right', required
          - `view_config` union — Per-view configuration for an edge: disabled (not in this view) or active with properties
            - object — Edge is not available in this view
              - …
            - object — Edge is active in this view with specific properties
              - …
        - object
          - `edge_type` 'Hypervisor', required
          - `hypervisor_service_id` string, uuid, required
          - `id` string, uuid, required
          - `is_multi_hop` boolean, required
          - `label` string, nullable, required
          - `source` string, uuid, required
          - `source_handle` 'Top' | 'Bottom' | 'Left' | 'Right', required
          - `target` string, uuid, required
          - `target_handle` 'Top' | 'Bottom' | 'Left' | 'Right', required
          - `view_config` union — Per-view configuration for an edge: disabled (not in this view) or active with properties
            - object — Edge is not available in this view
              - …
            - object — Edge is active in this view with specific properties
              - …
        - object
          - `edge_type` 'ContainerRuntime', required
          - `host_id` string, uuid, required
          - `service_id` string, uuid, required
          - `id` string, uuid, required
          - `is_multi_hop` boolean, required
          - `label` string, nullable, required
          - `source` string, uuid, required
          - `source_handle` 'Top' | 'Bottom' | 'Left' | 'Right', required
          - `target` string, uuid, required
          - `target_handle` 'Top' | 'Bottom' | 'Left' | 'Right', required
          - `view_config` union — Per-view configuration for an edge: disabled (not in this view) or active with properties
            - object — Edge is not available in this view
              - …
            - object — Edge is active in this view with specific properties
              - …
        - object
          - `dependency_id` string, uuid, required
          - `edge_type` 'RequestPath', required
          - `source_id` string, uuid, required
          - `target_id` string, uuid, required
          - `id` string, uuid, required
          - `is_multi_hop` boolean, required
          - `label` string, nullable, required
          - `source` string, uuid, required
          - `source_handle` 'Top' | 'Bottom' | 'Left' | 'Right', required
          - `target` string, uuid, required
          - `target_handle` 'Top' | 'Bottom' | 'Left' | 'Right', required
          - `view_config` union — Per-view configuration for an edge: disabled (not in this view) or active with properties
            - object — Edge is not available in this view
              - …
            - object — Edge is active in this view with specific properties
              - …
        - object
          - `dependency_id` string, uuid, required
          - `edge_type` 'HubAndSpoke', required
          - `source_id` string, uuid, required
          - `target_id` string, uuid, required
          - `id` string, uuid, required
          - `is_multi_hop` boolean, required
          - `label` string, nullable, required
          - `source` string, uuid, required
          - `source_handle` 'Top' | 'Bottom' | 'Left' | 'Right', required
          - `target` string, uuid, required
          - `target_handle` 'Top' | 'Bottom' | 'Left' | 'Right', required
          - `view_config` union — Per-view configuration for an edge: disabled (not in this view) or active with properties
            - object — Edge is not available in this view
              - …
            - object — Edge is active in this view with specific properties
              - …
        - object — Physical link discovered via LLDP/CDP neighbor discovery
          - `edge_type` 'PhysicalLink', required
          - `protocol` 'LLDP' | 'CDP', required — Protocol that discovered the physical link between network devices
          - `source_entity_id` string, uuid, required
          - `target_entity_id` string, uuid, required
          - `id` string, uuid, required
          - `is_multi_hop` boolean, required
          - `label` string, nullable, required
          - `source` string, uuid, required
          - `source_handle` 'Top' | 'Bottom' | 'Left' | 'Right', required
          - `target` string, uuid, required
          - `target_handle` 'Top' | 'Bottom' | 'Left' | 'Right', required
          - `view_config` union — Per-view configuration for an edge: disabled (not in this view) or active with properties
            - object — Edge is not available in this view
              - …
            - object — Edge is active in this view with specific properties
              - …
    - `entity_tags` Tag[], required
      - `color` 'Pink' | 'Rose' | 'Red' | 'Amber' | 'Orange' | 'Green' | 'Emerald' | 'Teal' | 'Cyan' | 'Blue' | 'Indigo' | 'Purple' | 'Fuchsia' | 'Violet' | 'Sky' | 'Gray' | 'Lime' | 'Yellow', required
      - `description` string, nullable
      - `is_application` boolean
      - `name` string, required
      - `organization_id` string, uuid, required
      - `created_at` string, date-time, required
      - `id` string, uuid, required
      - `updated_at` string, date-time, required
    - `hosts` Host[], required
      - `chassis_id` string, nullable — LLDP lldpLocChassisId - globally unique device identifier for deduplication
      - `credential_assignments` CredentialAssignment[], required — Credential assignments for this host (hydrated from junction table).
        - `credential_id` string, uuid, required
        - `ip_address_ids` string[], nullable, required — Interface IDs to limit this credential to. None = all host ip_addresses.
      - `description` string, nullable, required
      - `hidden` boolean, required
      - `hostname` string, nullable, required
      - `management_url` string, nullable — URL for device management interface (manual or discovered)
      - `manufacturer` string, nullable — ENTITY-MIB entPhysicalMfgName - hardware manufacturer
      - `model` string, nullable — ENTITY-MIB entPhysicalModelName - hardware model
      - `name` string, required
      - `network_id` string, uuid, required
      - `serial_number` string, nullable — ENTITY-MIB entPhysicalSerialNum - hardware serial number
      - `source` union, required
        - object
          - `type` 'Manual', required
        - object
          - `type` 'System', required
        - object
          - `metadata` DiscoveryMetadata[], required
            - union
              - …
          - `type` 'Discovery', required
        - object
          - `details` MatchDetails, required
            - `confidence` 'NotApplicable' | 'Low' | 'Medium' | 'High' | 'Certain', required
            - `reason` union, required — Match reason - either a simple reason string or a container with nested reasons
              - …
          - `metadata` DiscoveryMetadata[], required
            - union
              - …
          - `type` 'DiscoveryWithMatch', required
        - object
          - `type` 'Unknown', required
      - `sys_contact` string, nullable — SNMP sysContact.0 - admin contact info
      - `sys_descr` string, nullable — SNMP sysDescr.0 - full system description
      - `sys_location` string, nullable — SNMP sysLocation.0 - physical location
      - `sys_name` string, nullable — SNMP sysName.0 - administratively-assigned hostname
      - `sys_object_id` string, nullable — SNMP sysObjectID.0 - vendor OID for device identification
      - `tags` string[], required
      - `virtualization` HostVirtualization, required
        - `details` ProxmoxVirtualization, required
          - `service_id` string, uuid, required
          - `vm_id` string, nullable
          - `vm_name` string, nullable
        - `type` 'Proxmox', required
      - `created_at` string, date-time, required
      - `id` string, uuid, required
      - `updated_at` string, date-time, required
    - `interfaces` Interface[], required
      - `admin_status` 'Up' | 'Down' | 'Testing', required — SNMP ifAdminStatus values per IF-MIB RFC 2863
      - `cdp_address` string, nullable — Remote management IP from CDP (cdpCacheAddress)
      - `cdp_device_id` string, nullable — Remote device ID from CDP (typically hostname, locally unique)
      - `cdp_platform` string, nullable — Remote platform from CDP (e.g., "Cisco IOS")
      - `cdp_port_id` string, nullable — Remote port ID from CDP
      - `fdb_macs` string[], nullable — Bridge FDB: learned MAC addresses on this switch port. Single-MAC ports can be resolved to neighbor links server-side. Multi-MAC ports indicate uplinks where LLDP/CDP is the better source.
      - `host_id` string, uuid, required
      - `if_alias` string, nullable — SNMP ifAlias - user-configured description
      - `if_descr` string, required — SNMP ifDescr - interface description (e.g., GigabitEthernet0/1)
      - `if_index` integer, required — SNMP ifIndex - stable identifier within device
      - `if_name` string, nullable — SNMP ifName - short interface name (e.g., Gi1/0/1)
      - `if_type` integer, required — SNMP ifType - IANAifType integer (6=ethernet, 24=loopback, etc.)
      - `ip_address_id` string, uuid, nullable — FK to IPAddress entity - this port's IP assignment (must be on same host). Old daemons send this as "interface_id".
      - `lldp_chassis_id` union — LLDP Chassis ID subtypes per IEEE 802.1AB. The chassis ID identifies the remote device. Different network equipment may use different subtypes depending on configuration and capabilities.
        - object — Subtype 1: Chassis component (e.g., backplane serial number)
          - `subtype` 'ChassisComponent', required
          - `value` string, required — Subtype 1: Chassis component (e.g., backplane serial number)
        - object — Subtype 2: Interface alias (ifAlias from IF-MIB)
          - `subtype` 'InterfaceAlias', required
          - `value` string, required — Subtype 2: Interface alias (ifAlias from IF-MIB)
        - object — Subtype 3: Port component (e.g., backplane port number)
          - `subtype` 'PortComponent', required
          - `value` string, required — Subtype 3: Port component (e.g., backplane port number)
        - object — Subtype 4: MAC address (most common)
          - `subtype` 'MacAddress', required
          - `value` string, required — Subtype 4: MAC address (most common)
        - object — Subtype 5: Network address (IP address stored as string)
          - `subtype` 'NetworkAddress', required
          - `value` string, required — Subtype 5: Network address (IP address stored as string)
        - object — Subtype 6: Interface name (ifName from IF-MIB)
          - `subtype` 'InterfaceName', required
          - `value` string, required — Subtype 6: Interface name (ifName from IF-MIB)
        - object — Subtype 7: Locally assigned (device-specific identifier)
          - `subtype` 'LocallyAssigned', required
          - `value` string, required — Subtype 7: Locally assigned (device-specific identifier)
      - `lldp_mgmt_addr` string, nullable — Remote management IP from LLDP neighbor (lldpRemManAddr)
      - `lldp_port_desc` string, nullable — Remote port description from LLDP neighbor (lldpRemPortDesc)
      - `lldp_port_id` union — LLDP Port ID subtypes per IEEE 802.1AB. The port ID identifies the specific port on the remote device.
        - object — Subtype 1: Interface alias (ifAlias from IF-MIB)
          - `subtype` 'InterfaceAlias', required
          - `value` string, required — Subtype 1: Interface alias (ifAlias from IF-MIB)
        - object — Subtype 2: Port component (e.g., backplane port number)
          - `subtype` 'PortComponent', required
          - `value` string, required — Subtype 2: Port component (e.g., backplane port number)
        - object — Subtype 3: MAC address
          - `subtype` 'MacAddress', required
          - `value` string, required — Subtype 3: MAC address
        - object — Subtype 4: Network address (IP address stored as string)
          - `subtype` 'NetworkAddress', required
          - `value` string, required — Subtype 4: Network address (IP address stored as string)
        - object — Subtype 5: Interface name (ifName from IF-MIB)
          - `subtype` 'InterfaceName', required
          - `value` string, required — Subtype 5: Interface name (ifName from IF-MIB)
        - object — Subtype 6: Agent circuit ID (used by some providers)
          - `subtype` 'AgentCircuitId', required
          - `value` string, required — Subtype 6: Agent circuit ID (used by some providers)
        - object — Subtype 7: Locally assigned (device-specific identifier)
          - `subtype` 'LocallyAssigned', required
          - `value` string, required — Subtype 7: Locally assigned (device-specific identifier)
      - `lldp_sys_desc` string, nullable — Remote system description from LLDP neighbor (lldpRemSysDesc) - platform info
      - `lldp_sys_name` string, nullable — Remote system name from LLDP neighbor (lldpRemSysName)
      - `mac_address` string, nullable — MAC address from SNMP ifPhysAddress - immutable once set
      - `native_vlan_id` string, uuid, nullable — Native/untagged VLAN entity ID on this port (resolved from Q-BRIDGE dot1qPvid)
      - `neighbor` union — Resolved LLDP/CDP neighbor connection. Represents the remote endpoint this port connects to, discovered via LLDP or CDP. The two variants are mutually exclusive and represent different resolution states.
        - object — Full resolution - the specific remote port was identified
          - `id` string, uuid, required — Full resolution - the specific remote port was identified
          - `type` 'Interface', required
        - object — Partial resolution - the remote device was identified but not the specific port
          - `id` string, uuid, required — Partial resolution - the remote device was identified but not the specific port
          - `type` 'Host', required
      - `network_id` string, uuid, required
      - `oper_status` 'Up' | 'Down' | 'Testing' | 'Unknown' | 'Dormant' | 'NotPresent' | 'LowerLayerDown', required — SNMP ifOperStatus values per IF-MIB RFC 2863
      - `speed_bps` integer, nullable — Interface speed from ifSpeed/ifHighSpeed in bits per second
      - `vlan_ids` string[], nullable — Tagged VLAN entity IDs on this port (resolved from Q-BRIDGE dot1qVlanCurrentEgressPorts)
      - `created_at` string, date-time, required
      - `id` string, uuid, required
      - `updated_at` string, date-time, required
    - `ip_addresses` IPAddress[], required
      - `host_id` string, uuid, required
      - `ip_address` string, required
      - `mac_address` string, nullable — MAC address discovered from ARP, SNMP, or Docker - immutable once set
      - `name` string, nullable, required
      - `network_id` string, uuid, required
      - `position` integer — Position of this IP address in the host's IP address list (for ordering)
      - `subnet_id` string, uuid, required
      - `created_at` string, date-time, required
      - `id` string, uuid, required
      - `updated_at` string, date-time, required
    - `is_locked` boolean, required
    - `is_stale` boolean, required
    - `last_refreshed` string, date-time, required
    - `locked_at` string, date-time, nullable
    - `locked_by` string, uuid, nullable
    - `name` string, required
    - `network_id` string, uuid, required
    - `nodes` Node[], required
      - union
        - object
          - `associated_service_definition` string, nullable — Service definition ID for logo rendering (e.g. "Docker", "Proxmox VE"). Used by Hypervisor and Stack subcontainers to show the service's logo.
          - `color` string, nullable — Display color name (set by graph builder from the source entity, e.g. subnet type)
          - `container_type` 'Subnet' | 'ServiceCategory' | 'Application' | 'Root' | 'Host' | 'NestedTag' | 'NestedServiceCategory' | 'Hypervisor' | 'ContainerRuntime' | 'Stack' | 'TrunkPort' | 'VLAN' | 'PortOpStatus'
          - `element_rule_id` string, uuid, nullable — ID of the element rule that created this container (for subcontainers like NestedTag, Hypervisor, etc.)
          - `entity_id` string, uuid, nullable — The entity this container represents (e.g. host ID for Host containers, subnet ID for Subnet containers). Used for ownership mapping on the frontend.
          - `icon` string, nullable — Display icon name (set by graph builder from the source entity, e.g. subnet type)
          - `node_type` 'Container', required
          - `parent_container_id` string, uuid, nullable
          - `will_accept_edges` boolean — When true, this container accepts edges with `will_target_container`, causing them to visually attach here instead of at elements inside.
          - `header` string, nullable
          - `id` string, uuid, required
          - `position` Ixy, required
            - `x` integer, required
            - `y` integer, required
          - `size` Uxy, required — 2D unsigned coordinate. Used for node positions and sizes. Element node sizes are computed by the frontend (elkjs); the backend sets `Uxy::default()` for element nodes.
            - `x` integer, required
            - `y` integer, required
        - object
          - `element_type` 'IPAddress', required
          - `ip_address_id` string, uuid, nullable
          - `subnet_id` string, uuid, required
          - `container_id` string, uuid
          - `host_id` string, uuid, required
          - `inline_groups` InlineGroup[] — Visual grouping metadata for services inlined on this element. Populated by element rules (e.g., Docker containers on a VM host get InlineGroups with Header/Member roles for dotted-border rendering).
            - `entity_id` string, uuid, required — The inlined entity's ID (e.g., service ID).
            - `group_id` string, uuid, required — Shared by all members of the visual group.
            - `role` 'Header' | 'Member', required — Role of an inlined entity within its visual group.
          - `node_type` 'Element', required
          - `header` string, nullable
          - `id` string, uuid, required
          - `position` Ixy, required
            - `x` integer, required
            - `y` integer, required
          - `size` Uxy, required — 2D unsigned coordinate. Used for node positions and sizes. Element node sizes are computed by the frontend (elkjs); the backend sets `Uxy::default()` for element nodes.
            - `x` integer, required
            - `y` integer, required
        - object
          - `element_type` 'Service', required
          - `container_id` string, uuid
          - `host_id` string, uuid, required
          - `inline_groups` InlineGroup[] — Visual grouping metadata for services inlined on this element. Populated by element rules (e.g., Docker containers on a VM host get InlineGroups with Header/Member roles for dotted-border rendering).
            - `entity_id` string, uuid, required — The inlined entity's ID (e.g., service ID).
            - `group_id` string, uuid, required — Shared by all members of the visual group.
            - `role` 'Header' | 'Member', required — Role of an inlined entity within its visual group.
          - `node_type` 'Element', required
          - `header` string, nullable
          - `id` string, uuid, required
          - `position` Ixy, required
            - `x` integer, required
            - `y` integer, required
          - `size` Uxy, required — 2D unsigned coordinate. Used for node positions and sizes. Element node sizes are computed by the frontend (elkjs); the backend sets `Uxy::default()` for element nodes.
            - `x` integer, required
            - `y` integer, required
        - object
          - `element_type` 'Host', required
          - `container_id` string, uuid
          - `host_id` string, uuid, required
          - `inline_groups` InlineGroup[] — Visual grouping metadata for services inlined on this element. Populated by element rules (e.g., Docker containers on a VM host get InlineGroups with Header/Member roles for dotted-border rendering).
            - `entity_id` string, uuid, required — The inlined entity's ID (e.g., service ID).
            - `group_id` string, uuid, required — Shared by all members of the visual group.
            - `role` 'Header' | 'Member', required — Role of an inlined entity within its visual group.
          - `node_type` 'Element', required
          - `header` string, nullable
          - `id` string, uuid, required
          - `position` Ixy, required
            - `x` integer, required
            - `y` integer, required
          - `size` Uxy, required — 2D unsigned coordinate. Used for node positions and sizes. Element node sizes are computed by the frontend (elkjs); the backend sets `Uxy::default()` for element nodes.
            - `x` integer, required
            - `y` integer, required
        - object
          - `element_type` 'Interface', required
          - `interface_id` string, uuid, required
          - `container_id` string, uuid
          - `host_id` string, uuid, required
          - `inline_groups` InlineGroup[] — Visual grouping metadata for services inlined on this element. Populated by element rules (e.g., Docker containers on a VM host get InlineGroups with Header/Member roles for dotted-border rendering).
            - `entity_id` string, uuid, required — The inlined entity's ID (e.g., service ID).
            - `group_id` string, uuid, required — Shared by all members of the visual group.
            - `role` 'Header' | 'Member', required — Role of an inlined entity within its visual group.
          - `node_type` 'Element', required
          - `header` string, nullable
          - `id` string, uuid, required
          - `position` Ixy, required
            - `x` integer, required
            - `y` integer, required
          - `size` Uxy, required — 2D unsigned coordinate. Used for node positions and sizes. Element node sizes are computed by the frontend (elkjs); the backend sets `Uxy::default()` for element nodes.
            - `x` integer, required
            - `y` integer, required
    - `options` TopologyOptions, required
      - `local` TopologyLocalOptions, required
        - `bundle_edges` boolean
        - `hide_edge_types` EdgeTypeDiscriminants[], required
        - `no_fade_edges` boolean, required
        - `show_minimap` boolean
        - `tag_filter` TopologyTagFilter — Filter settings for hiding entities by tag in topology visualization.
          - `hidden_host_tag_ids` string[] — Host tag IDs to hide (hosts with these tags will fade out)
          - `hidden_service_tag_ids` string[] — Service tag IDs to hide (services with these tags will be hidden from nodes)
          - `hidden_subnet_tag_ids` string[] — Subnet tag IDs to hide (subnets with these tags will fade out)
      - `request` TopologyRequestOptions, required
        - `container_rules` object
        - `element_rules` IdentifiedRuleElementRule[]
          - `id` string, uuid, required
          - `rule` union, required — Rules that organize nodes within a container into sub-groups.
            - object
              - …
            - object
              - …
            - 'ByHypervisor'
            - 'ByContainerRuntime'
            - 'ByStack'
            - 'ByTrunkPort' — Groups trunk ports (ports with tagged VLANs) into a "Trunk Ports" subcontainer. Higher priority than ByVLAN — prevents trunk ports from being grouped by VLAN.
            - 'ByVLAN' — Groups access ports by their native VLAN ID into per-VLAN subcontainers.
            - 'ByPortOpStatus' — Groups ports by operational status (Up, Down, etc.) into per-status subcontainers.
        - `hide_entities` object — Entity types hidden per view. Keyed by TopologyView, values are entity types (matching those declared as container/element/inline in the view's element_config). Hides every manifestation of the entity in that view — element nodes, container nodes, and inline rows on element cards. Supersedes the old `hide_ports` (L3-only, inline-only).
        - `hide_metadata_values` object — Generic per-(view, entity, filter) hide-set for metadata filters (Category, Virtualization, etc). Supersedes the old `hide_service_categories`; nested so JSON keys are strings all the way down.
        - `view` 'L2Physical' | 'L3Logical' | 'Workloads' | 'Application' — Which topology view is being rendered
    - `parent_id` string, uuid, nullable
    - `ports` Port[], required
      - `number` integer, required
      - `protocol` 'Udp' | 'Tcp', required
      - `type` string — Auto-derived from number+protocol; optional on create
      - `host_id` string, uuid, required
      - `network_id` string, uuid, required
      - `created_at` string, date-time, required
      - `id` string, uuid, required
      - `updated_at` string, date-time, required
    - `removed_bindings` string[], required
    - `removed_dependencies` string[], required
    - `removed_hosts` string[], required
    - `removed_interfaces` string[], required
    - `removed_ip_addresses` string[], required
    - `removed_ports` string[], required
    - `removed_services` string[], required
    - `removed_subnets` string[], required
    - `services` Service[], required
      - `bindings` Binding[], required
        - union
          - object — Association between a service and a port / interface that the service is listening on
            - `ip_address_id` string, uuid, required
            - `type` 'IPAddress', required
            - `network_id` string, uuid, required
            - `service_id` string, uuid, required
            - `created_at` string, date-time, required
            - `id` string, uuid, required
            - `updated_at` string, date-time, required
          - object — Association between a service and a port / interface that the service is listening on
            - `ip_address_id` string, uuid, nullable, required — The IP address this port binding applies to. If `null`, the binding applies to all IP addresses on the host (and supersedes specific-IP-address bindings for this port).
            - `port_id` string, uuid, required
            - `type` 'Port', required
            - `network_id` string, uuid, required
            - `service_id` string, uuid, required
            - `created_at` string, date-time, required
            - `id` string, uuid, required
            - `updated_at` string, date-time, required
      - `host_id` string, uuid, required
      - `name` string, required
      - `network_id` string, uuid, required
      - `position` integer, required — Position of this service in the host's service list (for ordering)
      - `service_definition` string, required
      - `source` union, required
        - object
          - `type` 'Manual', required
        - object
          - `type` 'System', required
        - object
          - `metadata` DiscoveryMetadata[], required
            - union
              - …
          - `type` 'Discovery', required
        - object
          - `details` MatchDetails, required
            - `confidence` 'NotApplicable' | 'Low' | 'Medium' | 'High' | 'Certain', required
            - `reason` union, required — Match reason - either a simple reason string or a container with nested reasons
              - …
          - `metadata` DiscoveryMetadata[], required
            - union
              - …
          - `type` 'DiscoveryWithMatch', required
        - object
          - `type` 'Unknown', required
      - `tags` string[], required
      - `virtualization` ServiceVirtualization
        - `details` DockerVirtualization, required
          - `compose_project` string, nullable
          - `container_id` string, nullable
          - `container_name` string, nullable
          - `service_id` string, uuid, required
        - `type` 'Docker', required
      - `created_at` string, date-time, required
      - `id` string, uuid, required
      - `updated_at` string, date-time, required
    - `subnets` Subnet[], required
      - `cidr` string, required
      - `description` string, nullable
      - `name` string, required
      - `network_id` string, uuid, required
      - `source` union, required
        - object
          - `type` 'Manual', required
        - object
          - `type` 'System', required
        - object
          - `metadata` DiscoveryMetadata[], required
            - union
              - …
          - `type` 'Discovery', required
        - object
          - `details` MatchDetails, required
            - `confidence` 'NotApplicable' | 'Low' | 'Medium' | 'High' | 'Certain', required
            - `reason` union, required — Match reason - either a simple reason string or a container with nested reasons
              - …
          - `metadata` DiscoveryMetadata[], required
            - union
              - …
          - `type` 'DiscoveryWithMatch', required
        - object
          - `type` 'Unknown', required
      - `subnet_type` 'Internet' | 'Remote' | 'Gateway' | 'VpnTunnel' | 'Dmz' | 'Lan' | 'WiFi' | 'IoT' | 'Guest' | 'DockerBridge' | 'MacVlan' | 'IpVlan' | 'Management' | 'Storage' | 'Loopback' | 'Unknown', required
      - `tags` string[], required
      - `virtualization` SubnetVirtualization — Docker bridge network — host-scoped, same CIDR on different hosts are distinct subnets.
        - `service_id` string, uuid, required — The Docker daemon service that owns this bridge network. Different Docker daemons on different hosts = distinct bridge subnets.
        - `type` 'Docker', required
      - `created_at` string, date-time, required
      - `id` string, uuid, required
      - `updated_at` string, date-time, required
    - `tags` string[], required
    - `vlans` Vlan[]
      - `description` string, nullable
      - `name` string, required
      - `network_id` string, uuid, required
      - `organization_id` string, uuid, required
      - `source` union
        - object
          - `type` 'Manual', required
        - object
          - `type` 'System', required
        - object
          - `metadata` DiscoveryMetadata[], required
            - union
              - …
          - `type` 'Discovery', required
        - object
          - `details` MatchDetails, required
            - `confidence` 'NotApplicable' | 'Low' | 'Medium' | 'High' | 'Certain', required
            - `reason` union, required — Match reason - either a simple reason string or a container with nested reasons
              - …
          - `metadata` DiscoveryMetadata[], required
            - union
              - …
          - `type` 'DiscoveryWithMatch', required
        - object
          - `type` 'Unknown', required
      - `vlan_number` integer, required — The 802.1Q VLAN number (1-4094)
      - `created_at` string, date-time, required
      - `id` string, uuid, required
      - `updated_at` string, date-time, required
    - `created_at` string, date-time, required
    - `id` string, uuid, required
    - `updated_at` string, date-time, required
  - `error` string, nullable
  - `meta` PaginatedApiMeta, required — API metadata for paginated list responses (pagination is always present)
    - `api_version` integer, required — API version (integer, increments on breaking changes)
    - `pagination` PaginationMeta, required — Pagination metadata returned with paginated responses.
      - `has_more` boolean, required — Whether there are more items after this page
      - `limit` integer, required — Maximum items per page (as requested)
      - `offset` integer, required — Number of items skipped
      - `total_count` integer, required — Total number of items matching the filter (ignoring pagination)
    - `server_version` string, required — Server version (semver)
  - `success` boolean, required

## Changes

- **2026-04-20** `f04499e2280f` — 1 breaking, 1 warning, 48 info
  - the `data/items/allOf[#/components/schemas/TopologyBase]/options/local/tag_filter` response's property type/format changed from ``/`` to `object`/`` for status `200`
  - added the new `MergeDockerBridges` enum value to the `data/items/allOf[#/components/schemas/TopologyBase]/options/request/container_rules/additionalProperties/items/rule/oneOf[subschema #2]/` response property for the response status `200`
  - added the optional property `data/items/allOf[#/components/schemas/TopologyBase]/locked_at` to the response with the `200` status
  - added the optional property `data/items/allOf[#/components/schemas/TopologyBase]/locked_by` to the response with the `200` status
  - …46 more

[Change history](https://skmtc.dev/scanopy/apis/scanopy-api/changes/api/v1/topology/get.md)

---

[API](https://skmtc.dev/scanopy/apis/scanopy-api.md) · [All operations](https://skmtc.dev/scanopy/apis/scanopy-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/scanopy/scanopy-api/revisions/f04499e2280f/schema)
