BrowseName
In OPC UA, a BrowseName is a node's machine-readable name: a QualifiedName pairing a namespace index with a non-localised text string. Browse paths and TranslateBrowsePathsToNodeIds match on it, information models standardise it, and no two nodes under the same parent may share one. It is never translated.
A QualifiedName, not a string
The BrowseName attribute holds a QualifiedName: NamespaceIndex plus Name. The namespace part says which information model defined the name, which is why a node standardised by the Machinery specification and a vendor node can both be called Identification without collision. Tools print the pair as 2:Identification, where 2 is the namespace index of the defining model, not necessarily the namespace of the node's own NodeId.
What it is for
BrowseName is the programmatic handle. TranslateBrowsePathsToNodeIds walks a relative path expressed entirely in BrowseNames, so a client that knows a companion specification can find /2:Identification/2:SerialNumber on any conforming server without knowing a single NodeId. Companion specifications fix BrowseNames normatively; they say nothing about DisplayName. If you are writing code against a model, code against the BrowseName.
Uniqueness and stability
BrowseNames must be unique among the children reached by hierarchical references from the same parent, which is what makes browse paths deterministic. They are also expected to be stable across server restarts and firmware updates in a way NodeIds sometimes are not. A vendor that renames a BrowseName between firmware versions has made a breaking change to their model, whatever the release notes say.
Example
Browse paths are BrowseName paths - namespace prefixes matter
Starting node: ns=0;i=85 (ObjectsFolder)
Relative browse path, as UaExpert and most SDKs print it:
/2:Machines/4:Mixer_01/3:Identification/3:SerialNumber
Same path, expanded:
ns index 2 -> http://opcfoundation.org/UA/Machinery/
ns index 3 -> http://opcfoundation.org/UA/DI/
ns index 4 -> http://example.com/PlantA/
Standard nodes in namespace 0 are written with no prefix or with 0:
/Server/ServerStatus/CurrentTime == /0:Server/0:ServerStatus/0:CurrentTime
A path element whose BrowseName does not exist -> BadNoMatch
Defined in: Part 3 - Address Space Model, BrowseName attribute and QualifiedName; Part 4 - Services for TranslateBrowsePathsToNodeIds.
Last verified 7 September 2026 against OPC UA 1.05.07. OPC UA Connect is an educational resource and is not affiliated with the OPC Foundation.