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

# Update organization

> Updates organization fields that workspace owners are allowed to change, including the display name, allowed invitation email domains, and allowed desktop versions. The slug is immutable to avoid breaking dashboard URLs.



## OpenAPI

````yaml /openapi.json patch /v1/org
openapi: 3.1.0
info:
  title: Den API
  description: >-
    OpenAPI spec for the Den control plane API.


    Authentication:

    - Use `Authorization: Bearer <session-token>` for user-authenticated routes
    that require a Den session.

    - Use `x-api-key: <den-api-key>` for API-key-authenticated routes that
    accept organization API keys.

    - Public routes like health and documentation do not require authentication.


    Swagger tip: use the security schemes in the Authorize dialog to set either
    `bearerAuth` or `denApiKey` before trying protected endpoints.
  version: dev
servers: []
security: []
tags:
  - name: System
    description: Service health and operational routes.
  - name: Organizations
    description: Top-level organization creation and context routes.
  - name: Invitations
    description: Invitation preview, acceptance, creation, and cancellation routes.
  - name: API Keys
    description: Organization API key management routes.
  - name: SCIM
    description: Organization SCIM connector management routes.
  - name: SSO
    description: Organization single sign-on connector management routes.
  - name: Members
    description: Organization member management routes.
  - name: Roles
    description: Organization custom role management routes.
  - name: Teams
    description: Organization team management routes.
  - name: Templates
    description: Organization shared template routes.
  - name: LLM Providers
    description: Organization LLM provider catalog, configuration, and access routes.
  - name: Skills
    description: Organization skill authoring and sharing routes.
  - name: Skill Hubs
    description: Organization skill hub management and access routes.
  - name: Workers
    description: Worker lifecycle, billing, and runtime routes.
  - name: Worker Runtime
    description: Worker runtime inspection and upgrade routes.
  - name: Worker Activity
    description: Worker heartbeat and activity reporting routes.
  - name: Telemetry
    description: Telemetry event ingestion and adoption analytics.
  - name: Admin
    description: Administrative reporting routes.
  - name: Users
    description: Current user and membership routes.
  - name: Bootstrap
    description: Agent-first provisional workspace setup routes.
paths:
  /v1/org:
    patch:
      tags:
        - Organizations
      summary: Update organization
      description: >-
        Updates organization fields that workspace owners are allowed to change,
        including the display name, allowed invitation email domains, and
        allowed desktop versions. The slug is immutable to avoid breaking
        dashboard URLs.
      operationId: patchV1Org
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 2
                  maxLength: 120
                allowedEmailDomains:
                  anyOf:
                    - maxItems: 100
                      type: array
                      items:
                        type: string
                        minLength: 1
                        maxLength: 255
                    - type: 'null'
                allowedDesktopVersions:
                  anyOf:
                    - maxItems: 200
                      type: array
                      items:
                        type: string
                        minLength: 1
                        maxLength: 32
                    - type: 'null'
                requireSso:
                  type: boolean
                brandAppName:
                  anyOf:
                    - type: string
                      minLength: 1
                      maxLength: 64
                    - type: 'null'
                brandLogoUrl:
                  anyOf:
                    - type: string
                      maxLength: 2048
                      format: uri
                    - type: 'null'
                brandIconUrl:
                  anyOf:
                    - type: string
                      maxLength: 2048
                      format: uri
                    - type: 'null'
                brandAccentColor:
                  anyOf:
                    - type: string
                      minLength: 1
                      maxLength: 32
                    - type: 'null'
      responses:
        '200':
          description: Organization updated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrganizationResponse'
        '400':
          description: >-
            The organization update request body was invalid, contained
            malformed email domains, or contained an invalid brand icon URL.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateOrganizationBadRequest'
        '401':
          description: The caller must be signed in to update an organization.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '402':
          description: >-
            Enabling enforced SSO or desktop version controls requires an
            Enterprise plan.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnterprisePlanRequiredError'
        '403':
          description: Only workspace owners can update the organization.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
        '404':
          description: The organization could not be found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
components:
  schemas:
    OrganizationResponse:
      type: object
      properties:
        organization:
          anyOf:
            - type: object
              properties: {}
              additionalProperties: {}
            - type: 'null'
      required:
        - organization
    UpdateOrganizationBadRequest:
      anyOf:
        - $ref: '#/components/schemas/InvalidRequestError'
        - $ref: '#/components/schemas/InvalidEmailDomainError'
        - $ref: '#/components/schemas/InvalidBrandIconError'
    UnauthorizedError:
      type: object
      properties:
        error:
          type: string
          const: unauthorized
      required:
        - error
    EnterprisePlanRequiredError:
      type: object
      properties:
        error:
          type: string
          const: enterprise_plan_required
        feature:
          type: string
        message:
          type: string
      required:
        - error
        - feature
        - message
    ForbiddenError:
      type: object
      properties:
        error:
          type: string
          enum:
            - forbidden
            - reauth
        reason:
          type: string
        message:
          type: string
      required:
        - error
    NotFoundError:
      type: object
      properties:
        error:
          type: string
        message:
          type: string
      required:
        - error
    InvalidRequestError:
      type: object
      properties:
        error:
          type: string
          const: invalid_request
        details:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
              path:
                type: array
                items:
                  anyOf:
                    - type: string
                    - type: number
            required:
              - message
            additionalProperties: {}
      required:
        - error
        - details
    InvalidEmailDomainError:
      type: object
      properties:
        error:
          type: string
          const: invalid_email_domain
        message:
          type: string
        invalidDomains:
          type: array
          items:
            type: string
      required:
        - error
        - message
        - invalidDomains
    InvalidBrandIconError:
      type: object
      properties:
        error:
          type: string
          const: invalid_brand_icon
        reason:
          type: string
        message:
          type: string
      required:
        - error
        - reason
        - message

````