---
title: "Get Tenant Default Preference"
method: GET
path: "/v1/tenant/{tenant_id}/category/"
---

# Get Tenant Default Preference

`GET /v1/tenant/{tenant_id}/category/`

## Request

- Base URL: `https://hub.suprsend.com`
- URL: `https://hub.suprsend.com/v1/tenant/{tenant_id}/category/`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/suprsend/apis/suprsend-api/docs/v1/tenant/:tenant_id/category/get.ts> (a function with typed inputs; its response is checked against the schema)

API to get default tenant preference for all categories.

## Path parameters

- `tenant_id` string, required

## Query parameters

- `locale` string

## Response `200`

200

- object
  - `meta` object
    - `count` integer: total number of categories
    - `limit` integer: maximum number of categories returned per request
    - `offset` integer: offset passed in request
  - `results` object[]
    - `name` string: preference category name
    - `category` string: unique preference category slug. You can get it by clicking on category name on SuprSend dashboard -> preference page
    - `description` string: description of the notification category
    - `root_category` string: root category this sub-category belongs to
    - `default_preference` 'cant_unsubscribe' | 'opt_in' | 'opt_out': default preference of the category set while updating the category.
    - `default_mandatory_channels` string[]: default mandatory channels set while updating the category in case default preference is can't unsubscribe
    - `default_opt_in_channels` string[], nullable: default opt-in channels set to have selective opt-in channels instead of all channels while updating the category.
    - `opt_in_channels` string[], nullable: opt-in channels overridden for this tenant.
    - `visible_to_subscriber` boolean: set it `false` to hide a category from user's preference page
    - `preference` 'opt_in' | 'opt_out' | 'cant_unsubscribe': preference setting overridden for this tenant.
    - `blocked_channels` string[]: channels which are opted-out across all categories for this tenant.
    - `digest_schedule` object, nullable: Digest schedule configuration with tenant overrides and original options
      - `options` object[]: Tenant-modified digest schedule options (merged with original options by id)
        - `id` string: Unique identifier of the digest schedule option.
        - `label` string: Display label shown to the recipient.
        - `frequency` string: Frequency of the digest schedule (instantly, hourly, daily, weekly, weekly_mo2fr, monthly).
        - `interval` integer: Recurrence multiplier for the frequency (for example, every 2 weeks).
        - `time` object: Time of day to send the digest, with its edit policy and value.
          - `edit_policy` 'locked' | 'editable': `editable` means the value can be overridden; `locked` means it is fixed.
          - `default_value` string: Default value applied when not overridden.
        - `weekdays` object: Days of the week to send on (for weekly frequency), with edit policy and value.
          - `edit_policy` 'locked' | 'editable': `editable` means the value can be overridden; `locked` means it is fixed.
          - `default_value` string[]: Default value applied when not overridden.
        - `monthdays` object: Days of the month to send on (for monthly frequency), with edit policy and value.
          - `edit_policy` 'locked' | 'editable': `editable` means the value can be overridden; `locked` means it is fixed.
          - `default_value` object[]: Default value applied when not overridden.
            - `pos` integer: Position in the month (1-31; use a negative value to count from the end).
            - `day` string: Optional day of the week (su, mo, tu, we, th, fr, sa).
        - `dtstart` object: Start datetime from which the recurring schedule is calculated, with edit policy and value.
          - `edit_policy` 'locked' | 'editable': `editable` means the value can be overridden; `locked` means it is fixed.
          - `default_value` string, date-time: Default value applied when not overridden.
        - `is_default` boolean: Whether this option is the default selection.
      - `original_options` object[]: Original digest schedule options as configured at the category level
        - `id` string: Unique identifier of the digest schedule option.
        - `label` string: Display label shown to the recipient.
        - `frequency` string: Frequency of the digest schedule (instantly, hourly, daily, weekly, weekly_mo2fr, monthly).
        - `interval` integer: Recurrence multiplier for the frequency (for example, every 2 weeks).
        - `time` object: Time of day to send the digest, with its edit policy and value.
          - `edit_policy` string: `editable` means the value can be overridden; `locked` means it is fixed.
          - `default_value` string: Default value applied when not overridden.
        - `weekdays` object: Days of the week to send on (for weekly frequency), with edit policy and value.
          - `edit_policy` string: `editable` means the value can be overridden; `locked` means it is fixed.
          - `default_value` string[]: Default value applied when not overridden.
        - `monthdays` object: Days of the month to send on (for monthly frequency), with edit policy and value.
          - `edit_policy` string: `editable` means the value can be overridden; `locked` means it is fixed.
          - `default_value` object[]: Default value applied when not overridden.
            - `pos` integer: Position in the month (1-31; use a negative value to count from the end).
            - `day` string: Optional day of the week (su, mo, tu, we, th, fr, sa).
        - `dtstart` object: Start datetime from which the recurring schedule is calculated, with edit policy and value.
          - `edit_policy` string: `editable` means the value can be overridden; `locked` means it is fixed.
          - `default_value` string, date-time: Default value applied when not overridden.
        - `is_default` boolean: Whether this option is the default selection.
    - `properties` object[], nullable: Category condition properties with tenant overrides
      - `key` string: Property key identifier, referenced in workflows as `$category.properties.<key>`.
      - `label` string: Display label shown to the recipient.
      - `value_type` string: Data type of the property value.
      - `default_value` string: Default value applied when not overridden.
      - `is_optional` boolean: Whether this property is optional.
      - `edit_policy` 'locked' | 'editable': `editable` means the value can be overridden; `locked` means it is fixed.
      - `is_overridden` boolean: Whether the tenant has overridden the default value
      - `value` unknown

## Other responses

- `404`: 404 - Not Found

## Changes

- **2026-10-16** `5f0169085547`: 1 warning
  - added the new `cant_unsubscribe` enum value to the `results/items/preference` response property for the response status `200`
- **2026-07-13** `e54dd32705e8`: 11 warning, 13 info
  - removed the optional property `blocked_channels` from the response with the `200` status
  - removed the optional property `category` from the response with the `200` status
  - removed the optional property `default_mandatory_channels` from the response with the `200` status
  - removed the optional property `default_opt_in_channels` from the response with the `200` status
  - …20 more

[Operation history](https://skmtc.dev/suprsend/apis/suprsend-api/changes/v1/tenant/:tenant_id/category/get.md)

---

[API](https://skmtc.dev/suprsend/apis/suprsend-api.md) - [All operations](https://skmtc.dev/suprsend/apis/suprsend-api/llms.txt) - [OpenAPI document](https://skmtc.dev/suprsend/apis/suprsend-api/revisions/9e64cbe802a5?raw)
