Skip to main content
PUT
/
apps
/
{app_id}
Update an app
curl --request PUT \
  --url https://api.onesignal.com/apps/{app_id} \
  --header 'Authorization: <authorization>' \
  --header 'Content-Type: <content-type>' \
  --data '{
  "name": "NAME_OF_NEW_APP",
  "organization_id": "YOUR_ORG_ID",
  "chrome_web_origin": "<string>",
  "site_name": "SITE_NAME",
  "safari_site_origin": "<string>",
  "chrome_web_default_notification_icon": "<string>",
  "safari_icon_256_256": "<string>",
  "safari_apns_p12": "<string>",
  "safari_apns_p12_password": "<string>",
  "fcm_v1_service_account_json": "<string>",
  "apns_p8": "<string>",
  "apns_env": "<string>",
  "apns_key_id": "<string>",
  "apns_team_id": "<string>",
  "apns_bundle_id": "<string>",
  "apns_p12": "<string>",
  "apns_p12_password": "<string>",
  "additional_data_is_root_payload": false
}'
{
  "id": "<string>",
  "name": "<string>",
  "players": 123,
  "messageable_players": 123,
  "created_at": "<string>",
  "updated_at": "<string>",
  "organization_id": "<string>"
}

Overview

Use this API to programmatically update an existing OneSignal app. This is useful when managing multiple apps or organizations, and avoids needing to manually use the OneSignal Dashboard. You can create an app under an existing organization or generate a new one. Push platform configurations for Web, Android, and iOS can be defined during app creation, though Email and SMS must be set up manually via the OneSignal Dashboard.
For an overview of how apps and organizations work in OneSignal, see Apps & Organizations.

How to use this API

Use your Organization API Key, to authenticate. This key is different from the standard REST API key. The Organization API key must be assocated with the organization_id in the request body.

Web push configuration

The following parameters are required for web push setup:
  • site_name
  • chrome_web_origin
  • safari_site_origin
  • safari_apns_p12: Empty string OR your Base64 encoded p12 certificate for Safari Push Notifications.
  • safari_apns_p12_password: Empty string OR Password for your safari_apns_p12 file if set.
URLs must use https:// and match your site’s origin.
safari_apns_p12 and safari_apns_p12_password are required for safari_site_origin to be set. If you do not have your own Safari p12 certificate, they should be included with blank values.If you use your own p12 certificate, you must update it every year. If you need help Base64 encoding your p12 certificate, you can use the following site: https://www.base64encode.org
Recommended parameters:
  • chrome_web_default_notification_icon: URL of a 256x256px PNG for Chrome.
  • safari_icon_256_256: URL of a 256x256px PNG for Safari.

Android mobile push configuration

The following parameter is required for Android push notifications. See Android: Firebase Credentials.
  • fcm_v1_service_account_json
If you change your FCM Service Account JSON file to a different Firebase project, your Android Subscriptions tied to the current project will become invalid. They will not be able to receive push notifications until they open your app again with this new FCM Service Account JSON file.
If you need help Base64 encoding your FCM Service Account JSON file, you can use the following site: https://www.base64encode.org

iOS mobile push configuration

iOS mobile push can be configured using either a p8 or a p12 authentication.
If you need help Base64 encoding your p8 key or p12 certificate, you can use the following site: https://www.base64encode.org
The following parameters are required if using p8 Token-based connection to APNS. You will likely never need to update these parameters if set correctly during app creation:
  • apns_key_id
  • apns_team_id
  • apns_bundle_id
  • apns_p8
The following parameters are required if using p12 APNS Authentication. These must be updated every year which is why we recommend using p8 authentication:
  • apns_p12
  • apns_p12_password
Optional parameters :
  • additional_data_as_root_payload: If set to true, the data paramater in your push notification payload will be added to the root payload of the notification. Helpful for customizations that require access to the data outside of our OSNotification payload additionalData property.

Headers

Content-Type
string
default:application/json
required
Authorization
string
default:Key YOUR_ORGANIZATION_API_KEY
required

Path Parameters

app_id
string
default:YOUR_APP_ID
required

Body

application/json
name
string
default:NAME_OF_NEW_APP
organization_id
string
default:YOUR_ORG_ID
chrome_web_origin
string
site_name
string
default:SITE_NAME
safari_site_origin
string
chrome_web_default_notification_icon
string
safari_icon_256_256
string
safari_apns_p12
string
safari_apns_p12_password
string
fcm_v1_service_account_json
string
apns_p8
string
apns_env
string
apns_key_id
string
apns_team_id
string
apns_bundle_id
string
apns_p12
string
apns_p12_password
string
additional_data_is_root_payload
boolean
default:false

Response

200 - application/json
id
string
name
string
players
integer
messageable_players
integer
created_at
string
updated_at
string
organization_id
string