<!--
{
  "availability" : [
    "iOS: 13.0.0 -",
    "iPadOS: 13.0.0 -",
    "macCatalyst: 13.0.0 -",
    "macOS: 10.15.0 -",
    "tvOS: 13.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 6.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Foundation",
  "identifier" : "/documentation/Foundation/URLRequest/allowsConstrainedNetworkAccess",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Property",
  "symbol" : {
    "kind" : "Instance Property",
    "modules" : [
      "Foundation"
    ],
    "preciseIdentifier" : "s:10Foundation10URLRequestV30allowsConstrainedNetworkAccessSbvp"
  },
  "title" : "allowsConstrainedNetworkAccess"
}
-->

# allowsConstrainedNetworkAccess

A Boolean value that indicates whether the request may use the network when the user has specified Low Data Mode.

```
var allowsConstrainedNetworkAccess: Bool { get set }
```

## Discussion

In iOS 13 and later, users can set their device to use Low Data Mode as one of the Cellular Data Options in the Settings app. Users can turn on Low Data Mode to reduce your app’s network data usage. This property controls the request’s behavior when the user turns on Low Data Mode. If there are no nonconstrained network interfaces available and the request’s [`allowsConstrainedNetworkAccess`](/documentation/Foundation/URLRequest/allowsConstrainedNetworkAccess) property is <doc://com.apple.documentation/documentation/Swift/false>, any connection created from the request fails. In this case, the error provided when the connection fails has a [`networkUnavailableReason`](/documentation/Foundation/URLError/networkUnavailableReason-swift.property) property whose value is [`NSURLErrorNetworkUnavailableReasonConstrained`](/documentation/Foundation/NSURLErrorNetworkUnavailableReason/NSURLErrorNetworkUnavailableReasonConstrained).

Setting this property on a request overrides the [`allowsConstrainedNetworkAccess`](/documentation/Foundation/URLSessionConfiguration/allowsConstrainedNetworkAccess) property of [`URLSessionConfiguration`](/documentation/Foundation/URLSessionConfiguration). For example, if the session configuration’s [`allowsConstrainedNetworkAccess`](/documentation/Foundation/URLSessionConfiguration/allowsConstrainedNetworkAccess) value is <doc://com.apple.documentation/documentation/Swift/false>, and you create a task from a request whose [`allowsConstrainedNetworkAccess`](/documentation/Foundation/URLRequest/allowsConstrainedNetworkAccess) is <doc://com.apple.documentation/documentation/Swift/true>, the task treats the value as <doc://com.apple.documentation/documentation/Swift/true>.

Limit your app’s of use of constrained network access to user-initiated tasks, and put off discretionary tasks until a nonconstrained interface becomes available.

---

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)