Update User Preferences
Overall Channel level
API to update user preferences across all channels.
PATCH
/
v1
/
user
/
{distinct_id}
/
preference
/
channel_preference
/
Overall Channel level
curl --request PATCH \
--url https://hub.suprsend.com/v1/user/{distinct_id}/preference/channel_preference/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"channel_preferences": [
{
"channel": "email",
"is_restricted": false
}
]
}
'import requests
url = "https://hub.suprsend.com/v1/user/{distinct_id}/preference/channel_preference/"
payload = { "channel_preferences": [
{
"channel": "email",
"is_restricted": False
}
] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({channel_preferences: [{channel: 'email', is_restricted: false}]})
};
fetch('https://hub.suprsend.com/v1/user/{distinct_id}/preference/channel_preference/', 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://hub.suprsend.com/v1/user/{distinct_id}/preference/channel_preference/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'channel_preferences' => [
[
'channel' => 'email',
'is_restricted' => false
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://hub.suprsend.com/v1/user/{distinct_id}/preference/channel_preference/"
payload := strings.NewReader("{\n \"channel_preferences\": [\n {\n \"channel\": \"email\",\n \"is_restricted\": false\n }\n ]\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.patch("https://hub.suprsend.com/v1/user/{distinct_id}/preference/channel_preference/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"channel_preferences\": [\n {\n \"channel\": \"email\",\n \"is_restricted\": false\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://hub.suprsend.com/v1/user/{distinct_id}/preference/channel_preference/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"channel_preferences\": [\n {\n \"channel\": \"email\",\n \"is_restricted\": false\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"channel_preferences": [
{
"channel": "email",
"is_restricted": true
},
{
"channel": "inbox",
"is_restricted": false
}
]
}{
"code": 400,
"detail": {
"channel_preferences[0].channel": "must be one of [\"sms\", \"email\", \"androidpush\" \"iospush\", \"webpush\", \"inbox\", \"whatsapp\", \"slack\", \"ms_teams\"]"
},
"message": "{\"channel_preferences[0].channel\": must be one of [\"sms\", \"email\", \"androidpush\" \"iospush\", \"webpush\", \"inbox\", \"whatsapp\", \"slack\", \"ms_teams\"]"
}Authorizations
Pass as Bearer <API_KEY>. Get API Key from SuprSend dashboard Developers -> API Keys section.
Path Parameters
distinct_id of the user whose preferences should be fetched
Query Parameters
to fetch user preferences for a particular tenant
Body
application/json
Use this to update channel level user preferences. Set is_restricted - true if the channel is opted_out by the user. This will only send critical notifications to the user which can't be opted out
Show child attributes
Show child attributes
Response
202
Show child attributes
Show child attributes
Was this page helpful?
Previous
Bulk UpdateBulk API to update channel and category-level notification preferences for multiple users in one request.
Next
⌘I
Overall Channel level
curl --request PATCH \
--url https://hub.suprsend.com/v1/user/{distinct_id}/preference/channel_preference/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"channel_preferences": [
{
"channel": "email",
"is_restricted": false
}
]
}
'import requests
url = "https://hub.suprsend.com/v1/user/{distinct_id}/preference/channel_preference/"
payload = { "channel_preferences": [
{
"channel": "email",
"is_restricted": False
}
] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({channel_preferences: [{channel: 'email', is_restricted: false}]})
};
fetch('https://hub.suprsend.com/v1/user/{distinct_id}/preference/channel_preference/', 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://hub.suprsend.com/v1/user/{distinct_id}/preference/channel_preference/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'channel_preferences' => [
[
'channel' => 'email',
'is_restricted' => false
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://hub.suprsend.com/v1/user/{distinct_id}/preference/channel_preference/"
payload := strings.NewReader("{\n \"channel_preferences\": [\n {\n \"channel\": \"email\",\n \"is_restricted\": false\n }\n ]\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.patch("https://hub.suprsend.com/v1/user/{distinct_id}/preference/channel_preference/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"channel_preferences\": [\n {\n \"channel\": \"email\",\n \"is_restricted\": false\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://hub.suprsend.com/v1/user/{distinct_id}/preference/channel_preference/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"channel_preferences\": [\n {\n \"channel\": \"email\",\n \"is_restricted\": false\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"channel_preferences": [
{
"channel": "email",
"is_restricted": true
},
{
"channel": "inbox",
"is_restricted": false
}
]
}{
"code": 400,
"detail": {
"channel_preferences[0].channel": "must be one of [\"sms\", \"email\", \"androidpush\" \"iospush\", \"webpush\", \"inbox\", \"whatsapp\", \"slack\", \"ms_teams\"]"
},
"message": "{\"channel_preferences[0].channel\": must be one of [\"sms\", \"email\", \"androidpush\" \"iospush\", \"webpush\", \"inbox\", \"whatsapp\", \"slack\", \"ms_teams\"]"
}