> ## Documentation Index
> Fetch the complete documentation index at: https://docs.suprsend.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Tenant Full Preference

> API to fetch tenant preferences across all categories with translated names and descriptions.



## OpenAPI

````yaml GET /v1/tenant/{tenant_id}/preference/
openapi: 3.1.1
info:
  title: SuprSend API
  description: APIs supported on suprsend platform
  version: 1.2.2
servers:
  - url: https://hub.suprsend.com
security:
  - sec0: []
  - BearerAuth: []
paths:
  /v1/tenant/{tenant_id}/preference/:
    get:
      summary: Get Tenant Full Preference
      description: >-
        API to fetch tenant preferences across all categories with translated
        names and descriptions.
      operationId: get-tenant-full-preference
      parameters:
        - name: tenant_id
          in: path
          description: unique identifier of the tenant you want to get preferences for
          schema:
            type: string
          required: true
        - name: locale
          in: query
          description: >
            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).
          schema:
            type: string
          example: es
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value:
                    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'
              schema:
                type: object
                properties:
                  root_categories:
                    type: array
                    items:
                      type: object
                      properties:
                        root_category:
                          description: >-
                            Root category (system, transactional, or
                            promotional) this sub-category belongs to.
                          type: string
                          enum:
                            - system
                            - transactional
                            - promotional
                        sections:
                          type: array
                          items:
                            type: object
                            properties:
                              name:
                                type: string
                                nullable: true
                              slug:
                                type: string
                                nullable: true
                              description:
                                type: string
                                nullable: true
                              tags:
                                type: array
                                nullable: true
                                items:
                                  type: string
                              categories:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    name:
                                      type: string
                                    category:
                                      type: string
                                    description:
                                      type: string
                                      nullable: true
                                    tags:
                                      type: array
                                      nullable: true
                                      items:
                                        type: string
                                    effective_tags:
                                      type: array
                                      nullable: true
                                      items:
                                        type: string
                                    default_preference:
                                      description: >-
                                        Category-level default preference,
                                        inherited when the tenant has not
                                        overridden it.
                                      type: string
                                      enum:
                                        - opt_in
                                        - opt_out
                                        - cant_unsubscribe
                                    default_mandatory_channels:
                                      description: >-
                                        Category-level mandatory channels
                                        (applies when the default preference is
                                        `cant_unsubscribe`).
                                      type: array
                                      nullable: true
                                      items:
                                        type: string
                                    default_opt_in_channels:
                                      description: >-
                                        Category-level opt-in channels, used
                                        when only selective channels are opted
                                        in by default.
                                      type: array
                                      nullable: true
                                      items:
                                        type: string
                                    enabled_for_tenant:
                                      description: >-
                                        Whether the category is enabled for this
                                        tenant. When false, the category is
                                        hidden from the tenant's users and
                                        notifications are not sent in it.
                                      type: boolean
                                    visible_to_subscriber:
                                      description: >-
                                        Whether the category appears on the
                                        tenant users' preference page.
                                      type: boolean
                                    preference:
                                      description: >-
                                        Tenant's overridden preference for this
                                        category. `null` if the tenant has not
                                        overridden the category default.
                                      type: string
                                      nullable: true
                                      enum:
                                        - opt_in
                                        - opt_out
                                        - cant_unsubscribe
                                    mandatory_channels:
                                      description: >-
                                        Channels the user cannot unsubscribe
                                        from (when preference is
                                        `cant_unsubscribe`), as overridden for
                                        this tenant.
                                      type: array
                                      nullable: true
                                      items:
                                        type: string
                                    opt_in_channels:
                                      description: >-
                                        Channels opted in by default for this
                                        category, as overridden for this tenant.
                                      type: array
                                      nullable: true
                                      items:
                                        type: string
                                    blocked_channels:
                                      description: >-
                                        Channels opted out across all categories
                                        for this tenant.
                                      type: array
                                      nullable: true
                                      items:
                                        type: string
                                    updated_at:
                                      description: >-
                                        Timestamp when the tenant preference for
                                        this category was last updated.
                                      type: string
                                      format: date-time
                                      nullable: true
                                    digest_schedule:
                                      type: object
                                      nullable: true
                                      description: >-
                                        Digest schedule configuration with
                                        tenant overrides and original options
                                      properties:
                                        options:
                                          type: array
                                          description: >-
                                            Tenant-modified digest schedule options
                                            (merged with original options by id)
                                          items:
                                            type: object
                                            properties:
                                              id:
                                                description: >-
                                                  Unique identifier of the digest schedule
                                                  option.
                                                type: string
                                              label:
                                                description: Display label shown to the recipient.
                                                type: string
                                              frequency:
                                                description: >-
                                                  Frequency of the digest schedule
                                                  (instantly, hourly, daily, weekly,
                                                  weekly_mo2fr, monthly).
                                                type: string
                                              interval:
                                                description: >-
                                                  Recurrence multiplier for the frequency
                                                  (for example, every 2 weeks).
                                                type: integer
                                              time:
                                                description: >-
                                                  Time of day to send the digest, with its
                                                  edit policy and value.
                                                type: object
                                                properties:
                                                  edit_policy:
                                                    description: >-
                                                      `editable` means the value can be
                                                      overridden; `locked` means it is fixed.
                                                    type: string
                                                    enum:
                                                      - locked
                                                      - editable
                                                  default_value:
                                                    description: >-
                                                      Default value applied when not
                                                      overridden.
                                                    type: string
                                              weekdays:
                                                description: >-
                                                  Days of the week to send on (for weekly
                                                  frequency), with edit policy and value.
                                                type: object
                                                properties:
                                                  edit_policy:
                                                    description: >-
                                                      `editable` means the value can be
                                                      overridden; `locked` means it is fixed.
                                                    type: string
                                                    enum:
                                                      - locked
                                                      - editable
                                                  default_value:
                                                    description: >-
                                                      Default value applied when not
                                                      overridden.
                                                    type: array
                                                    items:
                                                      type: string
                                              monthdays:
                                                description: >-
                                                  Days of the month to send on (for
                                                  monthly frequency), with edit policy and
                                                  value.
                                                type: object
                                                properties:
                                                  edit_policy:
                                                    description: >-
                                                      `editable` means the value can be
                                                      overridden; `locked` means it is fixed.
                                                    type: string
                                                    enum:
                                                      - locked
                                                      - editable
                                                  default_value:
                                                    description: >-
                                                      Default value applied when not
                                                      overridden.
                                                    type: array
                                                    items:
                                                      type: object
                                                      properties:
                                                        pos:
                                                          description: >-
                                                            Position in the month (1-31; use a
                                                            negative value to count from the end).
                                                          type: integer
                                                        day:
                                                          description: >-
                                                            Optional day of the week (su, mo, tu,
                                                            we, th, fr, sa).
                                                          type: string
                                              dtstart:
                                                description: >-
                                                  Start datetime from which the recurring
                                                  schedule is calculated, with edit policy
                                                  and value.
                                                type: object
                                                properties:
                                                  edit_policy:
                                                    description: >-
                                                      `editable` means the value can be
                                                      overridden; `locked` means it is fixed.
                                                    type: string
                                                    enum:
                                                      - locked
                                                      - editable
                                                  default_value:
                                                    description: >-
                                                      Default value applied when not
                                                      overridden.
                                                    type: string
                                                    format: date-time
                                              is_default:
                                                description: >-
                                                  Whether this option is the default
                                                  selection.
                                                type: boolean
                                        original_options:
                                          type: array
                                          description: >-
                                            Original digest schedule options as
                                            configured at the category level
                                          items:
                                            type: object
                                            properties:
                                              id:
                                                description: >-
                                                  Unique identifier of the digest schedule
                                                  option.
                                                type: string
                                              label:
                                                description: Display label shown to the recipient.
                                                type: string
                                              frequency:
                                                description: >-
                                                  Frequency of the digest schedule
                                                  (instantly, hourly, daily, weekly,
                                                  weekly_mo2fr, monthly).
                                                type: string
                                              interval:
                                                description: >-
                                                  Recurrence multiplier for the frequency
                                                  (for example, every 2 weeks).
                                                type: integer
                                              time:
                                                description: >-
                                                  Time of day to send the digest, with its
                                                  edit policy and value.
                                                type: object
                                                properties:
                                                  edit_policy:
                                                    description: >-
                                                      `editable` means the value can be
                                                      overridden; `locked` means it is fixed.
                                                    type: string
                                                  default_value:
                                                    description: >-
                                                      Default value applied when not
                                                      overridden.
                                                    type: string
                                              weekdays:
                                                description: >-
                                                  Days of the week to send on (for weekly
                                                  frequency), with edit policy and value.
                                                type: object
                                                properties:
                                                  edit_policy:
                                                    description: >-
                                                      `editable` means the value can be
                                                      overridden; `locked` means it is fixed.
                                                    type: string
                                                  default_value:
                                                    description: >-
                                                      Default value applied when not
                                                      overridden.
                                                    type: array
                                                    items:
                                                      type: string
                                              monthdays:
                                                description: >-
                                                  Days of the month to send on (for
                                                  monthly frequency), with edit policy and
                                                  value.
                                                type: object
                                                properties:
                                                  edit_policy:
                                                    description: >-
                                                      `editable` means the value can be
                                                      overridden; `locked` means it is fixed.
                                                    type: string
                                                  default_value:
                                                    description: >-
                                                      Default value applied when not
                                                      overridden.
                                                    type: array
                                                    items:
                                                      type: object
                                                      properties:
                                                        pos:
                                                          description: >-
                                                            Position in the month (1-31; use a
                                                            negative value to count from the end).
                                                          type: integer
                                                        day:
                                                          description: >-
                                                            Optional day of the week (su, mo, tu,
                                                            we, th, fr, sa).
                                                          type: string
                                              dtstart:
                                                description: >-
                                                  Start datetime from which the recurring
                                                  schedule is calculated, with edit policy
                                                  and value.
                                                type: object
                                                properties:
                                                  edit_policy:
                                                    description: >-
                                                      `editable` means the value can be
                                                      overridden; `locked` means it is fixed.
                                                    type: string
                                                  default_value:
                                                    description: >-
                                                      Default value applied when not
                                                      overridden.
                                                    type: string
                                                    format: date-time
                                              is_default:
                                                description: >-
                                                  Whether this option is the default
                                                  selection.
                                                type: boolean
                                    properties:
                                      type: array
                                      nullable: true
                                      description: >-
                                        Category condition properties with
                                        tenant overrides
                                      items:
                                        type: object
                                        properties:
                                          key:
                                            description: >-
                                              Property key identifier, referenced in
                                              workflows as
                                              `$category.properties.<key>`.
                                            type: string
                                          label:
                                            description: Display label shown to the recipient.
                                            type: string
                                          value_type:
                                            description: Data type of the property value.
                                            type: string
                                          default_value:
                                            description: >-
                                              Default value applied when not
                                              overridden.
                                            type: string
                                          is_optional:
                                            description: Whether this property is optional.
                                            type: boolean
                                          edit_policy:
                                            description: >-
                                              `editable` means the value can be
                                              overridden; `locked` means it is fixed.
                                            type: string
                                            enum:
                                              - locked
                                              - editable
                                          is_overridden:
                                            type: boolean
                                            description: >-
                                              Whether the tenant has overridden the
                                              default value
                                          value:
                                            description: Tenant-overridden value, if any
        '404':
          description: '404'
          content:
            application/json:
              examples:
                Result:
                  value:
                    code: 404
                    message: tenant 'tenant_id' not found
              schema:
                type: object
                properties:
                  code:
                    type: integer
                    example: 404
                  message:
                    type: string
                    example: tenant 'tenant_id' not found
      deprecated: false
      security:
        - BearerAuth: []
components:
  securitySchemes:
    sec0:
      type: apiKey
      in: header
      name: Authorization
      x-bearer-format: bearer
      description: >-
        Bearer authentication header of the form `Bearer <token>`, where <token>
        is your auth token.
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API_Key
      description: >-
        Pass as `Bearer <API_KEY>`. Get API Key from SuprSend dashboard
        Developers -> API Keys section.

````