<!--
{
  "documentType" : "article",
  "framework" : "NetworkExtension",
  "identifier" : "/documentation/NetworkExtension/content-filter-providers",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Content filter providers"
}
-->

# Content filter providers

Create an on-device network content filter.

## Discussion

An on-device network content filter examines user network content as it passes through the network stack and determines if it should block that content or allow it to pass on to its final destination. You might create a content filter and sell it to organizations, like schools and businesses, that want to prevent users from accessing specific Internet content.

A content filter consists of two providers that work in close cooperation:

- A filter data provider receives user network content and examines that content to determine whether to block or allow it.
- A filter control provider passes configuration information to the filter data provider to allow that provider to do its job.

This separation exists to guarantee user privacy. The filter data provider runs in a very restrictive sandbox that prevents user network content from escaping that provider. The filter control provider has a less restrictive sandbox but doesn’t have access to user network content. By combining these providers, your content filter has access to the network but can’t use that access to export user network content.

For example, your filter control provider might download a set of filtering rules and save them to a shared app group. Your filter data provider has *read-only* access to that app group, allowing it use those rules to filter content but still preventing it from exporting user network content.

For detailed information about content filter provider deployment options, see <doc://com.apple.documentation/documentation/Technotes/tn3134-network-extension-provider-deployment>.

> Note:
> When a VPN configuration is active, connections use the VPN instead of iCloud Private Relay. Network Extension providers also don’t use iCloud Private Relay.

## Topics

### Essentials

  <doc://com.apple.documentation/documentation/BundleResources/Entitlements/com.apple.developer.networking.networkextension>

### Data and control providers

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

The principal class for a filter data provider extension.

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

The principal class for a filter control provider extension.

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

A filter provider that evaluates network packets and decides whether to block, allow, or delay the packets.

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

An abstract base class shared by content filters.

### Flow handling

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

The abstract base class for types that represent flows of network data.

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

A flow of network data, originating from a WebKit-based browser, that the filter examines.

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

A flow of network data that the filter examines.

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

The result from a filter data provder after the initial examination of a flow.

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

The result from a filter data provder for subsequent chunks of data on a flow.

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

The result from a filter control provider.

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

The result from a filter data provider after the user requests remediation for a blocked flow.

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

The abstract base class for filter verdict classes.

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

The report of the data provider’s action on a flow.

### Filter configuration

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

An object to create and manage a content filter’s configuration.

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

Configuration parameters for a content filter.



---

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)