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

# Get a tenant's public config by domain

> Matches a bare domain (no scheme, path or port) case-insensitively. Only domains explicitly registered against a tenant resolve, which is a small set used by white-label frontends — any other domain returns INVALID_TENANT, including one that looks like a Korint hostname.



## OpenAPI

````yaml /openapi.json get /config/by-domain
openapi: 3.0.0
info:
  title: Korint API
  description: >-
    Quoting, policy issuance, billing, claims, documents and compliance for
    insurance distribution.
  version: 1.0.0
  contact: {}
servers:
  - url: https://api.korint.io
    description: Production
  - url: https://api.sandbox.korint.io
    description: Sandbox
security:
  - oauth2: []
  - bearerAuth: []
tags: []
paths:
  /config/by-domain:
    get:
      tags:
        - config
      summary: Get a tenant's public config by domain
      description: >-
        Matches a bare domain (no scheme, path or port) case-insensitively. Only
        domains explicitly registered against a tenant resolve, which is a small
        set used by white-label frontends — any other domain returns
        INVALID_TENANT, including one that looks like a Korint hostname.
      operationId: ConfigController_getPublicTenantConfigByDomain
      parameters:
        - name: domain
          required: true
          in: query
          description: Hostname the tenant frontend is being served on
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetPublicTenantConfigByDomainOutput'
        '400':
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/InvalidTenantErrorDto'
              examples:
                INVALID_TENANT:
                  value:
                    code: INVALID_TENANT
                    message: Invalid tenant {tenant}
                    details: {}
          description: ''
components:
  schemas:
    GetPublicTenantConfigByDomainOutput:
      type: object
      properties:
        speechToText:
          description: >-
            Speech-to-text (dictation) config. When set, dictation is enabled
            for this tenant; when absent, dictation is off. Exposed in the
            public tenant config so the frontend can gate the mic.
          allOf:
            - $ref: '#/components/schemas/SpeechToTextConfig'
        externalLinks:
          description: >-
            External links (attestations, notices, legal pages, …) rendered in
            the tenant frontend on the login page, the home page and the
            sidebar. Exposed in the public tenant config.
          type: array
          items:
            $ref: '#/components/schemas/TenantExternalLinkDto'
        previousClaimsPlatformUrl:
          format: uri
          type: string
          description: >-
            URL of the legacy claims platform. When set, the tenant frontend
            surfaces an alert pointing users to it for claims filed before
            migration. Exposed in the public tenant config.
        displayName:
          type: string
          description: >-
            Human-readable tenant name shown to end users in the tenant
            frontend. Falls back to the technical tenant ID when unset.
        brokerageFirmCustomFields:
          type: array
          items:
            $ref: '#/components/schemas/BrokerageFirmCustomFieldConfigDto'
        distributionRequest:
          $ref: '#/components/schemas/DistributionRequestConfigDto'
        brokerageFirmDocuments:
          $ref: '#/components/schemas/BrokerageFirmDocumentsConfigDto'
        documentPrefill:
          description: >-
            Controls the default choice (upload now vs. later) on the document
            prefill funnel step
          allOf:
            - $ref: '#/components/schemas/DocumentPrefillConfigDto'
        reports:
          type: array
          items:
            $ref: '#/components/schemas/ReportConfigDto'
        metabaseDashboardIds:
          description: >-
            Metabase dashboard tabs configuration (takes priority over
            metabaseDashboardId)
          type: array
          items:
            $ref: '#/components/schemas/MetabaseDashboardTabConfig'
        ai:
          description: Tenant-level AI configuration (classification, extraction)
          allOf:
            - $ref: '#/components/schemas/AIConfig'
        theme:
          description: Visual theming configuration (colors, logos, branding)
          allOf:
            - $ref: '#/components/schemas/TenantThemeConfigDto'
        externalScripts:
          description: >-
            Third-party scripts to inject into the tenant frontend at runtime
            (e.g. chat widgets). Each entry is rendered as a <script> tag with
            its data-* attributes by the frontend ExternalScriptsLoader.
          type: array
          items:
            $ref: '#/components/schemas/ExternalScriptConfigDto'
        authentication:
          description: Authentication configuration (Cognito user pool, OAuth domain)
          allOf:
            - $ref: '#/components/schemas/TenantAuthenticationConfigDto'
        tenantName:
          type: string
        availableProductIds:
          description: >-
            Product ids active (feature-flag-enabled) for this tenant in this
            environment.
          type: array
          items:
            type: string
        tenantId:
          type: string
          description: Resolved tenant ID for the requested domain
      required:
        - brokerageFirmCustomFields
        - theme
        - authentication
        - tenantName
        - availableProductIds
        - tenantId
    InvalidTenantErrorDto:
      type: object
      properties:
        code:
          type: string
          enum:
            - INVALID_TENANT
        message:
          type: string
          example: Invalid tenant {tenant}
        details:
          $ref: '#/components/schemas/InvalidTenantDetailsDto'
      required:
        - code
        - message
        - details
    SpeechToTextConfig:
      type: object
      properties:
        provider:
          type: string
          enum:
            - aws-transcribe
            - elevenlabs
          description: Speech-to-text provider for this tenant. Presence enables dictation.
      required:
        - provider
    TenantExternalLinkDto:
      type: object
      properties:
        id:
          type: string
          description: >-
            Stable identifier the tenant frontend uses to look up a translated
            label (e.g. `insurance_certificate`). Falls back to `label` when
            unset or unknown.
        label:
          type: string
          description: Display label for the external link
        url:
          format: uri
          type: string
          description: Absolute URL the link points to
      required:
        - label
        - url
    BrokerageFirmCustomFieldConfigDto:
      type: object
      properties:
        key:
          type: string
        type:
          type: string
          enum:
            - BOOLEAN
            - STRING
            - NUMBER
            - INTEGER
            - ENUM
            - DATE
            - DATETIME
            - PHONE_NUMBER
            - EMAIL
            - REGISTRATION_NUMBER
            - SIRET
            - POSTCODE
            - URL
            - IBAN
            - BIC
        validationRules:
          type: array
          items:
            $ref: '#/components/schemas/ValidationRuleDto'
        integrationKey:
          type: string
        extractionSources:
          description: Extraction source categories that map to this field
          type: array
          items:
            type: string
        extractionFieldKey:
          type: string
          description: Field key used in extraction prompt output
        autoFill:
          description: Auto-fill configuration for this field
          allOf:
            - $ref: '#/components/schemas/DocumentAutoFillDto'
      required:
        - key
        - type
    DistributionRequestConfigDto:
      type: object
      properties:
        approveOnSignature:
          type: boolean
        contractConfig:
          $ref: '#/components/schemas/DistributionRequestContractConfigDto'
      required:
        - approveOnSignature
    BrokerageFirmDocumentsConfigDto:
      type: object
      properties:
        brokerageFirmDocumentsList:
          type: array
          items:
            $ref: '#/components/schemas/ConfigBrokerageFirmDocumentDto'
        signatureDocumentsList:
          type: array
          items:
            $ref: '#/components/schemas/ConfigBrokerageFirmDocumentDto'
      required:
        - brokerageFirmDocumentsList
    DocumentPrefillConfigDto:
      type: object
      properties:
        policyholderDefaultChoice:
          type: string
          enum:
            - upload
            - later
          description: Default choice on the policyholder discovery funnel
        brokerageFirmDefaultChoice:
          type: string
          enum:
            - upload
            - later
          description: Default choice on the brokerage firm signup funnel
    ReportConfigDto:
      type: object
      properties:
        type:
          type: string
        columnsMapping:
          type: array
          items:
            oneOf:
              - type: object
        availableProductIds:
          description: If not set, all products are available
          type: array
          items:
            type: string
        allowedBusinessRoles:
          description: If not set, no business role can access
          type: array
          items:
            type: string
        automations:
          type: array
          items:
            type: object
      required:
        - type
        - columnsMapping
    MetabaseDashboardTabConfig:
      type: object
      properties:
        name:
          type: string
          description: i18n key for the tab name
        dashboardId:
          type: number
          description: Metabase dashboard ID for this tab
        forTypes:
          description: Business role names that can access this tab
          type: array
          items:
            type: string
        params:
          type: object
          description: Locked parameters to pass to the Metabase static embed JWT
          additionalProperties: true
      required:
        - name
        - dashboardId
        - forTypes
    AIConfig:
      type: object
      properties:
        classification:
          description: AI classification config
          allOf:
            - $ref: '#/components/schemas/AIClassificationConfig'
        extraction:
          description: AI extraction config
          allOf:
            - $ref: '#/components/schemas/AIExtractionConfig'
        validity:
          description: AI validity config
          allOf:
            - $ref: '#/components/schemas/AIValidityConfig'
        autofill:
          description: AI autofill config
          allOf:
            - $ref: '#/components/schemas/AIAutofillConfig'
        claimDocClassifier:
          description: Code-based claim document classifier config (opt-in per product)
          allOf:
            - $ref: '#/components/schemas/ClaimDocClassifierConfig'
        claimDocExtractor:
          description: Claim document field extractor config (opt-in per product)
          allOf:
            - $ref: '#/components/schemas/ClaimDocExtractorConfig'
        conversationSystemPrompt:
          type: string
          description: System prompt for in-app AI conversation
    TenantThemeConfigDto:
      type: object
      properties:
        primaryColor:
          description: >-
            Primary brand color. Accepts either a single hex string (expanded to
            a 10-shade Mantine palette via @mantine/colors-generator, with shade
            6 forced to the input hex for exact brand match) or a pre-built
            10-shade tuple (lightest to darkest) when manual control is
            required.
          oneOf:
            - type: string
              example: '#00387B'
            - type: array
              items:
                type: string
              minItems: 10
              maxItems: 10
        logo:
          type: string
          description: Logo URL for light mode
        logoDark:
          type: string
          description: Logo URL for dark mode
        favicon:
          type: string
          description: Favicon URL
        colorScheme:
          type: string
          description: Force a color scheme for this tenant
          enum:
            - light
            - dark
            - auto
        secondaryColors:
          type: object
          description: >-
            Optional named secondary brand colors. Each value is either a single
            hex string (auto-expanded) or a 10-shade tuple. Keys become Mantine
            color names usable via `<Button color="key" />`. Reserved keys
            `brand` and `gray` are ignored to protect the primary palette and
            neutral ramp.
          example:
            cyan: '#00AEEF'
            red: '#BB1E10'
      required:
        - primaryColor
        - logo
        - favicon
    ExternalScriptConfigDto:
      type: object
      properties:
        id:
          type: string
          description: Stable id — used as the script tag id and de-dupe key.
        src:
          type: string
          description: Absolute URL of the script to load.
        async:
          type: boolean
          description: Render as <script async>. Defaults to true.
        defer:
          type: boolean
          description: Render as <script defer>.
        dataAttributes:
          type: object
          description: >-
            Arbitrary data-* attributes (key without the "data-" prefix). Used
            by vendor loaders (e.g. FCB embed.js reads data-key, data-domain,
            data-consent).
          example:
            domain: marsh-carrefour-banque-assurances.com?ID_SITE_MB=31
            key: pk_live_xxx
            consent: required
        requiresInitToken:
          type: boolean
          description: >-
            When true, the frontend loader mints a fresh RS256 JWT from the
            Korint FCB widget endpoint (with the user's Cognito Bearer) before
            injecting the script, then stamps the JWT as `data-init-token=<jwt>`
            on the tag.
      required:
        - id
        - src
    TenantAuthenticationConfigDto:
      type: object
      properties:
        cognitoUserPoolId:
          type: string
          description: Cognito User Pool ID
        cognitoUserPoolClientId:
          type: string
          description: Cognito User Pool Web Client ID
        cognitoDomain:
          type: string
          description: Cognito OAuth domain
      required:
        - cognitoUserPoolId
        - cognitoUserPoolClientId
        - cognitoDomain
    InvalidTenantDetailsDto:
      type: object
      properties:
        tenant:
          type: string
      required:
        - tenant
    ValidationRuleDto:
      type: object
      properties:
        option:
          type: string
        value:
          oneOf:
            - type: string
            - type: number
            - type: boolean
            - type: array
              items:
                type: string
      required:
        - option
        - value
    DocumentAutoFillDto:
      type: object
      properties:
        enabled:
          type: boolean
          description: Whether auto-fill is enabled for this field
      required:
        - enabled
    DistributionRequestContractConfigDto:
      type: object
      properties:
        templateId:
          type: string
        signature:
          $ref: '#/components/schemas/ConfigSignedDocumentDto'
        provider:
          type: string
          description: Document generation provider to use for this distribution contract
          enum:
            - CraftMyPdf
            - Carbone
            - Static
      required:
        - templateId
        - signature
        - provider
    ConfigBrokerageFirmDocumentDto:
      type: object
      properties:
        category:
          type: string
        required:
          type: boolean
        allowMultiple:
          type: boolean
        extractionFields:
          description: Fields to extract from this document category
          type: array
          items:
            $ref: '#/components/schemas/ExtractionFieldConfigDto'
        validity:
          description: Validity rules for this document category
          type: array
          items:
            $ref: '#/components/schemas/DocumentValidityRuleDto'
      required:
        - category
    AIClassificationConfig:
      type: object
      properties:
        enabled:
          type: boolean
          description: Master switch for AI classification
        interfaces:
          description: Per-interface configuration
          allOf:
            - $ref: '#/components/schemas/AIClassificationInterfacesConfig'
      required:
        - enabled
        - interfaces
    AIExtractionConfig:
      type: object
      properties:
        enabled:
          type: boolean
          description: Whether AI extraction is enabled
        promptSlug:
          type: string
          description: Extraction prompt template slug
      required:
        - enabled
    AIValidityConfig:
      type: object
      properties:
        enabled:
          type: boolean
          description: Whether AI validity checking is enabled
      required:
        - enabled
    AIAutofillConfig:
      type: object
      properties:
        enabled:
          type: boolean
          description: Whether AI autofill is enabled
      required:
        - enabled
    ClaimDocClassifierConfig:
      type: object
      properties:
        enabled:
          type: boolean
          description: >-
            Whether the claim document classifier is enabled for this product.
            When true and an entityId is supplied with the classify call, the
            classifier loads the claim's ClaimDocumentRef list, runs
            buildClaimClassificationContext, and invokes
            classificationPromptSlug with the expected-docs list as an injected
            variable. The classifier returns the matching insurer code;
            downstream extraction uses the category-specific slug from
            CLAIM_DOC_CATEGORY_TO_PROMPT_SLUG. When no entityId is supplied, the
            classic AIClassificationInterfaceConfig path runs unchanged.
        classificationPromptSlug:
          type: string
          description: >-
            Prompt slug for the claim doc classifier (resolved from the in-code
            PromptLibrary). The prompt receives `expected_docs` (list of {code,
            libelle, category, extractionPromptSlug} for the claim) as an
            injected variable and returns the code that matches the uploaded
            document. Example: 'document-classification-carrefour-banque-claim'.
        claimDocCodeToCategory:
          type: object
          description: >-
            Partner-specific document code → ClaimDocCategory registry. Used by
            the partner integration at bootstrap to stamp `category` onto each
            required document slot, and (when present) lets downstream consumers
            resolve a code without an out-of-band table lookup. Each value must
            be a ClaimDocCategory enum value.
      required:
        - enabled
        - classificationPromptSlug
    ClaimDocExtractorConfig:
      type: object
      properties:
        enabled:
          type: boolean
          description: >-
            Whether the claim document extractor is enabled for this product.
            When true and the doc category resolves to an entry in
            productConfig.claimDocuments[] with extractionFields, the extractor
            calls promptSlug with {category, claimType, fields} variables and
            writes results back to the claim aggregate via the prefill step.
        promptSlug:
          type: string
          description: >-
            Prompt slug for the claim doc extractor (resolved from the in-code
            PromptLibrary, under prompts/library/document-extraction/). Receives
            {category, claimType, fields} variables. Example:
            'claim-doc-extraction-carrefour-banque-v1'.
      required:
        - enabled
        - promptSlug
    ConfigSignedDocumentDto:
      type: object
      properties:
        signature:
          type: string
          enum:
            - VIEW
            - SIGN
        configName:
          type: string
          description: >-
            When set, this entry targets only the generated document whose
            configName matches. Allows different signature positions for
            multiple generated documents sharing the same documentType.
        signers:
          type: array
          items:
            $ref: '#/components/schemas/SignerConfigItemDto'
        anchor:
          $ref: '#/components/schemas/ConfigSignedDocumentAnchorDto'
        mentions:
          type: array
          items:
            $ref: '#/components/schemas/ConfigSignedDocumentMentionDto'
        texts:
          type: array
          items:
            $ref: '#/components/schemas/ConfigSignedDocumentTextDto'
        checkboxes:
          type: array
          items:
            $ref: '#/components/schemas/ConfigSignedDocumentCheckboxDto'
        type:
          type: string
      required:
        - signature
        - type
    ExtractionFieldConfigDto:
      type: object
      properties:
        key:
          type: string
          description: Field key to extract
        type:
          type: string
          description: Field type (e.g. STRING, DATE, NUMBER)
        sides:
          description: Which sides of a document this field appears on
          type: array
          items:
            type: string
      required:
        - key
        - type
    DocumentValidityRuleDto:
      type: object
      properties:
        type:
          type: string
          description: Validity rule type
          enum:
            - READABLE
            - REQUIRED_FIELDS
            - PROMPT
            - FIELD_VALIDATION
        promptSlug:
          type: string
          description: Prompt slug for PROMPT rule type
        requiredFields:
          description: Required field keys for REQUIRED_FIELDS rule type
          type: array
          items:
            type: array
        validations:
          description: Validation rules for FIELD_VALIDATION rule type
          type: array
          items:
            $ref: '#/components/schemas/FieldValidationRuleConfig'
      required:
        - type
    AIClassificationInterfacesConfig:
      type: object
      properties:
        policyholderDashboard:
          $ref: '#/components/schemas/AIClassificationInterfaceConfig'
        brokerageFirmDocuments:
          $ref: '#/components/schemas/AIClassificationInterfaceConfig'
        nonDelegatedDocuments:
          $ref: '#/components/schemas/AIClassificationInterfaceConfig'
        fnolDocuments:
          $ref: '#/components/schemas/AIClassificationInterfaceConfig'
    SignerConfigItemDto:
      type: object
      properties:
        recipient:
          type: string
          enum:
            - BROKER
            - BROKERAGE_FIRM
            - WHOLESALE_BROKER
            - USER
            - AUTHOR
            - INVOICE_PAYER
        displayAs:
          type: string
          enum:
            - BROKER
            - BROKERAGE_FIRM
            - WHOLESALE_BROKER
            - USER
            - AUTHOR
            - INVOICE_PAYER
        role:
          type: string
        anchor:
          $ref: '#/components/schemas/ConfigSignedDocumentAnchorDto'
        mentions:
          type: array
          items:
            $ref: '#/components/schemas/ConfigSignedDocumentMentionDto'
        texts:
          type: array
          items:
            $ref: '#/components/schemas/ConfigSignedDocumentTextDto'
        checkboxes:
          type: array
          items:
            $ref: '#/components/schemas/ConfigSignedDocumentCheckboxDto'
      required:
        - recipient
    ConfigSignedDocumentAnchorDto:
      type: object
      properties:
        page:
          type: object
        x:
          type: number
        'y':
          type: number
        height:
          type: number
        width:
          type: number
      required:
        - page
        - x
        - 'y'
        - height
        - width
    ConfigSignedDocumentMentionDto:
      type: object
      properties:
        page:
          type: object
        x:
          type: number
        'y':
          type: number
        width:
          type: number
        mention:
          type: string
      required:
        - page
        - x
        - 'y'
        - mention
    ConfigSignedDocumentTextDto:
      type: object
      properties:
        page:
          type: object
        x:
          type: number
        'y':
          type: number
        width:
          type: number
        height:
          type: number
        maxLength:
          type: number
        question:
          type: string
        instruction:
          type: string
        optional:
          type: boolean
      required:
        - page
        - x
        - 'y'
        - width
        - maxLength
        - question
    ConfigSignedDocumentCheckboxDto:
      type: object
      properties:
        page:
          type: object
        x:
          type: number
        'y':
          type: number
        size:
          type: number
        name:
          type: string
        optional:
          type: boolean
        checked:
          type: boolean
      required:
        - page
        - x
        - 'y'
        - size
        - name
    FieldValidationRuleConfig:
      type: object
      properties:
        fieldKey:
          type: string
          description: Extracted field key to validate
        operator:
          type: string
          description: Validation operator
          enum:
            - DATE_IS_AFTER
            - DATE_IS_BEFORE
            - DATE_IS_NOT_OLDER_THAN
            - DATE_IS_NOT_NEWER_THAN
            - STRING_MATCHES
            - STRING_EQUALS
            - STRING_NOT_EMPTY
            - NUMBER_GT
            - NUMBER_LT
            - NUMBER_BETWEEN
        reference:
          description: Reference for date comparison
          allOf:
            - $ref: '#/components/schemas/FieldValidationReferenceDto'
        duration:
          description: Duration for relative date operators
          allOf:
            - $ref: '#/components/schemas/FieldValidationDurationDto'
        pattern:
          type: string
          description: Regex pattern for STRING_MATCHES
        expectedValue:
          type: string
          description: Expected value for STRING_EQUALS (case insensitive)
        numericValue:
          type: number
          description: Numeric value for NUMBER_GT / NUMBER_LT
        numericMin:
          type: number
          description: Min value for NUMBER_BETWEEN
        numericMax:
          type: number
          description: Max value for NUMBER_BETWEEN
        errorMessage:
          type: string
          description: Human-readable failure message
      required:
        - fieldKey
        - operator
    AIClassificationInterfaceConfig:
      type: object
      properties:
        enabled:
          type: boolean
          description: Whether AI classification is enabled for this interface
        systemPromptSlug:
          type: string
          description: System prompt template slug
        judgePromptSlug:
          type: string
          description: Judge prompt template slug
        judges:
          description: Judge configurations
          type: array
          items:
            $ref: '#/components/schemas/AIClassificationJudgeConfig'
      required:
        - enabled
        - systemPromptSlug
        - judgePromptSlug
        - judges
    FieldValidationReferenceDto:
      type: object
      properties:
        ref:
          type: string
          description: Reference type
          enum:
            - NOW
            - FIELD
            - LITERAL
        fieldKey:
          type: string
          description: Field key when ref is FIELD
        value:
          type: string
          description: Literal value when ref is LITERAL (e.g. ISO date string)
      required:
        - ref
    FieldValidationDurationDto:
      type: object
      properties:
        amount:
          type: number
          description: Duration amount
        unit:
          type: string
          description: Duration unit
          enum:
            - MONTH
            - DAY
            - YEAR
      required:
        - amount
        - unit
    AIClassificationJudgeConfig:
      type: object
      properties:
        model:
          type: string
          description: Judge model identifier (fast or quality)
        enabled:
          type: boolean
          description: Whether this judge is enabled
      required:
        - model
        - enabled
  securitySchemes:
    oauth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://korint-tenant.auth.eu-west-3.amazoncognito.com/oauth2/token
          scopes:
            korint.io/account: Read account information
            korint.io/analytics: Access analytics endpoints
            korint.io/assets: Access asset endpoints
            korint.io/billing: Access billing endpoints
            korint.io/branches: Access branch endpoints
            korint.io/broker: Access broker endpoints
            korint.io/claims: Access claim endpoints
            korint.io/comments: Access comment endpoints
            korint.io/customers: Access customer endpoints
            korint.io/derogations: Access derogation endpoints
            korint.io/documents: Access document endpoints
            korint.io/external: Access external lookup endpoints
            korint.io/external-claims: Declare claims from an external system
            korint.io/internal-notes: Access internal note endpoints
            korint.io/invitations: Access invitation endpoints
            korint.io/payments: Access payment endpoints
            korint.io/permissions: Access permission management endpoints
            korint.io/policies: Access policy endpoints
            korint.io/quotes: Access quote endpoints
            korint.io/reportings: Access reporting endpoints
            korint.io/signature: Access signature endpoints
      description: >-
        Machine-to-machine clients use the OAuth 2.0 client credentials grant.
        Each tenant has its own authorization server: in the token URL below,
        replace `tenant` with your tenant identifier.
    bearerAuth:
      scheme: bearer
      bearerFormat: JWT
      type: http
      description: An access token obtained from your tenant authorization server.

````