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

# Replace portal settings

> Replace all portal settings for the organization (full update).



## OpenAPI

````yaml https://api.initdesk.com/schema.yaml put /organizations/{organization_id}/portal/
openapi: 3.0.3
info:
  title: initdesk Customer API
  version: 1.19.0
  description: OpenAPI documentation for the customer-facing API served by the gateway.
servers:
  - url: https://api.initdesk.com
    description: Customer API gateway
security:
  - IntegrationToken: []
tags:
  - name: Organizations
    description: Organization metadata and context for all other resources.
  - name: Customers
    description: >-
      End users (requesters) scoped to the organization. Tickets reference
      customers by ID.
  - name: Tickets
    description: >-
      Tickets, messages, attachments, search, and statuses. A ticket is the
      conversation container; messages are nested under
      `/tickets/{pk}/messages/`.
  - name: Custom Preset Filters
    description: >-
      Saved ticket search filters scoped to the organization. Integration tokens
      receive organization-shared filters only.
  - name: Inboxes
    description: >-
      Organization mailboxes for routing tickets. Each inbox has an email prefix
      and optional default-inbox flag (is_default: true). On ticket create,
      inbox_id is optional: omit to use the default inbox, or provide an inbox
      ID to target a specific mailbox.
  - name: Tags
    description: Organization-scoped ticket tags with id, name, and optional color.
  - name: Help Center
    description: >-
      Support portal settings, knowledge base collections, articles, and article
      search.
paths:
  /organizations/{organization_id}/portal/:
    put:
      tags:
        - Help Center
      summary: Replace portal settings
      description: Replace all portal settings for the organization (full update).
      operationId: update_portal_settings
      parameters:
        - in: path
          name: organization_id
          schema:
            type: integer
          required: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PortalRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PortalRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PortalRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Portal'
          description: ''
      security:
        - IntegrationToken: []
components:
  schemas:
    PortalRequest:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 255
        meta_description:
          type: string
          maxLength: 160
        allow_robots:
          type: boolean
        template:
          enum:
            - sidebar
            - list
          type: string
          description: |-
            * `sidebar` - Sidebar
            * `list` - List
          x-spec-enum-id: 1c3fda7bfc2ab438
        logo:
          type: string
          format: binary
          writeOnly: true
          nullable: true
        favicon:
          type: string
          format: binary
          writeOnly: true
          nullable: true
        primary_color:
          type: string
          maxLength: 7
        is_active:
          type: boolean
        enable_ticket_creation_form:
          type: boolean
      required:
        - name
    Portal:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          maxLength: 255
        meta_description:
          type: string
          maxLength: 160
        allow_robots:
          type: boolean
        custom_domain:
          type: string
          readOnly: true
          description: Optional custom domain for the portal (e.g. docs.example.com).
        template:
          enum:
            - sidebar
            - list
          type: string
          description: |-
            * `sidebar` - Sidebar
            * `list` - List
          x-spec-enum-id: 1c3fda7bfc2ab438
        primary_color:
          type: string
          maxLength: 7
        organization:
          allOf:
            - $ref: '#/components/schemas/Organization'
          readOnly: true
        is_active:
          type: boolean
        enable_ticket_creation_form:
          type: boolean
        created_at:
          type: string
          format: date-time
          readOnly: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
      required:
        - created_at
        - custom_domain
        - id
        - name
        - organization
        - updated_at
    Organization:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        public_id:
          type: string
          maxLength: 32
        name:
          type: string
          maxLength: 255
        created_at:
          type: string
          format: date-time
          readOnly: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        created_by:
          allOf:
            - $ref: '#/components/schemas/User'
          readOnly: true
        support_email:
          type: string
          format: email
          description: >-
            Default inbox email address. Prefer inbox channel_connections
            (type=email).external_identifier for multi-channel setups.
          readOnly: true
        deletion_plan:
          allOf:
            - $ref: '#/components/schemas/DeletionPlan'
          nullable: true
          readOnly: true
        subscription:
          allOf:
            - $ref: '#/components/schemas/SubscriptionRead'
          nullable: true
          readOnly: true
        site_url:
          type: string
          format: uri
          maxLength: 200
        description:
          type: string
          title: Business description
        email_from_name:
          type: string
          maxLength: 32
        email_subject_prefix:
          type: string
          maxLength: 32
        enable_csat:
          type: boolean
          title: CSAT is enabled
          description: Beta feature. Contact support@initdesk.com if you want to try it.
        enable_auto_tagging:
          type: boolean
          title: Auto tagging is enabled
          description: >-
            When a ticket arrives, automatically tags every ticket (except
            spam).
        enable_cc_email_routing:
          type: boolean
          title: CC email routing is enabled
          description: >-
            When enabled, inbound email is routed using To/Cc headers,
            deduplicated across inboxes, and external recipients are stored for
            agent replies.
        ticket_public_id_mode:
          enum:
            - auto_numeric
            - random_numeric
            - alphanumeric
          type: string
          x-spec-enum-id: ad28d182070dbe9d
          description: >-
            How new ticket public IDs are generated: auto_numeric (1, 2, 3…),
            random_numeric (8-digit), or alphanumeric (6 chars).


            * `auto_numeric` - Auto numeric

            * `random_numeric` - Random numeric

            * `alphanumeric` - Alphanumeric
        customer_max_inactivity_period:
          type: integer
          minimum: -1
          readOnly: true
        customer_inactivity_reminder_period:
          type: integer
          minimum: -1
          readOnly: true
      required:
        - created_at
        - created_by
        - customer_inactivity_reminder_period
        - customer_max_inactivity_period
        - deletion_plan
        - id
        - name
        - public_id
        - subscription
        - support_email
        - updated_at
    User:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        email:
          type: string
          format: email
          title: Email address
          maxLength: 254
        name:
          type: string
          title: Name of User
          maxLength: 255
      required:
        - email
        - id
    DeletionPlan:
      type: object
      properties:
        status:
          enum:
            - active
            - cancelled
            - completed
          type: string
          description: |-
            * `active` - Active
            * `cancelled` - Cancelled
            * `completed` - Completed
          x-spec-enum-id: 03f581a814a5059a
          readOnly: true
        inactivity_detected_at:
          type: string
          format: date-time
          readOnly: true
        deletion_at:
          type: string
          format: date-time
          readOnly: true
      required:
        - deletion_at
        - inactivity_detected_at
        - status
    SubscriptionRead:
      type: object
      description: Read-only subscription payload for organization and billing endpoints.
      properties:
        status:
          enum:
            - active
            - on_trial
            - free
            - paused
            - past_due
            - unpaid
            - cancelled
            - expired
          type: string
          description: |-
            * `active` - Active
            * `on_trial` - On trial
            * `free` - Free
            * `paused` - Paused
            * `past_due` - Past due
            * `unpaid` - Unpaid
            * `cancelled` - Cancelled
            * `expired` - Expired
          x-spec-enum-id: 645a2d52f4fedbab
          readOnly: true
        plan_name:
          type: string
          nullable: true
          readOnly: true
        plan_metric:
          type: string
          nullable: true
          readOnly: true
        renews_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        ends_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        trial_ends_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        trial_days_remaining:
          type: integer
          nullable: true
          readOnly: true
        has_access_enabled:
          type: boolean
          readOnly: true
      required:
        - ends_at
        - has_access_enabled
        - plan_metric
        - plan_name
        - renews_at
        - status
        - trial_days_remaining
        - trial_ends_at
  securitySchemes:
    IntegrationToken:
      type: apiKey
      in: header
      name: X-Initdesk-Token

````