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

# Public branding for a session

> White-label theme delivery for the consumer verify page. Returns ONLY the session's copied theme presentation; unknown session ids return the default Minerva branding with the same 200 shape (no existence oracle). The logo rides as its bare `asset_id` (or null), never a storage key. Never carries status, steps, scope, or assessment detail. `Cache-Control: private, max-age=300`.




## OpenAPI

````yaml /api-reference/idv-svc.json get /sessions/{sessionId}/branding
openapi: 3.1.0
info:
  title: Minerva IDV API
  version: 1.0.0-draft
  description: >-
    Customer API for identity verification. Create verification sessions for
    profiles, deliver invites, track capture progress, and read review outcomes.
    For the end-to-end flow, see the [IDV Integration
    Guide](/api-reference/idv-integration-guide). Reviewer-safe responses never
    expose storage keys, checksums, wrapped keys, encryption context, raw OCR,
    or raw model output. Decrypted personal data is available only on `GET
    /sessions/{sessionId}/data`, to an authenticated in-scope principal, with
    fail-closed auditing.
servers:
  - url: https://api.gominerva.com/idv/v1
    description: The production API server for Minerva identity verification
security: []
tags:
  - name: sessions
    description: >-
      Verification sessions and invite delivery (application or dashboard
      authentication).
  - name: capture
    description: End-user capture flow (session or invite credentials).
  - name: review
    description: Review decisions and audited structured-data access.
  - name: workflows
    description: Workflow configuration for verification sessions.
  - name: themes
    description: Branding themes and managed logo assets.
paths:
  /sessions/{sessionId}/branding:
    get:
      tags:
        - sessions
      summary: Public branding for a session
      description: >
        White-label theme delivery for the consumer verify page. Returns ONLY
        the session's copied theme presentation; unknown session ids return the
        default Minerva branding with the same 200 shape (no existence oracle).
        The logo rides as its bare `asset_id` (or null), never a storage key.
        Never carries status, steps, scope, or assessment detail.
        `Cache-Control: private, max-age=300`.
      parameters:
        - $ref: '#/components/parameters/SessionId'
      responses:
        '200':
          description: Branding (session's copy merged over the Minerva defaults)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SessionBrandingResponse'
      security: []
components:
  parameters:
    SessionId:
      name: sessionId
      in: path
      required: true
      schema:
        type: string
  schemas:
    SessionBrandingResponse:
      type: object
      description: >
        The ONLY body the public branding endpoint may serve. Unknown ids get
        the pure Minerva defaults with the same shape (logo and logo_square
        null).
      required:
        - branding
      properties:
        branding:
          $ref: '#/components/schemas/SessionBranding'
    SessionBranding:
      type: object
      description: >
        The render-ready theme for one session: the session's create-time copy
        merged over the Minerva defaults, so every presentation field is always
        populated. Each logo slot carries the bare asset_id only (or null); the
        consumer builds `/branding/logo?v=<asset_id>` or
        `/branding/logo/square?v=<asset_id>` itself.
      required:
        - company_name
        - privacy_contact_email
        - colors
        - font_family
        - logo
        - logo_square
      properties:
        company_name:
          type: string
        privacy_contact_email:
          oneOf:
            - type: string
              format: email
            - type: string
              maxLength: 0
          description: >-
            Empty on the anonymous branding endpoint; fetch token-plane status
            for the consent notice contact.
        colors:
          type: object
          required:
            - primary
            - primary_foreground
            - background
            - foreground
            - accent
          properties:
            primary:
              type: string
              pattern: ^#[0-9a-f]{6}$
            primary_foreground:
              type: string
              pattern: ^#[0-9a-f]{6}$
            background:
              type: string
              pattern: ^#[0-9a-f]{6}$
            foreground:
              type: string
              pattern: ^#[0-9a-f]{6}$
            accent:
              type: string
              pattern: ^#[0-9a-f]{6}$
        font_family:
          type: string
        logo:
          oneOf:
            - type: object
              required:
                - asset_id
              additionalProperties: false
              properties:
                asset_id:
                  type: string
                  pattern: ^[0-9a-f]{24}$
            - type: 'null'
        logo_square:
          oneOf:
            - type: object
              required:
                - asset_id
              additionalProperties: false
              properties:
                asset_id:
                  type: string
                  pattern: ^[0-9a-f]{24}$
            - type: 'null'

````