Python Client SDK

The OneSignal Python client is a server OneSignal SDK for Python. Integrate OneSignal with your backend events, data, and more.

Python API Client


Python >=3.6

Installation & Usage

pip install

pip install onesignal-python-api

You can also install directly from GitHub using:

pip install git+

You may need to run pip with root permission:

sudo pip install git+


Install via Setuptools.

python install --user

To install the package for all users:

sudo python install

Getting Started

Please follow the installation procedure and then run the following:

import onesignal
from onesignal.api import default_api

# See for a list of all supported configuration parameters.
# Some of the OneSignal endpoints require USER_KEY bearer token for authorization as long as others require APP_KEY
# (also knows as REST_API_KEY). We recommend adding both of them in the configuration page so that you will not need
# to figure it yourself.
configuration = onesignal.Configuration(
    app_key = "YOUR_APP_KEY",
    user_key = "YOUR_USER_KEY"

# Enter a context with an instance of the API client
with onesignal.ApiClient(configuration) as api_client:
    # Create an instance of the API class
    api_instance = default_api.DefaultApi(api_client)


All the OneSignal endpoints require either an app_key or user_key tokens for authorization. It is recommended to set up both of those keys during the initial config initialization so that you don't need to worry about which endpoint requires app_key and which user_key. You can get the value of these keys from your app dashboard and user settings pages.

Documentation for API Endpoints

All URIs are relative to

ClassMethodHTTP requestDescription
DefaultApicancel_notificationDELETE /notifications/{notification_id}Stop a scheduled or currently outgoing notification
DefaultApicreate_appPOST /appsCreate an app
DefaultApicreate_notificationPOST /notificationsCreate notification
DefaultApicreate_playerPOST /playersAdd a device
DefaultApicreate_segmentsPOST /apps/{app_id}/segmentsCreate Segments
DefaultApidelete_playerDELETE /players/{player_id}Delete a user record
DefaultApidelete_segmentsDELETE /apps/{app_id}/segments/{segment_id}Delete Segments
DefaultApiexport_playersPOST /players/csv_export?app_id={app_id}CSV export
DefaultApiget_appGET /apps/{app_id}View an app
DefaultApiget_appsGET /appsView apps
DefaultApiget_notificationGET /notifications/{notification_id}View notification
DefaultApiget_notification_historyPOST /notifications/{notification_id}/historyNotification History
DefaultApiget_notificationsGET /notificationsView notifications
DefaultApiget_outcomesGET /apps/{app_id}/outcomesView Outcomes
DefaultApiget_playerGET /players/{player_id}View device
DefaultApiget_playersGET /playersView devices
DefaultApiupdate_appPUT /apps/{app_id}Update an app
DefaultApiupdate_playerPUT /players/{player_id}Edit device
DefaultApiupdate_player_tagsPUT /apps/{app_id}/users/{external_user_id}Edit tags with external user id

Documentation For Models


[email protected]