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}}
|
API Scope |
|
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}}
|
API Scope |
|
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}}
|
API Scope |
|
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" }