> ## 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 Preference All Categories

> API to get tenant preferences for all categories with translated names and descriptions.



## OpenAPI

````yaml GET /v1/tenant/{tenant_id}/preference/category/
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/category/:
    get:
      summary: Get Tenant Preference All Categories
      description: >-
        API to get tenant preferences for all categories with translated names
        and descriptions.
      operationId: get-tenant-preference-all-categories
      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
        - name: limit
          in: query
          description: Number of results to return per page
          schema:
            type: integer
            default: 10
        - name: offset
          in: query
          description: Number of results to skip
          schema:
            type: integer
            default: 0
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value:
                    meta:
                      count: 29
                      limit: 10
                      offset: 0
                    results:
                      - name: sreehari_test
                        category: sreehari_test
                        description: null
                        tags: null
                        effective_tags:
                          - wwr
                        root_category: system
                        default_preference: cant_unsubscribe
                        default_mandatory_channels:
                          - email
                        default_opt_in_channels:
                          - slack
                        enabled_for_tenant: true
                        visible_to_subscriber: true
                        preference: null
                        mandatory_channels: null
                        opt_in_channels: null
                        blocked_channels: null
                        updated_at: null
              schema:
                type: object
                properties:
                  meta:
                    type: object
                    properties:
                      count:
                        type: integer
                      limit:
                        type: integer
                      offset:
                        type: integer
                  results:
                    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
                        root_category:
                          description: >-
                            Root category (system, transactional, or
                            promotional) this sub-category belongs to.
                          type: string
                          enum:
                            - system
                            - transactional
                            - promotional
                        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.

````