<!--
{
  "availability" : [
    "iOS: 9.0.0 - 18.0.0",
    "iPadOS: 9.0.0 - 18.0.0",
    "macCatalyst: 13.1.0 - 18.0.0",
    "macOS: 10.11.0 - 15.0.0",
    "tvOS: 17.0.0 - 18.0.0",
    "visionOS: 1.0.0 - 2.0.0"
  ],
  "documentType" : "symbol",
  "framework" : "NetworkExtension",
  "identifier" : "/documentation/NetworkExtension/NWPath",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Network Extension"
    ],
    "preciseIdentifier" : "c:objc(cs)NWPath"
  },
  "title" : "NWPath"
}
-->

# NWPath

The path made by a network connection, including information about its viability.

```
class NWPath
```

## Overview

For example, if the path status is [`NWPathStatus.satisfied`](/documentation/NetworkExtension/NWPathStatus/satisfied), then a connection attempt will be made.

When attached to a specific connection, a path takes all of the connection parameters into account. For example, if the route for a connection changes or is removed, the path will reflect that change. Note that every path is evaluated within the context of the process it is running in, and may be different across processes.

[`NWPath`](/documentation/NetworkExtension/NWPath) is a static object, and properties of the path will never change. To monitor changing network status, use Key-Value Observing (KVO) to watch a path property on another object. For information about KVO, see [Key-Value Observing Programming Guide](https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/KeyValueObserving/KeyValueObserving.html#//apple_ref/doc/uid/10000177i).

## Topics

### Getting network path properties

[`status`](/documentation/NetworkExtension/NWPath/status)

The evaluated status of the network path.

[`NWPathStatus`](/documentation/NetworkExtension/NWPathStatus)

[`expensive`](/documentation/NetworkExtension/NWPath/isExpensive)

A Boolean that indicates whether or not the path uses an expensive interface.

[`constrained`](/documentation/NetworkExtension/NWPath/isConstrained)

A Boolean that indicates whether or not the path uses a constrained interface, such as when using low-data mode.

### Comparing network paths

[`-  isEqualToPath:`](/documentation/NetworkExtension/NWPath/isEqual(to:))

Comparison method for [`NWPath`](/documentation/NetworkExtension/NWPath) objects.

## Relationships

### Conforms To

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

[`Equatable`](/documentation/Swift/Equatable)

[`CVarArg`](/documentation/Swift/CVarArg)

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

[`Hashable`](/documentation/Swift/Hashable)

### Inherits From

[`NSObject-swift.class`](/documentation/ObjectiveC/NSObject-swift.class)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)