Skip to content

Manage SDK Push Notifications APIs

For managing the SDK push notifications, the platform provides the following APIs:

Note

To receive push notifications, each user’s device must be registered and subscribed via the mobile or WebSDK app.

Device Subscription API

This API manages SDK push message subscriptions for a user’s specified device. It performs two main functions:

  • Subscribes the device to SDK push messages.
  • Returns subscription status and device details.
Method POST
Endpoint https://{host}/API/public/streams/:{{streamId}}/sdknotifications/subscribe
Content Type application/json
Authorization auth: {{JWT}}

See How to generate the JWT Token.

API Scope
  • Bot Builder: SDKPushNotifications
  • Admin Console: Not Applicable

Path Parameters

PARAMETER DESCRIPTION REQUIRED/OPTIONAL
host The environment URL. For example, https://bots.kore.ai Required
StreamId The Bot ID or Stream ID can be accessed under General Settings on the Bot Builder. Required

Sample Request

curl --location 
'https://{{host}}/api/public/stream/:{{streamId}}/sdknotifications/subscribe' \
     --header 'auth: {jwt-token}' \
     --header 'bot-language: {language-code}' \
     --header 'Content-Type: application/json' \
--data-raw '{
    "deviceId": "exxxxxf0-bxx3-4xx3-axx7-fexxxxxxxxxx2",
    "osType": "Android",
    "userId": "u-dxxxxxx1-7xx0-5xxb-axx2-84xxxxxxxxx2"
}'

Body Parameters

PARAMETER DATA TYPE DESCRIPTION REQUIRED/OPTIONAL
deviceId String The user’s device ID. Required
osType String The OS type of the user’s device. Required
userId String The user ID received from the JWT grant. Required

Sample Response

{
    "success": true,
    "message": "Device Subscribed",
    "deviceDetails": {
        "deviceId": "exxxxxf0-bxx3-4xx3-axx7-fexxxxxxxxxx2",
        "osType": "Android",
        "status": "Subscribed"
    }
}

Subscribed User Devices API

This API lists all the mobile devices subscribed to SDK push notifications and their OS types for the given user. It returns the following information:

  • Device ID
  • OS Type
  • Subscription Status
Method GET
Endpoint https://{host}/API/public/streams/:{{streamId}}/subscribeddevices
Content Type application/json
Authorization auth: {{JWT}}

See How to generate the JWT Token.

API Scope
  • Bot Builder: SDKPushNotifications
  • Admin Console: Not Applicable

Query Parameters

PARAMETER DESCRIPTION REQUIRED/OPTIONAL
host The environment URL. For example, https://bots.kore.ai Required
StreamId The Bot ID or Stream ID can be accessed under General Settings on the Bot Builder. Required
UserId The user Id received from the JWT grant. Required

Sample Request

curl --location 
'https://{{host}}/api/public/streams/:{{streamId}}/subscribeddevices?uId=-f30xxx4e-6xx3-5xx8-8xx7-01xxxxxxxxx4u' \
     --header 'auth: {jwt-token}' \
     --header 'bot-language: {language-code}' \
     --header 'Content-Type: application/json' \
--data-raw '{
}'

Body Parameters

No body parameters.

Sample Response

{
    "subscribedDevices": [
        {
            "deviceId": "exxxxxf0-bxx3-4xx3-axx7-fexxxxxxxxxx2",
            "osType": "Android",
            "status": "Subscribed"
        },
        {
            "deviceId": "exxxxxx0-bxx3-4xx3-axx7-fxxxxxxxxxxf",
            "osType": "ios",
            "status": "Subscribed"
        }
    ]
}

Device Unsubscription API

This API unsubscribes SDK push messages for specific or all the devices of a user.

Note: The API processes unsubscriptions for one user at a time, not for multiple users simultaneously.

Method DELETE
Endpoint https://{host}/API/public/streams/:{{streamId}}/sdknotifications/unsubscribe
Content Type application/json
Authorization auth: {{JWT}}

See How to generate the JWT Token.

API Scope
  • Bot Builder: SDKPushNotifications
  • Admin Console: Not Applicable

Path Parameters

PARAMETER DESCRIPTION REQUIRED/OPTIONAL
host The environment URL. For example, https://bots.kore.ai Required
StreamId The Bot ID or Stream ID can be accessed under General Settings on the Bot Builder. Required

Unsubscribe Specific Devices

This API returns the device ID, OS type, and the subscription status (unsubscribed) for the selected devices.

Sample Request

curl --location 
'https://{{host}}/api/public/streams/:{{streamId}}/sdknotifications/unsubscribe' \
     --header 'auth: {jwt-token}' \
     --header 'bot-language: {language-code}' \
     --header 'Content-Type: application/json' \
--data-raw '{
  "devices": 
              [ 
    { "deviceId": "exxxxxx0-bxx3-4xx3-axx7-fxxxxxxxxxxf", "osType": "iOS" }, 
               { "deviceId": "exxxxxx1-bxx5-5xx3-axx2-bxxxxxxxxxxf", "osType": "Android" }
              ],
              "userId": "u-fxxxxxxe-6xx3-5xx8-8xx7-0xxxxxxxxxx4"
}'

Body Parameters

PARAMETER DATA TYPE DESCRIPTION REQUIRED/OPTIONAL
devices (if not using `unsubscribe: ‘all’` ) Array of objects of String Data type. The developer must provide the device ID and osType of the devices to be unsubscribed. Required
userId String The user ID received from the JWT grant. Required

Sample Response

{
    "success": true,
    "message": "Requested devices are Unsubscribed",
    "unsubscribedDevices": [
        {
            "deviceId": "exxxxxx0-bxx3-4xx3-axx7-fxxxxxxxxxxf",
            "osType": "iOS",
            "status": "unsubscribed"
        },
        {
            "deviceId": "exxxxxx1-bxx5-5xx3-axx2-bxxxxxxxxxxf",
            "osType": "Android",
            "status": "unsubscribed"
        }
    ],
    "invalidDeviceIds": [
        {
            "deviceId": "Prod Iphone5rs"
        }
    ]
}

Unsubscribe All the Devices

This API returns the success status and message when all the devices are unsubscribed.

Sample Request

curl --location 
'https://{{host}}/api/public/streams/:{{streamId}}/sdknotifications/unsubscribe' \
     --header 'auth: {jwt-token}' \
     --header 'bot-language: {language-code}' \
     --header 'Content-Type: application/json' \
--data-raw '{
    "unsubscribe": "all",
    "userId": "u-fxxxxxxe-6b83-56d8-8397-011c430550a4"
}'

Body Parameters

PARAMETER DATA TYPE DESCRIPTION REQUIRED/OPTIONAL
unsubscribe (if not using devices:[]) String The value supported is “all.” Required
userId String The user ID received from the JWT grant. Required

Sample Response

```js { "success": true, "message": "All Devices are unsubscribed" }