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

# Update organization

> Partially updates the authenticated organization's scheduling defaults. Work hours and daily or weekly load-limit options replace atomically; scalar groups merge per field. Omitted settings are preserved and the response returns the updated organization representation.

<Note>**Beta**: this endpoint may change or be removed without notice while in beta. There is no compatibility promise until it reaches general availability.</Note>


## OpenAPI

````yaml /openapi.json patch /v1/organization
openapi: 3.1.0
info:
  title: ModernLoop Platform API
  version: 0.1.0
  description: The ModernLoop Platform API for managing recruiting workflows.
  contact:
    email: support@modernloop.io
servers:
  - url: https://api.modernloop.io
security: []
tags:
  - name: Application
  - name: Candidate
  - name: Interview Event
  - name: Interview Module
  - name: Interviewer
  - name: Job
  - name: Job Stage
  - name: Organization
  - name: Schedule
  - name: Scheduling Task
  - name: Task Queue
  - name: Template
paths:
  /v1/organization:
    patch:
      tags:
        - Organization
      summary: Update organization
      description: >-
        Partially updates the authenticated organization's scheduling defaults.
        Work hours and daily or weekly load-limit options replace atomically;
        scalar groups merge per field. Omitted settings are preserved and the
        response returns the updated organization representation.
      operationId: updateOrganization
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrganizationPatch'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Organization'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '410':
          description: Gone
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - bearerAuth: []
components:
  schemas:
    OrganizationPatch:
      type: object
      properties:
        settings:
          $ref: '#/components/schemas/OrganizationSettingsPatch'
      required:
        - settings
      additionalProperties: false
    Organization:
      type: object
      properties:
        id:
          type: string
          pattern: ^org_[0-9a-f]{32}$
          description: >-
            Canonical organization ID (org_ followed by 32 lowercase hexadecimal
            UUID characters).
          example: org_a1b2c3d4e5f64789a1b2c3d4e5f64789
        name:
          type: string
        domain:
          type: string
        settings:
          $ref: '#/components/schemas/OrganizationSettings'
      required:
        - id
        - name
        - domain
        - settings
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - UNAUTHENTICATED
                - API_ACCESS_DISABLED
                - SCOPE_MISSING
                - INSUFFICIENT_SCOPE
                - VALIDATION_FAILED
                - INVALID_CURSOR
                - PAYLOAD_TOO_LARGE
                - NOT_FOUND
                - NOT_FOUND_MAY_BE_SYNCING
                - CANDIDATE_ANONYMIZED
                - TASK_STAGE_NOT_SCHEDULABLE
                - DUPLICATE_REQUEST_OPEN
                - IDEMPOTENCY_KEY_REQUIRED
                - IDEMPOTENCY_KEY_REUSED
                - PREVIEW_EXPIRED
                - PREVIEW_STALE
                - RATE_LIMITED
                - CONFLICT
                - NOT_IMPLEMENTED
                - INTERNAL
                - UPSTREAM_TIMEOUT
            message:
              type: string
            docs_url:
              type: string
              format: uri
          required:
            - code
            - message
      required:
        - error
    OrganizationSettingsPatch:
      type: object
      properties:
        work_hours:
          type: array
          items:
            type: object
            properties:
              day:
                type: string
                enum:
                  - MONDAY
                  - TUESDAY
                  - WEDNESDAY
                  - THURSDAY
                  - FRIDAY
                  - SATURDAY
                  - SUNDAY
              start:
                type: string
                pattern: ^([01]\d|2[0-3]):[0-5]\d$
              end:
                type: string
                pattern: ^([01]\d|2[0-3]):[0-5]\d$
            required:
              - day
              - start
              - end
          description: >-
            Replaces the complete organization work-hours schedule when
            supplied; omission preserves it.
        interviewer_load_limits:
          type: object
          properties:
            daily:
              type: object
              properties:
                maximum:
                  type:
                    - object
                    - 'null'
                  properties:
                    limit:
                      type: integer
                      exclusiveMinimum: 0
                    type:
                      type: string
                      enum:
                        - NUMBER_OF_INTERVIEWS
                        - NUMBER_OF_MINUTES
                  required:
                    - limit
                    - type
                minimum:
                  type: object
                  properties:
                    interviews:
                      type: integer
                      minimum: 0
                    minutes:
                      type: integer
                      minimum: 0
            weekly:
              type: object
              properties:
                maximum:
                  type:
                    - object
                    - 'null'
                  properties:
                    limit:
                      type: integer
                      exclusiveMinimum: 0
                    type:
                      type: string
                      enum:
                        - NUMBER_OF_INTERVIEWS
                        - NUMBER_OF_MINUTES
                  required:
                    - limit
                    - type
                minimum:
                  type: object
                  properties:
                    interviews:
                      type: integer
                      minimum: 0
                    minutes:
                      type: integer
                      minimum: 0
          description: >-
            Partially updates daily and weekly limits; omitted periods retain
            their current values.
        interview_buffer:
          type: object
          properties:
            before_minutes:
              anyOf:
                - type: number
                  enum:
                    - 0
                - type: number
                  enum:
                    - 15
                - type: number
                  enum:
                    - 30
            after_minutes:
              anyOf:
                - type: number
                  enum:
                    - 0
                - type: number
                  enum:
                    - 15
                - type: number
                  enum:
                    - 30
          description: >-
            Partially updates interview-buffer minutes; omitted values retain
            their current values.
        feedback_writing_time_minutes:
          anyOf:
            - type: number
              enum:
                - 0
            - type: number
              enum:
                - 15
            - type: number
              enum:
                - 30
          description: >-
            Replaces the feedback-writing time when supplied; omission preserves
            it.
        conflict_keywords:
          type: object
          properties:
            out_of_office:
              type: array
              items:
                type: string
                pattern: \S
            avoid:
              type: array
              items:
                type: string
                pattern: \S
            available_if_needed:
              type: array
              items:
                type: string
                pattern: \S
            recruiting_block:
              type: array
              items:
                type: string
                pattern: \S
          description: >-
            Partially updates conflict-keyword lists; omitted lists retain their
            current values, while supplied lists replace that category.
      additionalProperties: false
    OrganizationSettings:
      type: object
      properties:
        work_hours:
          type: array
          items:
            type: object
            properties:
              day:
                type: string
                enum:
                  - MONDAY
                  - TUESDAY
                  - WEDNESDAY
                  - THURSDAY
                  - FRIDAY
                  - SATURDAY
                  - SUNDAY
              start:
                type: string
              end:
                type: string
            required:
              - day
              - start
              - end
        interviewer_load_limits:
          type: object
          properties:
            daily:
              type: object
              properties:
                maximum:
                  type:
                    - object
                    - 'null'
                  properties:
                    limit:
                      type: integer
                      exclusiveMinimum: 0
                    type:
                      type: string
                      enum:
                        - NUMBER_OF_INTERVIEWS
                        - NUMBER_OF_MINUTES
                  required:
                    - limit
                    - type
                minimum:
                  type: object
                  properties:
                    interviews:
                      type: integer
                      minimum: 0
                    minutes:
                      type: integer
                      minimum: 0
                  required:
                    - interviews
                    - minutes
              required:
                - maximum
                - minimum
            weekly:
              type: object
              properties:
                maximum:
                  type:
                    - object
                    - 'null'
                  properties:
                    limit:
                      type: integer
                      exclusiveMinimum: 0
                    type:
                      type: string
                      enum:
                        - NUMBER_OF_INTERVIEWS
                        - NUMBER_OF_MINUTES
                  required:
                    - limit
                    - type
                minimum:
                  type: object
                  properties:
                    interviews:
                      type: integer
                      minimum: 0
                    minutes:
                      type: integer
                      minimum: 0
                  required:
                    - interviews
                    - minutes
              required:
                - maximum
                - minimum
          required:
            - daily
            - weekly
        interview_buffer:
          type: object
          properties:
            before_minutes:
              anyOf:
                - type: number
                  enum:
                    - 0
                - type: number
                  enum:
                    - 15
                - type: number
                  enum:
                    - 30
            after_minutes:
              anyOf:
                - type: number
                  enum:
                    - 0
                - type: number
                  enum:
                    - 15
                - type: number
                  enum:
                    - 30
          required:
            - before_minutes
            - after_minutes
        feedback_writing_time_minutes:
          anyOf:
            - type: number
              enum:
                - 0
            - type: number
              enum:
                - 15
            - type: number
              enum:
                - 30
          description: 'Allowed values: 0, 15, or 30 minutes.'
        conflict_keywords:
          type: object
          properties:
            out_of_office:
              type: array
              items:
                type: string
                pattern: \S
            avoid:
              type: array
              items:
                type: string
                pattern: \S
            available_if_needed:
              type: array
              items:
                type: string
                pattern: \S
            recruiting_block:
              type: array
              items:
                type: string
                pattern: \S
          required:
            - out_of_office
            - avoid
            - available_if_needed
            - recruiting_block
      required:
        - work_hours
        - interviewer_load_limits
        - interview_buffer
        - feedback_writing_time_minutes
        - conflict_keywords
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API tokens are passed as Bearer tokens.

````