---
title: Browse and Discovery
slug: api-docs/browse-and-discovery
description: Bulk tag discovery patterns in Litmus Edge: how to browse OPC UA namespaces, Modbus registers, and other industrial protocols to populate DeviceHub without manual config.
docTags: 
createdAt: 2026-05-11T22:03:13.898Z
---

# Browse and Asset Discovery

Two different "discovery" features exist in Litmus Edge. Don't confuse them.

## 1. Asset Discovery (network-level)

Scans your **network** for assets that aren't yet configured in DeviceHub. Returns IP addresses, vendor / model hints, and protocol guesses.

- API folder: DeviceHub -> Asset Discovery
- Per-interface scan: eth0, wlan0, etc.
- Operations: `GET /devicehub/assetdiscovery/...` (REST)
- Enable / disable scanning per interface

Use when: "I have a new PLC plugged into the same VLAN - what's its IP and what protocol does it speak?"

## 2. Browse (device-level)

Walks the **address space of an already-configured device** and surfaces tags / nodes you can import.

- API folder: DeviceHub -> Browse
- GraphQL operations on `/devicehub/v2`
- Operates against a Device ID (the device must already exist)

Use when: "I have an OPC UA server configured - show me every node so I can pick which ones to monitor."

## Browse modes per driver

The 146 drivers vary in what they support:

| Mode          | What it does                                    | Drivers                                                   |
| ------------- | ----------------------------------------------- | --------------------------------------------------------- |
| Browse        | One-shot full address space walk                | OPC UA Advanced, AB Logix, Siemens S7CommPlus, \~38 total |
| DynamicBrowse | Re-browse on demand for changing address spaces | Subset of Browse-capable drivers                          |
| StreamBrowse  | Incremental walk for large servers              | OPC UA Advanced primarily                                 |

Drivers without Browse support (e.g. Modbus, since Modbus has no enumeration capability) cannot use the Browse chain - tags must be created directly via `CreateRegisters`.

:::BlockQuote
The Generator driver (simulator) doesn't support Browse either. If you're using the Generator for testing, skip the Browse chain.
:::

## Browse workflow

```javascript
CreateBrowseTask -> StartBrowseTasks -> [poll] ListBrowseTasks
  -> BrowseTask_GetFoldersForTreeView -> BrowseTask_GetFolderItems
  -> Cart_AddItems (optional Cart_UpdateProperties)
  -> Cart_CreateAllRegisters
```

7 steps, all on `/devicehub/v2`. See [Browse - Bulk Tag Discovery workflow](#).

## Useful side endpoints

- `Download Browse Tags` (`GET /devicehub/browsing/download_csv/task/{task_id}`) - exports discovered tags to CSV before committing. Lets users review in Excel before creating.
- `Upload CSV` (REST) - import tags from CSV (skip Browse entirely if you already have the spreadsheet).
