---
title: PushKit
framework: PushKit
role: collection
role_heading: Framework
platforms: [iOS 8.0+, iPadOS 8.0+, Mac Catalyst 13.0+, macOS 10.15+, visionOS 1.0+, watchOS 6.0+]
path: pushkit
---

# PushKit

Respond to push notifications related to your app’s complications, file providers, and VoIP services.

## Overview

Overview The PushKit framework supports specialized notifications for updating your watchOS complications, responding to file provider changes, and receiving incoming Voice-over-IP (VoIP) calls. PushKit notifications differ from the ones you handle with the User Notifications framework. Instead of displaying an alert, badging your app’s icon, or playing a sound, PushKit notifications wake up or launch your app and give it time to respond. Both PushKit and User Notifications use the Apple Push Notification service (APNs) to deliver push notifications to user devices. To receive PushKit notifications, your app creates a PKPushRegistry object and uses it to configure the notification types it supports. When registration is successful, PushKit delivers a unique data token to your app that contains the identity of the current device and the push type. Forward that token along to the server, and include it in any notifications you send to the user. APNs uses the token to deliver the correct type of notification to the user’s device. For information about how to configure your server to work with APNs, see Setting up a remote notification server. note: PushKit doesn’t support some special use cases in which access to Apple Push Notification service (APNs) isn’t possible. For information about when you might need to support these cases, see iOS 10 and the Legacy VoIP Architecture.

## Topics

### Registration

- [Supporting PushKit Notifications in Your App](pushkit/supporting-pushkit-notifications-in-your-app.md)
- [PKPushRegistry](pushkit/pkpushregistry.md)
- [PKPushRegistryDelegate](pushkit/pkpushregistrydelegate.md)
- [PKPushCredentials](pushkit/pkpushcredentials.md)

### Push Types

- [Responding to VoIP Notifications from PushKit](pushkit/responding-to-voip-notifications-from-pushkit.md)
- [PKPushType](pushkit/pkpushtype.md)

### Payload

- [PKPushPayload](pushkit/pkpushpayload.md)

### Data export

- [Exporting delivery metrics logs](pushkit/exporting-delivery-metrics-logs.md)
- [Exporting broadcast push notification metrics](pushkit/exporting-broadcast-push-notification-metrics.md)

### Classes

- [PKVoIPPushMetadata](pushkit/pkvoippushmetadata.md)
