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

# Set Company Email Branding

> Turns email branding on or off for the company. On, every email AI
Insurance sends for the company (automatic emails such as member
invitations, and emails sent from email templates) carries the company's
logo, primary colour and name from its branding in Company Settings. Off,
those emails carry AI Insurance's logo and look. The wording of an email
does not change. An email is never held back because of branding: if the
company's branding cannot be used when an email is sent, it goes out in AI
Insurance's look. Setting the current value again changes nothing.

Only a PNG, JPG or GIF logo can be shown in email. Preview both looks in
the app under **Admin → Company Settings → Branding** before turning this
on. Answers `404` while email is not turned on for the company.

**Required permission:** `company.edit`




## OpenAPI

````yaml /openapi/generated-external-api.yaml put /api/v1/companies/{companyId}/email-branding
openapi: 3.0.3
info:
  title: AI Insurance External API
  description: External API for AI Insurance platform
  version: 1.0.0
  contact:
    email: support@aiinsurance.io
servers:
  - url: https://go.aiinsurance.io
    description: Production
security:
  - ApiKeyAuth: []
paths:
  /api/v1/companies/{companyId}/email-branding:
    put:
      tags:
        - Companies
      summary: Set Company Email Branding
      description: >
        Turns email branding on or off for the company. On, every email AI

        Insurance sends for the company (automatic emails such as member

        invitations, and emails sent from email templates) carries the company's

        logo, primary colour and name from its branding in Company Settings.
        Off,

        those emails carry AI Insurance's logo and look. The wording of an email

        does not change. An email is never held back because of branding: if the

        company's branding cannot be used when an email is sent, it goes out in
        AI

        Insurance's look. Setting the current value again changes nothing.


        Only a PNG, JPG or GIF logo can be shown in email. Preview both looks in

        the app under **Admin → Company Settings → Branding** before turning
        this

        on. Answers `404` while email is not turned on for the company.


        **Required permission:** `company.edit`
      operationId: setCompanyEmailBranding
      parameters:
        - $ref: '#/components/parameters/companyId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CompanyEmailBranding'
            examples:
              turnOn:
                summary: Turn email branding on
                value:
                  enabled: true
      responses:
        '200':
          description: The setting as saved.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyEmailBranding'
              examples:
                'on':
                  summary: Email branding on
                  value:
                    enabled: true
        '400':
          description: >-
            The body is not `{ "enabled": true }` or `{ "enabled": false }`.
            Nothing is saved.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                notABoolean:
                  summary: enabled is not a boolean
                  value:
                    error:
                      code: VALIDATION_ERROR
                      message: >-
                        enabled: Invalid input: expected boolean, received
                        string
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          description: Email is not turned on for the company.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  parameters:
    companyId:
      name: companyId
      in: path
      required: true
      schema:
        type: string
        format: uuid
      description: Company identifier
  schemas:
    CompanyEmailBranding:
      type: object
      additionalProperties: false
      required:
        - enabled
      description: >
        Whether the emails AI Insurance sends for the company carry the
        company's

        branding. Off by default.
      properties:
        enabled:
          type: boolean
          description: >
            `true`: emails carry the company's logo, primary colour and name
            from

            its branding in Company Settings. `false`: they carry AI Insurance's
            logo

            and look.
    ErrorResponse:
      type: object
      description: Standard error response for all external API endpoints
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
              description: Machine-readable error code
              example: VALIDATION_ERROR
            message:
              type: string
              description: Human-readable error message
              example: 'submissionId: Required field is missing'
            userMessages:
              type: array
              description: >-
                Clean, verbatim-displayable messages — one entry per failure,
                free of error-code tags, field paths, and internal noise.
                Suitable for showing to end users as-is.
              items:
                type: string
              example:
                - Exposures of type 'company' require an address
            details:
              type: array
              description: Additional details for validation errors (field-level errors)
              items:
                type: object
                properties:
                  field:
                    type: string
                    description: The field that caused the error
                    example: submissionId
                  code:
                    type: string
                    description: Stable problem code for this individual validation failure
                    example: BLANK_LIST_ELEMENT
                  reason:
                    type: string
                    description: Stable reason the value violates its canonical contract
                    example: blank-list-element
                  expected:
                    type: string
                    description: The expected canonical value contract
                    example: nonblank trimmed string
                  message:
                    type: string
                    description: Description of the field error
                    example: Required field is missing
  responses:
    Unauthorized:
      description: Unauthorized - Invalid or missing API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            missingApiKey:
              summary: Missing API key
              value:
                error:
                  code: AuthenticationError
                  message: API key authentication required
                  userMessages:
                    - API key authentication required
            invalidApiKey:
              summary: >-
                Invalid API key (e.g. unknown key, or a Bearer token used
                instead of an API key)
              value:
                error:
                  code: AuthenticationError
                  message: Invalid API key
                  userMessages:
                    - Invalid API key
    Forbidden:
      description: Forbidden - Insufficient permissions
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            insufficientPermissions:
              summary: Insufficient permissions
              value:
                error:
                  code: AuthorizationError
                  message: User is not authorized to perform the requested action
                  userMessages:
                    - User is not authorized to perform the requested action
            companyMismatch:
              summary: A valid API key naming another company in the URL
              value:
                error:
                  code: AuthorizationError
                  message: API key is not scoped to the requested company
                  userMessages:
                    - API key is not scoped to the requested company
    InternalServerError:
      description: Internal Server Error - Unexpected error occurred
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            internalError:
              summary: Unexpected server error
              value:
                error:
                  code: UncaughtActionError
                  message: Uncaught error occurred in <actionName>
                  userMessages:
                    - An unexpected error occurred. Please try again later.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        API key authentication. Send your raw API key as the `Authorization`
        header value with NO scheme prefix — `Authorization: YOUR-API-KEY`. Do
        NOT prefix it with `Bearer ` or `ApiKey `, and do not use an `X-API-Key`
        header; those are not accepted.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.