Manage Tenant Preferences
Get Tenant Full Preference
API to fetch tenant preferences across all categories with translated names and descriptions.
GET
/
v1
/
tenant
/
{tenant_id}
/
preference
/
Get Tenant Full Preference
curl --request GET \
--url https://hub.suprsend.com/v1/tenant/{tenant_id}/preference/ \
--header 'Authorization: Bearer <token>'import requests
url = "https://hub.suprsend.com/v1/tenant/{tenant_id}/preference/"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://hub.suprsend.com/v1/tenant/{tenant_id}/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/tenant/{tenant_id}/preference/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://hub.suprsend.com/v1/tenant/{tenant_id}/preference/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://hub.suprsend.com/v1/tenant/{tenant_id}/preference/")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://hub.suprsend.com/v1/tenant/{tenant_id}/preference/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"root_categories": [
{
"root_category": "system",
"sections": [
{
"name": "section système",
"slug": "system-section",
"description": "section système",
"tags": [
"wwr"
],
"categories": [
{
"name": "Sous-catégorie",
"category": "sub-category",
"description": "Description de la sous-catégorie",
"tags": [
"gjhgjhfjfjgfdjthdhtdhdhdyrhdyrdyrdrh",
"aaaaeeee"
],
"effective_tags": [
"aaaaeeee",
"gjhgjhfjfjgfdjthdhtdhdhdyrhdyrdyrdrh",
"wwr"
],
"default_preference": "cant_unsubscribe",
"default_mandatory_channels": [
"email"
],
"default_opt_in_channels": [
"inbox"
],
"enabled_for_tenant": true,
"visible_to_subscriber": true,
"preference": "opt_in",
"mandatory_channels": null,
"opt_in_channels": null,
"blocked_channels": [
"sms"
],
"updated_at": "2025-12-04T10:45:39.061095+00:00"
}
]
}
]
}
]
}{
"code": 404,
"message": "tenant 'tenant_id' not found"
}Authorizations
Pass as Bearer <API_KEY>. Get API Key from SuprSend dashboard Developers -> API Keys section.
Path Parameters
unique identifier of the tenant you want to get preferences for
Query Parameters
Locale code (e.g., es, fr, de, ja, es-AR) to fetch preference translations in user's locale. When provided, the API looks for category and section names and descriptions in the respective locale file.
If a translation is missing for the requested locale, the system automatically falls back in this order: locale-region (e.g., es-AR) → locale (e.g., es) → en (English - always available).
Response
200
Show child attributes
Show child attributes
Was this page helpful?
Previous
Get Tenant Preference All CategoriesAPI to get tenant preferences for all categories with translated names and descriptions.
Next
⌘I
Get Tenant Full Preference
curl --request GET \
--url https://hub.suprsend.com/v1/tenant/{tenant_id}/preference/ \
--header 'Authorization: Bearer <token>'import requests
url = "https://hub.suprsend.com/v1/tenant/{tenant_id}/preference/"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://hub.suprsend.com/v1/tenant/{tenant_id}/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/tenant/{tenant_id}/preference/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://hub.suprsend.com/v1/tenant/{tenant_id}/preference/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://hub.suprsend.com/v1/tenant/{tenant_id}/preference/")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://hub.suprsend.com/v1/tenant/{tenant_id}/preference/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"root_categories": [
{
"root_category": "system",
"sections": [
{
"name": "section système",
"slug": "system-section",
"description": "section système",
"tags": [
"wwr"
],
"categories": [
{
"name": "Sous-catégorie",
"category": "sub-category",
"description": "Description de la sous-catégorie",
"tags": [
"gjhgjhfjfjgfdjthdhtdhdhdyrhdyrdyrdrh",
"aaaaeeee"
],
"effective_tags": [
"aaaaeeee",
"gjhgjhfjfjgfdjthdhtdhdhdyrhdyrdyrdrh",
"wwr"
],
"default_preference": "cant_unsubscribe",
"default_mandatory_channels": [
"email"
],
"default_opt_in_channels": [
"inbox"
],
"enabled_for_tenant": true,
"visible_to_subscriber": true,
"preference": "opt_in",
"mandatory_channels": null,
"opt_in_channels": null,
"blocked_channels": [
"sms"
],
"updated_at": "2025-12-04T10:45:39.061095+00:00"
}
]
}
]
}
]
}{
"code": 404,
"message": "tenant 'tenant_id' not found"
}