PATCH
/
v1
/
user
/
{distinct_id}
/
preference
/
category
/
{category_slug}
curl --request PATCH \
  --url https://hub.suprsend.com/v1/user/{distinct_id}/preference/category/{category_slug}/ \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "preference": "opt_in",
  "opt_out_channels": [
    "<string>"
  ]
}'
{
  "name": "Status Update Alert",
  "category": "status-update-alert",
  "description": "Send me updates when account status changes",
  "original_preference": "opt_in",
  "preference": "opt_in",
  "is_editable": true,
  "channels": [
    {
      "channel": "email",
      "preference": "opt_in",
      "is_editable": true
    },
    {
      "channel": "ms_teams",
      "preference": "opt_in",
      "is_editable": true
    },
    {
      "channel": "slack",
      "preference": "opt_in",
      "is_editable": true
    }
  ]
}

Authorizations

Authorization
string
header
required

Pass as Bearer <API_KEY>. Get API Key from SuprSend dashboard Developers -> API Keys section.

Path Parameters

distinct_id
string
required

distinct_id of the user whose preferences should be fetched

category_slug
string
required

notification category slug. You can get this from Notification Categories page on SuprSend dashboard -> Settings page

Query Parameters

tenant_id
string

to fetch user preferences for a particular tenant

Body

application/json
preference
string
default:opt_in

choose one of the options: opt_in if the user has allowed notification in this category and opt_out if user wants to discontinue notification in this category

opt_out_channels
string[]

Add array of channels if user wants to unsubscribe from particular channels in this category. Add channels as email, sms, whatsapp, androidpush, inbox, iospush, slack, webpush`

Response

202
application/json
202
name
string

preference category name

Example:

"Status Update Alert"

category
string

unique preference category slug. You can get this by clicking on preference category name on Developers -> Preference categories page.

Example:

"status-update-alert"

description
string
Example:

"Send me updates when account status changes"

original_preference
enum<string>

default preference of the category

Available options:
opt_in,
opt_out
Example:

"opt_in"

preference
enum<string>

final user preference of the category

Available options:
opt_in,
opt_out
Example:

"opt_in"

is_editable
boolean

false for categories where default preference is set to can't unsubscribe

Example:

false

channels
object[]