# djacobs/PyAPNs

Python library for interacting with the Apple Push Notification service (APNs)

Repository: https://github.com/djacobs/PyAPNs
Canonical: https://ross.abutalabs.com/products/djacobs-pyapns
Homepage: http://pypi.python.org/pypi/apns/
Language: Python
License: MIT
License Family: permissive
Last push: 2025-06-06T13:40:53+00:00

## Health v2 (maintenance only)
Score: 44/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 25, release rhythm 35, longevity 100
- inputs: {"age_days": 5888, "days_push": 453, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1221, forks 361 (observed 2026-08-28T04:04:02.159544+00:00)

## What it is
PyAPNs is a Python library for interacting with Apple's Push Notification service (APNs). It supports sending single and batched notifications, custom payloads, enhanced error responses, and querying the feedback service for invalid device tokens.

## Use cases
- send push notifications to iOS devices from Python
- send APNs notifications with custom payload data
- batch multiple push notifications in one transmission
- query the APNs feedback service for failed device tokens
- send iOS 10 mutable-content notifications

## When to choose
- you need a lightweight Python client for Apple Push Notification service
- you want to send batched notifications and handle error responses
- you need to process APNs feedback to prune invalid device tokens

## When to avoid
- you need the modern token-based (JWT) APNs HTTP/2 API
- you need multi-platform push (FCM, etc.) in one library
- your project is not Python

## Facets
- artifact type: library
- maturity: maintenance
- function: http-client, sdk
- domain: mobile-development, apis, developer-tools
- platform: python, cross-platform
- tags: apns, push-notifications, ios, apple

## Member repositories
- djacobs/PyAPNs (main) score 44

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:04:02.159544+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T06:15:40.990543+00:00, confidence not recorded.
  - readme: https://github.com/djacobs/PyAPNs (fetched 2026-08-28T04:04:02.159544+00:00, sha ffbdc201b6b5)
  - homepage: http://pypi.python.org/pypi/apns/ (fetched 2026-08-29T12:24:17.662001+00:00, sha 2f1de5afe15f)
- Data as of 2026-08-30T08:39:29.467469+00:00.
