curl --request POST \
--url https://api.onesignal.com/apps \
--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_key_id": "<string>",
"apns_team_id": "<string>",
"apns_bundle_id": "<string>",
"apns_p12": "<string>",
"apns_p12_password": "<string>",
"additional_data_is_root_payload": false
}
'import Onesignal from '@onesignal/node-onesignal';
const configuration = Onesignal.createConfiguration({
organizationApiKey: 'YOUR_ORGANIZATION_API_KEY',
});
const apiInstance = new Onesignal.DefaultApi(configuration);
// App
const app: Onesignal.App = {
name: "name_example",
android_gcm_sender_id: "android_gcm_sender_id_example",
gcm_key: "gcm_key_example",
chrome_web_origin: "chrome_web_origin_example",
chrome_key: "chrome_key_example",
chrome_web_default_notification_icon: "chrome_web_default_notification_icon_example",
chrome_web_sub_domain: "chrome_web_sub_domain_example",
apns_env: "sandbox",
apns_p12: "apns_p12_example",
apns_p12_password: "apns_p12_password_example",
safari_apns_p12: "safari_apns_p12_example",
safari_apns_p12_password: "safari_apns_p12_password_example",
apns_key_id: "apns_key_id_example",
apns_team_id: "apns_team_id_example",
apns_bundle_id: "apns_bundle_id_example",
apns_p8: "apns_p8_example",
safari_site_origin: "safari_site_origin_example",
safari_icon_256_256: "safari_icon_256_256_example",
site_name: "site_name_example",
organization_id: "organization_id_example",
additional_data_is_root_payload: true,
};
try {
const response = await apiInstance.createApp(app);
console.log(response);
} catch (e) {
if (e instanceof Onesignal.ApiException) {
// `e.errorMessages` flattens any error-envelope shape to a `string[]`;
// the raw parsed body remains on `e.body`.
console.error("createApp failed: HTTP " + e.code, e.errorMessages);
} else {
throw e;
}
}import onesignal
from onesignal.api import default_api
from onesignal.models import *
from pprint import pprint
# See configuration.py for a list of all supported configuration parameters.
# Some of the OneSignal endpoints require ORGANIZATION_API_KEY token for authorization, while others require REST_API_KEY.
# We recommend adding both of them in the configuration page so that you will not need to figure it out yourself.
configuration = onesignal.Configuration(
rest_api_key = "YOUR_REST_API_KEY", # App REST API key required for most endpoints
organization_api_key = "YOUR_ORGANIZATION_API_KEY" # Organization key is only required for creating new apps and other top-level endpoints
)
# 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)
app = App(
name="name_example",
android_gcm_sender_id="android_gcm_sender_id_example",
gcm_key="gcm_key_example",
chrome_web_origin="chrome_web_origin_example",
chrome_key="chrome_key_example",
chrome_web_default_notification_icon="chrome_web_default_notification_icon_example",
chrome_web_sub_domain="chrome_web_sub_domain_example",
apns_env="sandbox",
apns_p12="apns_p12_example",
apns_p12_password="apns_p12_password_example",
safari_apns_p12="safari_apns_p12_example",
safari_apns_p12_password="safari_apns_p12_password_example",
apns_key_id="apns_key_id_example",
apns_team_id="apns_team_id_example",
apns_bundle_id="apns_bundle_id_example",
apns_p8="apns_p8_example",
safari_site_origin="safari_site_origin_example",
safari_icon_256_256="safari_icon_256_256_example",
site_name="site_name_example",
organization_id="organization_id_example",
additional_data_is_root_payload=True,
)
try:
# Create an app
api_response = api_instance.create_app(app)
pprint(api_response)
except onesignal.ApiException as e:
print("Exception when calling DefaultApi->create_app: %s\n" % e)
print("Status Code: %s" % e.status)
print("Response Body: %s" % e.body)<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure Bearer authorization: organization_api_key
$config = onesignal\client\Configuration::getDefaultConfiguration()
->setRestApiKeyToken('YOUR_REST_API_KEY')
->setOrganizationApiKeyToken('YOUR_ORGANIZATION_API_KEY');
$apiInstance = new onesignal\client\Api\DefaultApi(
// If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
// This is optional, `GuzzleHttp\Client` will be used as default.
new GuzzleHttp\Client(),
$config
);
$app = new \onesignal\client\model\App(); // \onesignal\client\model\App
try {
$result = $apiInstance->createApp($app);
print_r($result);
} catch (\onesignal\client\ApiException $e) {
echo 'Exception when calling DefaultApi->createApp: ', $e->getMessage(), PHP_EOL;
echo 'Status Code: ', $e->getCode(), PHP_EOL;
// getErrorMessages() flattens any error-envelope shape to a string[];
// the raw body remains on getResponseBody().
echo 'Error Messages: ', implode(', ', $e->getErrorMessages()), PHP_EOL;
echo 'Response Body: ', $e->getResponseBody(), PHP_EOL;
} catch (\Exception $e) {
echo 'Exception when calling DefaultApi->createApp: ', $e->getMessage(), PHP_EOL;
}package main
import (
"context"
"fmt"
"os"
"github.com/OneSignal/onesignal-go-api/v5"
)
func main() {
app := *onesignal.NewApp() // App |
configuration := onesignal.NewConfiguration()
apiClient := onesignal.NewAPIClient(configuration)
orgAuth := context.WithValue(context.Background(), onesignal.OrganizationApiKey, "YOUR_ORGANIZATION_API_KEY") // Organization API key is only required for creating new apps and other top-level endpoints
resp, r, err := apiClient.DefaultApi.CreateApp(orgAuth).App(app).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `DefaultApi.CreateApp``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
if apiErr, ok := err.(*onesignal.GenericOpenAPIError); ok {
// ErrorMessages() flattens any error-envelope shape to a []string;
// the raw body remains on Body().
fmt.Fprintf(os.Stderr, "Error Messages: %v\n", apiErr.ErrorMessages())
fmt.Fprintf(os.Stderr, "Response Body: %s\n", apiErr.Body())
}
}
// response from `CreateApp`: App
fmt.Fprintf(os.Stdout, "Response from `DefaultApi.CreateApp`: %v\n", resp)
}require 'onesignal'
# setup authorization
OneSignal.configure do |config|
# Configure Bearer authorization: organization_api_key
config.organization_api_key = 'YOUR_ORGANIZATION_API_KEY'
end
api_instance = OneSignal::DefaultApi.new
app = OneSignal::App.new # App |
begin
# Create an app
result = api_instance.create_app(app)
p result
rescue OneSignal::ApiError => e
puts "Error when calling DefaultApi->create_app: #{e}"
puts "Status Code: #{e.code}"
# `e.error_messages` flattens any error-envelope shape to an Array<String>;
# the raw body remains on `e.response_body`.
puts "Error Messages: #{e.error_messages}"
puts "Response Body: #{e.response_body}"
end// Import classes:
import com.onesignal.client.ApiClient;
import com.onesignal.client.ApiException;
import com.onesignal.client.Configuration;
import com.onesignal.client.auth.*;
import com.onesignal.client.model.*;
import com.onesignal.client.api.DefaultApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://api.onesignal.com");
// Configure HTTP bearer authorization: organization_api_key
HttpBearerAuth organization_api_key = (HttpBearerAuth) defaultClient.getAuthentication("organization_api_key");
organization_api_key.setBearerToken("YOUR_ORGANIZATION_API_KEY");
DefaultApi apiInstance = new DefaultApi(defaultClient);
App app = new App(); // App |
try {
App result = apiInstance.createApp(app);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling DefaultApi#createApp");
System.err.println("Status code: " + e.getCode());
// getErrorMessages() flattens any error-envelope shape to a List<String>;
// the raw body remains on getResponseBody().
System.err.println("Error messages: " + e.getErrorMessages());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}using System;
using System.Collections.Generic;
using System.Diagnostics;
using OneSignalApi.Api;
using OneSignalApi.Client;
using OneSignalApi.Model;
namespace Example
{
public class CreateAppExample
{
public static void Main()
{
Configuration config = new Configuration();
config.BasePath = "https://api.onesignal.com";
// Configure Bearer token for authorization: organization_api_key
config.AccessToken = "YOUR_ORGANIZATION_API_KEY";
var apiInstance = new DefaultApi(config);
var app = new App(); // App |
try
{
// Create an app
App result = apiInstance.CreateApp(app);
Debug.WriteLine(result);
}
catch (ApiException e)
{
Debug.Print("Exception when calling DefaultApi.CreateApp: " + e.Message );
Debug.Print("Status Code: "+ e.ErrorCode);
// e.ErrorMessages flattens any error-envelope shape to an IReadOnlyList<string>;
// the raw body remains on e.ErrorContent.
Debug.Print("Error Messages: " + string.Join(", ", e.ErrorMessages));
Debug.Print("Response Body: " + e.ErrorContent);
Debug.Print(e.StackTrace);
}
}
}
}use onesignal_rust_api::apis::configuration::Configuration;
use onesignal_rust_api::apis::default_api;
use onesignal_rust_api::models;
#[tokio::main]
async fn main() {
let mut configuration = Configuration::new();
configuration.organization_api_key_token = Some("YOUR_ORGANIZATION_API_KEY".to_string());
// Realistic values are pulled from the spec's `example:` fields where present.
let app: models::App = todo!();
match default_api::create_app(&configuration, app).await {
Ok(resp) => println!("{:?}", resp),
Err(e @ onesignal_rust_api::apis::Error::ResponseError(_)) => {
// `e.error_messages()` flattens any error-envelope shape to a Vec<String>;
// the raw response remains on the ResponseError variant.
eprintln!("create_app failed: {:?}", e.error_messages());
}
Err(e) => eprintln!("create_app failed: {:?}", e),
}
}{
"id": "<string>",
"name": "<string>",
"players": 123,
"messageable_players": 123,
"created_at": "<string>",
"updated_at": "<string>",
"organization_id": "<string>"
}{
"errors": [
"You do not have permission to create an app in this organization."
]
}{
"errors": [
"Organization not found"
]
}{
"errors": [
"API rate limit exceeded"
]
}{
"errors": [
"Service temporarily unavailable"
]
}Create an app
Programmatically create a new OneSignal app via the REST API. This guide explains required fields, supported platform configurations (Web, Android, iOS), and how to properly authenticate using your Organization API key.
curl --request POST \
--url https://api.onesignal.com/apps \
--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_key_id": "<string>",
"apns_team_id": "<string>",
"apns_bundle_id": "<string>",
"apns_p12": "<string>",
"apns_p12_password": "<string>",
"additional_data_is_root_payload": false
}
'import Onesignal from '@onesignal/node-onesignal';
const configuration = Onesignal.createConfiguration({
organizationApiKey: 'YOUR_ORGANIZATION_API_KEY',
});
const apiInstance = new Onesignal.DefaultApi(configuration);
// App
const app: Onesignal.App = {
name: "name_example",
android_gcm_sender_id: "android_gcm_sender_id_example",
gcm_key: "gcm_key_example",
chrome_web_origin: "chrome_web_origin_example",
chrome_key: "chrome_key_example",
chrome_web_default_notification_icon: "chrome_web_default_notification_icon_example",
chrome_web_sub_domain: "chrome_web_sub_domain_example",
apns_env: "sandbox",
apns_p12: "apns_p12_example",
apns_p12_password: "apns_p12_password_example",
safari_apns_p12: "safari_apns_p12_example",
safari_apns_p12_password: "safari_apns_p12_password_example",
apns_key_id: "apns_key_id_example",
apns_team_id: "apns_team_id_example",
apns_bundle_id: "apns_bundle_id_example",
apns_p8: "apns_p8_example",
safari_site_origin: "safari_site_origin_example",
safari_icon_256_256: "safari_icon_256_256_example",
site_name: "site_name_example",
organization_id: "organization_id_example",
additional_data_is_root_payload: true,
};
try {
const response = await apiInstance.createApp(app);
console.log(response);
} catch (e) {
if (e instanceof Onesignal.ApiException) {
// `e.errorMessages` flattens any error-envelope shape to a `string[]`;
// the raw parsed body remains on `e.body`.
console.error("createApp failed: HTTP " + e.code, e.errorMessages);
} else {
throw e;
}
}import onesignal
from onesignal.api import default_api
from onesignal.models import *
from pprint import pprint
# See configuration.py for a list of all supported configuration parameters.
# Some of the OneSignal endpoints require ORGANIZATION_API_KEY token for authorization, while others require REST_API_KEY.
# We recommend adding both of them in the configuration page so that you will not need to figure it out yourself.
configuration = onesignal.Configuration(
rest_api_key = "YOUR_REST_API_KEY", # App REST API key required for most endpoints
organization_api_key = "YOUR_ORGANIZATION_API_KEY" # Organization key is only required for creating new apps and other top-level endpoints
)
# 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)
app = App(
name="name_example",
android_gcm_sender_id="android_gcm_sender_id_example",
gcm_key="gcm_key_example",
chrome_web_origin="chrome_web_origin_example",
chrome_key="chrome_key_example",
chrome_web_default_notification_icon="chrome_web_default_notification_icon_example",
chrome_web_sub_domain="chrome_web_sub_domain_example",
apns_env="sandbox",
apns_p12="apns_p12_example",
apns_p12_password="apns_p12_password_example",
safari_apns_p12="safari_apns_p12_example",
safari_apns_p12_password="safari_apns_p12_password_example",
apns_key_id="apns_key_id_example",
apns_team_id="apns_team_id_example",
apns_bundle_id="apns_bundle_id_example",
apns_p8="apns_p8_example",
safari_site_origin="safari_site_origin_example",
safari_icon_256_256="safari_icon_256_256_example",
site_name="site_name_example",
organization_id="organization_id_example",
additional_data_is_root_payload=True,
)
try:
# Create an app
api_response = api_instance.create_app(app)
pprint(api_response)
except onesignal.ApiException as e:
print("Exception when calling DefaultApi->create_app: %s\n" % e)
print("Status Code: %s" % e.status)
print("Response Body: %s" % e.body)<?php
require_once(__DIR__ . '/vendor/autoload.php');
// Configure Bearer authorization: organization_api_key
$config = onesignal\client\Configuration::getDefaultConfiguration()
->setRestApiKeyToken('YOUR_REST_API_KEY')
->setOrganizationApiKeyToken('YOUR_ORGANIZATION_API_KEY');
$apiInstance = new onesignal\client\Api\DefaultApi(
// If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
// This is optional, `GuzzleHttp\Client` will be used as default.
new GuzzleHttp\Client(),
$config
);
$app = new \onesignal\client\model\App(); // \onesignal\client\model\App
try {
$result = $apiInstance->createApp($app);
print_r($result);
} catch (\onesignal\client\ApiException $e) {
echo 'Exception when calling DefaultApi->createApp: ', $e->getMessage(), PHP_EOL;
echo 'Status Code: ', $e->getCode(), PHP_EOL;
// getErrorMessages() flattens any error-envelope shape to a string[];
// the raw body remains on getResponseBody().
echo 'Error Messages: ', implode(', ', $e->getErrorMessages()), PHP_EOL;
echo 'Response Body: ', $e->getResponseBody(), PHP_EOL;
} catch (\Exception $e) {
echo 'Exception when calling DefaultApi->createApp: ', $e->getMessage(), PHP_EOL;
}package main
import (
"context"
"fmt"
"os"
"github.com/OneSignal/onesignal-go-api/v5"
)
func main() {
app := *onesignal.NewApp() // App |
configuration := onesignal.NewConfiguration()
apiClient := onesignal.NewAPIClient(configuration)
orgAuth := context.WithValue(context.Background(), onesignal.OrganizationApiKey, "YOUR_ORGANIZATION_API_KEY") // Organization API key is only required for creating new apps and other top-level endpoints
resp, r, err := apiClient.DefaultApi.CreateApp(orgAuth).App(app).Execute()
if err != nil {
fmt.Fprintf(os.Stderr, "Error when calling `DefaultApi.CreateApp``: %v\n", err)
fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
if apiErr, ok := err.(*onesignal.GenericOpenAPIError); ok {
// ErrorMessages() flattens any error-envelope shape to a []string;
// the raw body remains on Body().
fmt.Fprintf(os.Stderr, "Error Messages: %v\n", apiErr.ErrorMessages())
fmt.Fprintf(os.Stderr, "Response Body: %s\n", apiErr.Body())
}
}
// response from `CreateApp`: App
fmt.Fprintf(os.Stdout, "Response from `DefaultApi.CreateApp`: %v\n", resp)
}require 'onesignal'
# setup authorization
OneSignal.configure do |config|
# Configure Bearer authorization: organization_api_key
config.organization_api_key = 'YOUR_ORGANIZATION_API_KEY'
end
api_instance = OneSignal::DefaultApi.new
app = OneSignal::App.new # App |
begin
# Create an app
result = api_instance.create_app(app)
p result
rescue OneSignal::ApiError => e
puts "Error when calling DefaultApi->create_app: #{e}"
puts "Status Code: #{e.code}"
# `e.error_messages` flattens any error-envelope shape to an Array<String>;
# the raw body remains on `e.response_body`.
puts "Error Messages: #{e.error_messages}"
puts "Response Body: #{e.response_body}"
end// Import classes:
import com.onesignal.client.ApiClient;
import com.onesignal.client.ApiException;
import com.onesignal.client.Configuration;
import com.onesignal.client.auth.*;
import com.onesignal.client.model.*;
import com.onesignal.client.api.DefaultApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://api.onesignal.com");
// Configure HTTP bearer authorization: organization_api_key
HttpBearerAuth organization_api_key = (HttpBearerAuth) defaultClient.getAuthentication("organization_api_key");
organization_api_key.setBearerToken("YOUR_ORGANIZATION_API_KEY");
DefaultApi apiInstance = new DefaultApi(defaultClient);
App app = new App(); // App |
try {
App result = apiInstance.createApp(app);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling DefaultApi#createApp");
System.err.println("Status code: " + e.getCode());
// getErrorMessages() flattens any error-envelope shape to a List<String>;
// the raw body remains on getResponseBody().
System.err.println("Error messages: " + e.getErrorMessages());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}using System;
using System.Collections.Generic;
using System.Diagnostics;
using OneSignalApi.Api;
using OneSignalApi.Client;
using OneSignalApi.Model;
namespace Example
{
public class CreateAppExample
{
public static void Main()
{
Configuration config = new Configuration();
config.BasePath = "https://api.onesignal.com";
// Configure Bearer token for authorization: organization_api_key
config.AccessToken = "YOUR_ORGANIZATION_API_KEY";
var apiInstance = new DefaultApi(config);
var app = new App(); // App |
try
{
// Create an app
App result = apiInstance.CreateApp(app);
Debug.WriteLine(result);
}
catch (ApiException e)
{
Debug.Print("Exception when calling DefaultApi.CreateApp: " + e.Message );
Debug.Print("Status Code: "+ e.ErrorCode);
// e.ErrorMessages flattens any error-envelope shape to an IReadOnlyList<string>;
// the raw body remains on e.ErrorContent.
Debug.Print("Error Messages: " + string.Join(", ", e.ErrorMessages));
Debug.Print("Response Body: " + e.ErrorContent);
Debug.Print(e.StackTrace);
}
}
}
}use onesignal_rust_api::apis::configuration::Configuration;
use onesignal_rust_api::apis::default_api;
use onesignal_rust_api::models;
#[tokio::main]
async fn main() {
let mut configuration = Configuration::new();
configuration.organization_api_key_token = Some("YOUR_ORGANIZATION_API_KEY".to_string());
// Realistic values are pulled from the spec's `example:` fields where present.
let app: models::App = todo!();
match default_api::create_app(&configuration, app).await {
Ok(resp) => println!("{:?}", resp),
Err(e @ onesignal_rust_api::apis::Error::ResponseError(_)) => {
// `e.error_messages()` flattens any error-envelope shape to a Vec<String>;
// the raw response remains on the ResponseError variant.
eprintln!("create_app failed: {:?}", e.error_messages());
}
Err(e) => eprintln!("create_app failed: {:?}", e),
}
}{
"id": "<string>",
"name": "<string>",
"players": 123,
"messageable_players": 123,
"created_at": "<string>",
"updated_at": "<string>",
"organization_id": "<string>"
}{
"errors": [
"You do not have permission to create an app in this organization."
]
}{
"errors": [
"Organization not found"
]
}{
"errors": [
"API rate limit exceeded"
]
}{
"errors": [
"Service temporarily unavailable"
]
}Overview
Use this API to programmatically create a new OneSignal app. This is useful for automating app setup, particularly 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.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 theorganization_id in the request body.
Web push configuration
The following parameters are required for web push setup:site_namechrome_web_originsafari_site_originsafari_apns_p12: Empty string OR your Base64 encoded p12 certificate for Safari Push Notifications.safari_apns_p12_password: Empty string OR Password for yoursafari_apns_p12file if set.
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.orgchrome_web_default_notification_icon: URL of a256x256pxPNG for Chrome.safari_icon_256_256: URL of a256x256pxPNG for Safari.
Android mobile push configuration
The following parameter is required for Android push notifications. See Android: Firebase Credentials.fcm_v1_service_account_json
iOS mobile push configuration
iOS mobile push can be configured using either a p8 or a p12 authentication.apns_key_idapns_team_idapns_bundle_idapns_p8
apns_p12apns_p12_password
additional_data_as_root_payload: If set totrue, thedataparamater 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 payloadadditionalDataproperty.
Body
An internal name you set to help organize and track Apps. Maximum 128 characters.
The Organization ID that the app will be associated with.
The name of your website. Used for web push notification titles when omitted from the notification payload. Required for web push notifications.
The full https URL to your default icon resource. The icon should be a 256x256px PNG.
The full https URL to your default icon resource. The icon should be a 256x256px PNG.
A Base64 encoded p12 certificate for Safari Push Notifications. If omitted, we will assign one to your app for you.
The password for the safari_apns_p12 file if applicable.
Your FCM Service Account JSON file converted to base64 format. See Android: Firebase Credentials. Required for Android mobile push notifications.
A Base64 encoded p8 file for iOS mobile Push Notifications. Omit if using apns_p12. See p8 Token-based connection to APNS.
The APS Environment Entitlement to specify whether this is a production or development environment. Defaults to production. Use with apns_p8.
production, development The APNS Key ID. Use with apns_p8. See p8 Token-based connection to APNS.
The APNS Team ID. Use with apns_p8. See p8 Token-based connection to APNS.
The Bundle ID for your app. Use with apns_p8. See p8 Token-based connection to APNS.
A Base64 encoded p12 certificate for iOS mobile push notifications. Omit if using apns_p8. See p12 APNS Authentication.
The password for the apns_p12 file if applicable.
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.
Response
200
The OneSignal App ID in UUID v4 format.
An internal name you set to help organize and track Apps. Maximum 128 characters.
The total number of Subscriptions in the app.
The number of subscribed web and mobile Subscriptions. These Subscriptions are eligible to receive messages in the app. Omitted when view=config is passed.
The date and time the app was created.
The date and time the app was last updated.
The Organization ID in which the app was created.
Was this page helpful?