# App configuration API

## configureApplication for iOS

Configures iOS platform for the app.

`POST` `https://api.pushwoosh.com/json/1.3/configureApplication`


#### Request Body

| Name                       | Type    | Description                                      |
| -------------------------- | ------- |--------------------------------------------------|
| auth                       | string  | [API access token](/developer/api-reference/api-identifiers/#api-access-token) from Pushwoosh Control Panel   |
| application                | string  | [Pushwoosh application code](/developer/api-reference/api-identifiers/#application-code)                      |
| device\_type               | integer | Must be 1 for iOS                               |
| ios\_key\_management\_type | string  | "manual"                                        |
| ios\_key\_file             | string  | Base64-encoded iOS key file content             |
| ios\_key\_password         | string  | Password for iOS key file                       |
| ios\_gateway               | integer | "0" for sandbox, "1" for production             |
| ios\_framework             | string  | Possible values: "native", "cordova", "titanium" |


<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "providers": {
      "ios": true,
      "amazon": false,
      "android": false,
      "baidu_android": false,
      "chrome": false,
      "email": false,
      "firefox": false,
      "huawei_android": false,
      "internet_explorer": false,
      "osx": false,
      "safari": false,
      "sms": false,
      "web": false,
      "whats_app": false,
      "windows": false
    }
  }
}
```
</TabItem>
</Tabs>


```json title="Example"
{
  "request": {
    "auth": "yxoPUlwqm…………pIyEX4H",      // required. API access token from Pushwoosh Control Panel
    "application": "XXXXX-XXXXX",        // required. Pushwoosh application code
    "device_type": 1,                    // required. 1 for iOS
    "ios_key_management_type": "manual", // required. "manual"
    "ios_key_file": "MIIMY...BAQ==",     // required. base64-encoded iOS key file content
    "ios_key_password": "password",      // required.
    "ios_gateway": 1,                    // required. "0" (sandbox) | "1" (production)
    "ios_framework": "native"            // required. possible values: "native", "cordova", "titanium",
                                         //           "marmalade", "adobeAir", "corona", "xamarin",
                                         //           "phoneGapBuild", "triggerIO", "unity"
  }
}


```

## configureApplication for Android

Configures Android platform for the app.

`POST` `https://api.pushwoosh.com/json/1.3/configureApplication`


#### Request Body

| Name                                                             | Type    | Description                                                                                                                           |
| ---------------------------------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| auth\*                           | string  | [API access token](/developer/api-reference/api-identifiers/#api-access-token) from your Pushwoosh Control Panel.                                                                                   |
| application\*                    | string  | [Pushwoosh application code](/developer/api-reference/api-identifiers/#application-code)                                                                                                           |
| device\_type\*                   | integer | Must be 3 for Android.                                                                                                                |
| android\_framework\*             | string  | Android framework. Possible values: native, cordova, marmalade, adobeAir, corona, xamarin, phoneGapBuild, triggerIO, titanium, unity. |
| android\_fcm\_service\_account\* | object | FCM service account key (JSON file generated in Firebase project settings).                                                           |

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "providers": {
      "ios": false,
      "amazon": false,
      "android": true,
      "baidu_android": false,
      "chrome": false,
      "email": false,
      "firefox": false,
      "huawei_android": false,
      "internet_explorer": false,
      "osx": false,
      "safari": false,
      "sms": false,
      "web": false,
      "whats_app": false,
      "windows": false
    }
  }
}
```
</TabItem>
</Tabs>



<Tabs>
<TabItem label="Example">
```json
{
  "request": {
    "auth": "Z2PLR....IRwTqHwCr",
    "application": "87E33-XXXXX",
    "device_type": 3,
    "android_fcm_service_account": {
      "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
      "auth_uri": "https://accounts.google.com/o/oauth2/auth",
      "client_email": "****@foobar.iam.gserviceaccount.com",
      "client_id": "115********6584854983",
      "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-zffgu%40foobar.iam.gserviceaccount.com",
      "private_key": "-----BEGIN PRIVATE KEY-----\nuH/OU/fIL+i6Wm8as...\n-----END PRIVATE KEY-----\n",
      "private_key_id": "e3749********6d9",
      "project_id": "app-android",
      "token_uri": "https://oauth2.googleapis.com/token",
      "type": "service_account",
      "universe_domain": "googleapis.com"
    },
    "android_framework": "native"
  }
}

```
</TabItem>
</Tabs>

## configureApplication for Mac OS X

Configures Mac OS X platform for the app.

`POST` `https://api.pushwoosh.com/json/1.3/configureApplication`


#### Request Body

| Name                                                           | Type    | Description                                         |
| -------------------------------------------------------------- | ------- | --------------------------------------------------- |
| auth\*                         | string  | [API access token](/developer/api-reference/api-identifiers/#api-access-token) from Pushwoosh Control Panel.      |
| application\*                  | string  | [Pushwoosh application code](/developer/api-reference/api-identifiers/#application-code)                       |
| device\_type\*                 | integer | Must be 7 for Mac OS X.                             |
| macos\_key\_management\_type\* | string  | Only "manual" type is available currently.          |
| macos\_cert\_file                                              | string  | Base64-encoded Mac OS X certificate file content.   |
| macos\_key\_file                                               | string  | Base64-encoded Mac OS X key file content.           |
| macos\_key\_password                                           | string  | Key file password.                                  |
| macos\_gateway\*               | integer | Push gateway. "0" for sandbox, "1" for production.  |

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "providers": {
      "ios": false,
      "amazon": false,
      "android": false,
      "baidu_android": false,
      "chrome": false,
      "email": false,
      "firefox": false,
      "huawei_android": false,
      "internet_explorer": false,
      "osx": true,
      "safari": false,
      "sms": false,
      "web": false,
      "whats_app": false,
      "windows": false
    }
  }
}
```
</TabItem>
</Tabs>



```json title="Example"
{
  "request":{
    "auth": "yxoPUlwqm…………pIyEX4H",                   // required. API access token from Pushwoosh Control Panel
    "application": "XXXXX-XXXXX",                     // required. Pushwoosh application code
    "device_type": 7,                                 // required. 7 for Mac OS X
    "macos_key_management_type": "manual",            // required. "manual" 
    "macos_cert_file": "iVBORw0KGgoAAAANSUhEUgAABB…", // optional. Base64-encoded content of Mac OS X certificate file 
    "macos_key_file": "iVBORw0KGgoAAAANSUhEUgAABB…",  // optional. Base64-encoded content of Mac OS X key file 
    "macos_key_password": "PASSWORD",                 // optional. Key file password 
    "macos_gateway": 1                                // required. push gateway. "0" for sandbox or "1" for production 
  }
}
```

## configureApplication for Windows

Configures Windows platforms for the app.

`POST` `https://api.pushwoosh.com/json/1.3/configureApplication`


#### Request Body

| Name                                           | Type    | Description                                                                           |
| ---------------------------------------------- | ------- | ------------------------------------------------------------------------------------- |
| auth\*         | string  | [API access token](/developer/api-reference/api-identifiers/#api-access-token) from Pushwoosh Control Panel.                                        |
| application\*  | string  | [Pushwoosh application code](/developer/api-reference/api-identifiers/#application-code)                                                           |
| device\_type\* | integer | Must be 8 for Windows.                                                                |
| wns\_psid\*    | string  | Package security identifier from Windows Store for the app. Starts with "ms-app://".  |
| wns\_secret\*  | string  | Client Secret from Windows Store for the app.                                         |

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "providers": {
      "ios": false,
      "amazon": false,
      "android": false,
      "baidu_android": false,
      "chrome": false,
      "email": false,
      "firefox": false,
      "huawei_android": false,
      "internet_explorer": false,
      "osx": false,
      "safari": false,
      "sms": false,
      "web": false,
      "whats_app": false,
      "windows": true
    }
  }
}
```
</TabItem>
</Tabs>



```json title="Example"
{
  "request": {
    "auth": "yxoPUlwqm…………pIyEX4H",  // required. API access token from Pushwoosh Control Panel
    "application": "XXXXX-XXXXX",    // required. Pushwoosh application code
    "device_type": 8,                // required. 8 for Windows
    "wns_psid": "ms-app://…",        // required. package security identifier of the app from Windows Store
    "wns_secret": "CLIENT_SECRET"    // required. Windows client secret 
  }
}


```

## configureApplication for Amazon

Configures Amazon platform for the app.

`POST` `https://api.pushwoosh.com/json/1.3/configureApplication`


#### Request Body

| Name                                             | Type    | Description                                                    |
| ------------------------------------------------ | ------- | -------------------------------------------------------------- |
| auth\*           | string  | [API access token](/developer/api-reference/api-identifiers/#api-access-token) from Pushwoosh Control Panel.                 |
| application\*    | string  | [Pushwoosh application code](/developer/api-reference/api-identifiers/#application-code)                                  |
| device\_type\*   | integer | Must be 9 for Amazon.                                          |
| adm\_cid\*       | string  | Amazon client ID.                                              |
| adm\_secret\*    | string  | Amazon client secret.                                          |
| adm\_framework\* | string  | Amazon framework. Possible values: _native, unity, adobeAir._  |

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "providers": {
      "ios": false,
      "amazon": true,
      "android": false,
      "baidu_android": false,
      "chrome": false,
      "email": false,
      "firefox": false,
      "huawei_android": false,
      "internet_explorer": false,
      "osx": false,
      "safari": false,
      "sms": false,
      "web": false,
      "whats_app": false,
      "windows": false
    }
  }
}
```
</TabItem>
</Tabs>



```json title="Example"
{
  "request": {
    "auth": "yxoPUlwqm…………pIyEX4H",  // required. API access token from Pushwoosh Control Panel
    "application": "XXXXX-XXXXX",    // required. Pushwoosh application code
    "device_type": 9,                // required. 9 for Amazon
    "adm_cid": "CLIENT_ID",          // required. Amazon client ID
    "adm_secret": "CLIENT_SECRET",   // required. Amazon Client Secret
    "adm_framework": "native"        // required. possible values: native, unity, adobeAir. 
  }
}
```

## configureApplication for Chrome

Configures Chrome platform for the app.

`POST` `https://api.pushwoosh.com/json/1.3/configureApplication`


#### Request Body

| Name                         | Type    | Description                                                                                         | Required |
|------------------------------|---------|-----------------------------------------------------------------------------------------------------|----------|
| auth*                         | string  | [API access token](/developer/api-reference/api-identifiers/#api-access-token) from Pushwoosh Control Panel.                                                       | Required |
| application*                  | string  | [Pushwoosh application code](/developer/api-reference/api-identifiers/#application-code)                                                                        | Required |
| device_type*                  | integer | Must be 11 for Chrome.                                                                               | Required |
| chrome_fcm_service_account*   | object  | FCM service account key (JSON file generated in Firebase project settings).                          | Required |
| chrome_vapid_key*             | string  | Public VAPID (Voluntary Application Server Identification) key used for push notification authentication in Chrome. | Required |
| chrome_vapid_private_key*     | string  | Private VAPID key used for signing and sending push notifications in Chrome.                         | Required |


```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "providers": {
      "ios": false,
      "amazon": false,
      "android": false,
      "baidu_android": false,
      "chrome": true,
      "email": false,
      "firefox": false,
      "huawei_android": false,
      "internet_explorer": false,
      "osx": false,
      "safari": false,
      "sms": false,
      "web": false,
      "whats_app": false,
      "windows": false
    }
  }
}
```



<Tabs>
<TabItem label="Example">
```json
{
  "request": {
    "auth": "Z2PLR....IRwTqHwCr",
    "application": "87E33-XXXXX",
    "device_type": 11,
    "chrome_fcm_service_account": {
      "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
      "auth_uri": "https://accounts.google.com/o/oauth2/auth",
      "client_email": "****@foobar.iam.gserviceaccount.com",
      "client_id": "11529......6584854983",
      "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/****foobar.iam.gserviceaccount.com",
      "private_key": "-----BEGIN PRIVATE KEY-----\nuH/OU/fIm8as...\n-----END PRIVATE KEY-----\n",
      "private_key_id": "e3749......e66d9",
      "project_id": "app-chrome",
      "token_uri": "https://oauth2.googleapis.com/token",
      "type": "service_account",
      "universe_domain": "googleapis.com"
    },
    "chrome_vapid_key": "BEr....KPqQvCbU",
    "chrome_vapid_private_key": "ee....flOqmSo"
  }
}

```
</TabItem>
</Tabs>

## configureApplication for Safari

Configures Safari platform for the app.

`POST` `https://api.pushwoosh.com/json/1.3/configureApplication`


#### Request Body

| Name                                                            | Type    | Description                                     |
| --------------------------------------------------------------- | ------- |-------------------------------------------------|
| auth\*                          | string  | [API access token](/developer/api-reference/api-identifiers/#api-access-token) from Pushwoosh Control Panel.  |
| application\*                   | string  | [Pushwoosh application code](/developer/api-reference/api-identifiers/#application-code)                    |
| device\_type\*                  | integer | Must be 10 for Safari.                          |
| safari\_key\_management\_type\* | string  | Only "manual" type is available currently.      |
| safari\_website\_name                                           | string  | Website name.                                   |
| safari\_allowed\_domains                                        | array   | Ex: https://site1.com", https://site2.com" |
| safari\_url\_template\*         | string  | Safari URL template formatted as "https://%@".  |
| safari\_icon\_file                                              | string  | Base64-encoded content of 256x256px png file.   |
| safari\_key\_file\*             | string  | Base64-encoded Safari .p12 key file content.    |
| safari\_key\_password                                           | string  | Password to the key file.                       |

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "providers": {
      "ios": false,
      "amazon": false,
      "android": false,
      "baidu_android": false,
      "chrome": false,
      "email": false,
      "firefox": false,
      "huawei_android": false,
      "internet_explorer": false,
      "osx": false,
      "safari": true,
      "sms": false,
      "web": false,
      "whats_app": false,
      "windows": false
    }
  }
}
```
</TabItem>
</Tabs>



```json title="Example"
{
  "request": {
    "auth": "yxoPUlwqm…………pIyEX4H",                    // required. API access token from Pushwoosh Control Panel
    "application": "XXXXX-XXXXX",                      // required. Pushwoosh application code
    "device_type": 10,                                 // required. 10 for Safari
    "safari_key_management_type": "manual",            // required. "manual"
    "safari_website_name": "WEBSITE_NAME",             // optional.
    "safari_allowed_domains": [                        // optional.
      "https://site1.com",
      "https://site2.com"
    ],
    "safari_url_template": "https://%@",               // required.
    "safari_icon_file": "iVBORw0KGgoAAAANSUhEUgAABB…", // optional. Base64-encoded content of 256x256px png file
    "safari_key_file": "MIIMY...BAQ==",                // required. base64-encoded Safari .p12 key file content
    "safari_key_password": "PASSWORD"                  // optional. Password to the key file above  
  }
}


```

## configureApplication for Firefox

Configures Firefox platform for the app.

`POST` `https://api.pushwoosh.com/json/1.3/configureApplication`


#### Request Body

| Name                          | Type    | Description                                                                                           | Required |
|-------------------------------|---------|-------------------------------------------------------------------------------------------------------|----------|
| auth*                          | string  | [API access token](/developer/api-reference/api-identifiers/#api-access-token) from Pushwoosh Control Panel.                                                         | Required |
| application*                   | string  | [Pushwoosh application code](/developer/api-reference/api-identifiers/#application-code)                                                                       | Required |
| device_type*                   | integer | Must be 12 for Firefox.                                                                                | Required |
| firefox_is_enabled             | boolean | Enables push notifications for Firefox.                                                                | Optional |
| firefox_fcm_service_account*   | object  | JSON generated in Firebase project settings.                                                           | Required |
| firefox_vapid_key*             | string  | Public VAPID (Voluntary Application Server Identification) key used for push notification authentication in Firefox. | Required |
| firefox_vapid_private_key*     | string  | Private VAPID key used for signing and sending push notifications in Firefox.                          | Required |


<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "providers": {
      "ios": false,
      "amazon": false,
      "android": false,
      "baidu_android": false,
      "chrome": false,
      "email": false,
      "firefox": true,
      "huawei_android": false,
      "internet_explorer": false,
      "osx": false,
      "safari": false,
      "sms": false,
      "web": false,
      "whats_app": false,
      "windows": false
    }
  }
}
```
</TabItem>
</Tabs>



<Tabs>
<TabItem label="Example">
```json
{
  "request": {
    "auth": "Z2PLR....IRwTqHwCr",
    "application": "87E33-XXXXX",
    "device_type": 12,
    "firefox_fcm_service_account": {
      "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
      "auth_uri": "https://accounts.google.com/o/oauth2/auth",
      "client_email": "****@foobar.iam.gserviceaccount.com",
      "client_id": "115........6584854983",
      "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/****@foobar.iam.gserviceaccount.com",
      "private_key": "-----BEGIN PRIVATE KEY-----\n****uH/OU/fILL****fMJZ+i6****um8as.....\n-----END PRIVATE KEY-----\n",
      "private_key_id": "e3........8e66d9",
      "project_id": "app-firefox",
      "token_uri": "https://oauth2.googleapis.com/token",
      "type": "service_account",
      "universe_domain": "googleapis.com"
    },
    "firefox_vapid_key": "BEr....KPqQvCbU",
    "firefox_vapid_private_key": "ee....flOqmSo"
  }
}

```
</TabItem>
</Tabs>

## configureApplication for Email

Configures Email platform for the app.

`POST` `https://api.pushwoosh.com/json/1.3/configureApplication`


#### Request Body

| Name                                                 | Type    | Description                                               |
| ---------------------------------------------------- | ------- | --------------------------------------------------------- |
| auth\*               | string  | [API access token](/developer/api-reference/api-identifiers/#api-access-token) from Pushwoosh Control Panel.            |
| application\*        | string  | [Pushwoosh application code](/developer/api-reference/api-identifiers/#application-code)                          |
| device\_type\*       | integer | Must be 14 for Email.                                     |
| email\_from\_email\* | string  | Sender email address. Should be valid and verified.       |
| email\_from\_name\*  | string  | Sender name.                                              |
| email\_reply\*       | string  | Email address to reply to. Should be valid and verified.  |

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "providers": {
      "ios": false,
      "amazon": false,
      "android": false,
      "baidu_android": false,
      "chrome": false,
      "email": true,
      "firefox": false,
      "huawei_android": false,
      "internet_explorer": false,
      "osx": false,
      "safari": false,
      "sms": false,
      "web": false,
      "whats_app": false,
      "windows": false
    }
  }
}
```
</TabItem>
</Tabs>



```json title="Example"
{
  "request":{
    "auth": "yxoPUlwqm…………pIyEX4H",         // required. API access token from Pushwoosh Control Panel
    "application": "XXXXX-XXXXX",           // required. Pushwoosh application code
    "device_type": 14,                      // required. 14 for email
    "email_from_email": "email@domain.com", // required. Email address should be valid and verified
    "email_from_name": "SENDER_NAME",       // required. Name to display in the "From" email field
    "email_reply": "email@domain.com"       // required. Email address to reply should be valid and verified
  }
}
```