Skip to main content

An efficient APNs Client Library for Python/asyncio

Project description Requirements Status

aioapns is a library designed specifically for sending push-notifications to iOS devices via Apple Push Notification Service. aioapns provides an efficient client through asynchronous HTTP2 protocol for use with Python’s asyncio framework.

aioapns requires Python 3.5 or later.


In my testing aioapns allows you to send on average 1.3k notifications per second on a single core.


  • Internal connection pool which adapts to the current load
  • Ability to set TTL (time to live) for notifications
  • Ability to set priority for notifications
  • Ability to set collapse-key for notifications
  • Ability to use production or development APNs server


Use pip to install:

$ pip install aioapns

Basic Usage

from uuid import uuid4
from aioapns import APNs, NotificationRequest

async def run():
    apns = APNs('/path/to/apns-production-cert.pem', use_sandbox=False)
    request = NotificationRequest(
        message = {
            "aps": {
                "alert": "Hello from APNs",
                "badge": "1",
        notification_id=str(uuid4())  # optional
        time_to_live=3,               # optional
    await apns.send_notification(request)

loop = asyncio.get_event_loop()


aioapns is developed and distributed under the Apache 2.0 license.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
aioapns-1.3.tar.gz (6.1 kB) Copy SHA256 hash SHA256 Source None Jan 29, 2018

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page