SubscribersController_updateSubscriberChannel
import { Novu } from "@novu/api";
import { UpdateSubscriberChannelRequestDtoProviderId } from "@novu/api/models/components";
const novu = new Novu({
apiKey: "<YOUR_API_KEY_HERE>",
});
async function run() {
const result = await novu.subscribers.credentials.update("<value>", {
providerId: UpdateSubscriberChannelRequestDtoProviderId.Pushpad,
credentials: {
webhookUrl: "<value>",
},
});
// Handle the result
console.log(result)
}
run();curl --request PUT \
--url https://api.novu.co/v1/subscribers/{subscriberId}/credentials \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"credentials": {
"webhookUrl": "<string>",
"channel": "<string>",
"deviceTokens": [
"<string>"
],
"alertUid": "<string>",
"title": "<string>",
"imageUrl": "<string>",
"state": "<string>",
"externalUrl": "<string>"
},
"integrationIdentifier": "<string>"
}
'import requests
url = "https://api.novu.co/v1/subscribers/{subscriberId}/credentials"
payload = {
"credentials": {
"webhookUrl": "<string>",
"channel": "<string>",
"deviceTokens": ["<string>"],
"alertUid": "<string>",
"title": "<string>",
"imageUrl": "<string>",
"state": "<string>",
"externalUrl": "<string>"
},
"integrationIdentifier": "<string>"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
credentials: {
webhookUrl: '<string>',
channel: '<string>',
deviceTokens: ['<string>'],
alertUid: '<string>',
title: '<string>',
imageUrl: '<string>',
state: '<string>',
externalUrl: '<string>'
},
integrationIdentifier: '<string>'
})
};
fetch('https://api.novu.co/v1/subscribers/{subscriberId}/credentials', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.novu.co/v1/subscribers/{subscriberId}/credentials",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'credentials' => [
'webhookUrl' => '<string>',
'channel' => '<string>',
'deviceTokens' => [
'<string>'
],
'alertUid' => '<string>',
'title' => '<string>',
'imageUrl' => '<string>',
'state' => '<string>',
'externalUrl' => '<string>'
],
'integrationIdentifier' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.novu.co/v1/subscribers/{subscriberId}/credentials"
payload := strings.NewReader("{\n \"credentials\": {\n \"webhookUrl\": \"<string>\",\n \"channel\": \"<string>\",\n \"deviceTokens\": [\n \"<string>\"\n ],\n \"alertUid\": \"<string>\",\n \"title\": \"<string>\",\n \"imageUrl\": \"<string>\",\n \"state\": \"<string>\",\n \"externalUrl\": \"<string>\"\n },\n \"integrationIdentifier\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.novu.co/v1/subscribers/{subscriberId}/credentials")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"credentials\": {\n \"webhookUrl\": \"<string>\",\n \"channel\": \"<string>\",\n \"deviceTokens\": [\n \"<string>\"\n ],\n \"alertUid\": \"<string>\",\n \"title\": \"<string>\",\n \"imageUrl\": \"<string>\",\n \"state\": \"<string>\",\n \"externalUrl\": \"<string>\"\n },\n \"integrationIdentifier\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.novu.co/v1/subscribers/{subscriberId}/credentials")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"credentials\": {\n \"webhookUrl\": \"<string>\",\n \"channel\": \"<string>\",\n \"deviceTokens\": [\n \"<string>\"\n ],\n \"alertUid\": \"<string>\",\n \"title\": \"<string>\",\n \"imageUrl\": \"<string>\",\n \"state\": \"<string>\",\n \"externalUrl\": \"<string>\"\n },\n \"integrationIdentifier\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"subscriberId": "<string>",
"_organizationId": "<string>",
"_environmentId": "<string>",
"deleted": true,
"createdAt": "<string>",
"updatedAt": "<string>",
"_id": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"email": "<string>",
"phone": "<string>",
"avatar": "<string>",
"locale": "<string>",
"channels": [
{
"credentials": {
"webhookUrl": "<string>",
"channel": "<string>",
"deviceTokens": [
"<string>"
],
"alertUid": "<string>",
"title": "<string>",
"imageUrl": "<string>",
"state": "<string>",
"externalUrl": "<string>"
},
"_integrationId": "<string>",
"integrationIdentifier": "<string>"
}
],
"isOnline": true,
"lastOnlineAt": "<string>",
"__v": 123
}"Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second""API rate limit exceeded""Please wait some time, then try again."Subscribers
Update provider credentials
Update credentials for a provider such as slack and FCM. providerId is required field. This API creates the deviceTokens or replaces the existing ones.
PUT
/
v1
/
subscribers
/
{subscriberId}
/
credentials
SubscribersController_updateSubscriberChannel
import { Novu } from "@novu/api";
import { UpdateSubscriberChannelRequestDtoProviderId } from "@novu/api/models/components";
const novu = new Novu({
apiKey: "<YOUR_API_KEY_HERE>",
});
async function run() {
const result = await novu.subscribers.credentials.update("<value>", {
providerId: UpdateSubscriberChannelRequestDtoProviderId.Pushpad,
credentials: {
webhookUrl: "<value>",
},
});
// Handle the result
console.log(result)
}
run();curl --request PUT \
--url https://api.novu.co/v1/subscribers/{subscriberId}/credentials \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"credentials": {
"webhookUrl": "<string>",
"channel": "<string>",
"deviceTokens": [
"<string>"
],
"alertUid": "<string>",
"title": "<string>",
"imageUrl": "<string>",
"state": "<string>",
"externalUrl": "<string>"
},
"integrationIdentifier": "<string>"
}
'import requests
url = "https://api.novu.co/v1/subscribers/{subscriberId}/credentials"
payload = {
"credentials": {
"webhookUrl": "<string>",
"channel": "<string>",
"deviceTokens": ["<string>"],
"alertUid": "<string>",
"title": "<string>",
"imageUrl": "<string>",
"state": "<string>",
"externalUrl": "<string>"
},
"integrationIdentifier": "<string>"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
credentials: {
webhookUrl: '<string>',
channel: '<string>',
deviceTokens: ['<string>'],
alertUid: '<string>',
title: '<string>',
imageUrl: '<string>',
state: '<string>',
externalUrl: '<string>'
},
integrationIdentifier: '<string>'
})
};
fetch('https://api.novu.co/v1/subscribers/{subscriberId}/credentials', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.novu.co/v1/subscribers/{subscriberId}/credentials",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'credentials' => [
'webhookUrl' => '<string>',
'channel' => '<string>',
'deviceTokens' => [
'<string>'
],
'alertUid' => '<string>',
'title' => '<string>',
'imageUrl' => '<string>',
'state' => '<string>',
'externalUrl' => '<string>'
],
'integrationIdentifier' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.novu.co/v1/subscribers/{subscriberId}/credentials"
payload := strings.NewReader("{\n \"credentials\": {\n \"webhookUrl\": \"<string>\",\n \"channel\": \"<string>\",\n \"deviceTokens\": [\n \"<string>\"\n ],\n \"alertUid\": \"<string>\",\n \"title\": \"<string>\",\n \"imageUrl\": \"<string>\",\n \"state\": \"<string>\",\n \"externalUrl\": \"<string>\"\n },\n \"integrationIdentifier\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.novu.co/v1/subscribers/{subscriberId}/credentials")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"credentials\": {\n \"webhookUrl\": \"<string>\",\n \"channel\": \"<string>\",\n \"deviceTokens\": [\n \"<string>\"\n ],\n \"alertUid\": \"<string>\",\n \"title\": \"<string>\",\n \"imageUrl\": \"<string>\",\n \"state\": \"<string>\",\n \"externalUrl\": \"<string>\"\n },\n \"integrationIdentifier\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.novu.co/v1/subscribers/{subscriberId}/credentials")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"credentials\": {\n \"webhookUrl\": \"<string>\",\n \"channel\": \"<string>\",\n \"deviceTokens\": [\n \"<string>\"\n ],\n \"alertUid\": \"<string>\",\n \"title\": \"<string>\",\n \"imageUrl\": \"<string>\",\n \"state\": \"<string>\",\n \"externalUrl\": \"<string>\"\n },\n \"integrationIdentifier\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"subscriberId": "<string>",
"_organizationId": "<string>",
"_environmentId": "<string>",
"deleted": true,
"createdAt": "<string>",
"updatedAt": "<string>",
"_id": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"email": "<string>",
"phone": "<string>",
"avatar": "<string>",
"locale": "<string>",
"channels": [
{
"credentials": {
"webhookUrl": "<string>",
"channel": "<string>",
"deviceTokens": [
"<string>"
],
"alertUid": "<string>",
"title": "<string>",
"imageUrl": "<string>",
"state": "<string>",
"externalUrl": "<string>"
},
"_integrationId": "<string>",
"integrationIdentifier": "<string>"
}
],
"isOnline": true,
"lastOnlineAt": "<string>",
"__v": 123
}"Request with key 3909d656-d4fe-4e80-ba86-90d3861afcd7 is currently being processed. Please retry after 1 second""API rate limit exceeded""Please wait some time, then try again."Enter your API key in the
Authorization field like the example shown below:E.g ApiKey 18d2e625f05d80eAuthorizations
API key authentication. Allowed headers-- "Authorization: ApiKey <api_key>".
Path Parameters
Body
application/json
The provider identifier for the credentials
Available options:
slack, discord, msteams, mattermost, ryver, zulip, grafana-on-call, getstream, rocket-chat, whatsapp-business, fcm, apns, expo, one-signal, pushpad, push-webhook, pusher-beams Credentials payload for the specified provider
Show child attributes
Show child attributes
The integration identifier
Response
Ok
The internal identifier you used to create this subscriber, usually correlates to the id the user in your systems
The internal id novu generated for your subscriber, this is not the subscriberId matching your query. See subscriberId for that
Channels settings for subscriber
Show child attributes
Show child attributes
Was this page helpful?
⌘I