> ## 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 Workspace Config

> Retrieve workspace-level configuration flags — the settings that govern behavior for every user, tenant, and workflow inside this workspace.

Fields returned:
- `user_inbox_preference_enabled` — if you are using the Inbox channel, enable this to show the Inbox channel in the preference centre.
- `sms_vendor_type` — SMS delivery mode used for this workspace (`basic` for standard sends, `dlt` for India DLT-compliant sends).
- `user_tenancy_mode` — how a user's association to tenants is constrained. `shared` allows a user to belong to any number of tenants; `exclusive` restricts each user to at most one tenant. See [User-tenant mapping](/docs/user-tenant-mapping) for the trade-offs.
- `user_tenancy_channel_fallback_mode` and `user_tenancy_channel_fallback` — govern which channels on a tenant-scoped profile are allowed to fall back to the user's global profile. Use `allowlist` mode with an explicit list to prevent identities like `$androidpush` or `$slack` from leaking across tenants.
- `user_tenancy_channel_fallback_applies_to_default_tenant` — whether the fallback rule above also applies to the default-tenant path (sends without a `tenant_id`).




## OpenAPI

````yaml GET /v1/{workspace}/config/
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/{workspace}/config/:
    get:
      summary: Get Workspace Config
      description: >
        Retrieve workspace-level configuration flags — the settings that govern
        behavior for every user, tenant, and workflow inside this workspace.


        Fields returned:

        - `user_inbox_preference_enabled` — if you are using the Inbox channel,
        enable this to show the Inbox channel in the preference centre.

        - `sms_vendor_type` — SMS delivery mode used for this workspace (`basic`
        for standard sends, `dlt` for India DLT-compliant sends).

        - `user_tenancy_mode` — how a user's association to tenants is
        constrained. `shared` allows a user to belong to any number of tenants;
        `exclusive` restricts each user to at most one tenant. See [User-tenant
        mapping](/docs/user-tenant-mapping) for the trade-offs.

        - `user_tenancy_channel_fallback_mode` and
        `user_tenancy_channel_fallback` — govern which channels on a
        tenant-scoped profile are allowed to fall back to the user's global
        profile. Use `allowlist` mode with an explicit list to prevent
        identities like `$androidpush` or `$slack` from leaking across tenants.

        - `user_tenancy_channel_fallback_applies_to_default_tenant` — whether
        the fallback rule above also applies to the default-tenant path (sends
        without a `tenant_id`).
      operationId: get-workspace-config
      parameters:
        - in: path
          name: workspace
          required: true
          schema:
            type: string
          description: Workspace slug (e.g. `staging`, `production`).
      responses:
        '200':
          description: Workspace config retrieved.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkspaceConfig'
              example:
                user_inbox_preference_enabled: true
                sms_vendor_type: basic
                user_tenancy_mode: exclusive
                user_tenancy_channel_fallback_mode: allowlist
                user_tenancy_channel_fallback:
                  - $email
                  - $sms
                  - $whatsapp
                user_tenancy_channel_fallback_applies_to_default_tenant: false
        '401':
          $ref: '#/components/responses/AuthenticationError'
        '404':
          $ref: '#/components/responses/NotFoundError'
      security:
        - ServiceTokenAuth: []
      servers:
        - url: https://management-api.suprsend.com
      x-codeSamples:
        - lang: cURL
          label: Get Workspace Config
          source: >
            curl -X GET
            "https://management-api.suprsend.com/v1/{workspace}/config/" \
              --header 'Authorization: ServiceToken <SERVICE_TOKEN>' \
              --header 'Content-Type: application/json'
components:
  schemas:
    WorkspaceConfig:
      type: object
      description: Workspace-level configuration flags.
      properties:
        user_inbox_preference_enabled:
          type: boolean
          description: >-
            If you are using the Inbox channel, enable this to show the Inbox
            channel in the preference centre.
          example: true
        sms_vendor_type:
          type: string
          enum:
            - basic
            - dlt
          description: >-
            SMS delivery mode for the workspace. Use `dlt` for India
            DLT-compliant sends; `basic` for standard sends.
          example: basic
        user_tenancy_mode:
          type: string
          enum:
            - shared
            - exclusive
          description: >
            Constraint on user-tenant associations for this workspace.

            - `shared` — a user can belong to any number of tenants.

            - `exclusive` — a user can belong to at most one tenant. The
            associate call rejects users that already have a mapping.


            New workspaces default to `exclusive`; workspaces that existed
            before this setting was introduced default to `shared`.
          example: exclusive
        user_tenancy_channel_fallback_mode:
          type: string
          enum:
            - all
            - allowlist
          description: >
            Controls which channels a tenant-scoped profile is allowed to
            inherit from the user's global profile when the tenant has no
            override for that channel.

            - `all` — every channel falls back to global (default; reproduces a
            straight shallow merge).

            - `allowlist` — only the channels listed in
            `user_tenancy_channel_fallback` fall back; every other channel is
            dropped from the send when the tenant has no override for it.
            Prevents identities like `$androidpush` or `$slack` from leaking
            across tenants.
          example: all
        user_tenancy_channel_fallback:
          type: array
          items:
            type: string
          description: >
            Channel keys allowed to fall back from the global profile when
            `user_tenancy_channel_fallback_mode = allowlist`. Ignored when the
            mode is `all`.


            Typical setup: `["$email", "$sms", "$whatsapp"]` — safe to fall back
            — while excluding `$androidpush`, `$iospush`, `$webpush`, `$inbox`,
            and `$slack`.
          example:
            - $email
            - $sms
            - $whatsapp
        user_tenancy_channel_fallback_applies_to_default_tenant:
          type: boolean
          default: false
          description: >
            Whether the fallback rule above also governs sends that carry no
            `tenant_id` (the default-tenant path).

            - `false` (default) — the default-tenant path always falls back for
            every channel, regardless of the allowlist.

            - `true` — the default-tenant path follows the same
            `user_tenancy_channel_fallback_mode` +
            `user_tenancy_channel_fallback` rule as other tenants.
          example: false
    ErrorResponse:
      type: object
      properties:
        code:
          type: integer
          description: HTTP status code
        error_code:
          type: string
          description: Specific error code identifier
        type:
          type: string
          description: Error type classification
        message:
          type: string
          description: Human-readable error message
        detail:
          type: string
          description: Additional error details
  responses:
    AuthenticationError:
      description: Authentication failed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            code: 401
            error_code: authentication_failed
            type: AuthenticationFailed
            message: Invalid service token.
            detail: Invalid service token.
    NotFoundError:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            code: 404
            error_code: not_found
            type: NotFound
            message: workspace 'demo' not found
            detail: workspace 'demo' not found
  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.
    ServiceTokenAuth:
      type: apiKey
      in: header
      name: ServiceToken <token>
      description: >-
        You can get Service Token from [SuprSend dashboard -> Account Settings
        -> Service
        Tokens](https://app.suprsend.com/en/account-settings/service-tokens)
        section.

````