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

# Update organization

> Update an existing organization. Send only the fields you change: an absent field keeps its value, and null clears a field that may be null. An owner may change warningAt, enforceMfa, the SAML settings and the OpenTelemetry settings; only a platform admin may rename the organization. Changing the set of attributes of otelProductKey is refused with 409 while a live product that uses the key holds key values; reordering the same attributes is allowed. See [Platform Overview](https://docs.galtea.ai/introduction).



## OpenAPI

````yaml https://api.galtea.ai/openapi.json patch /organizations/{id}
openapi: 3.0.0
info:
  version: 1.0.0
  title: Product Management Service API
  description: API documentation for Product Management Service
  contact:
    name: Galtea AI
servers:
  - url: https://api.galtea.ai
security:
  - bearerAuth: []
tags: []
externalDocs:
  description: Galtea Platform Documentation
  url: https://docs.galtea.ai
paths:
  /organizations/{id}:
    patch:
      tags:
        - organizations
      summary: Update organization
      description: >-
        Update an existing organization. Send only the fields you change: an
        absent field keeps its value, and null clears a field that may be null.
        An owner may change warningAt, enforceMfa, the SAML settings and the
        OpenTelemetry settings; only a platform admin may rename the
        organization. Changing the set of attributes of otelProductKey is
        refused with 409 while a live product that uses the key holds key
        values; reordering the same attributes is allowed. See [Platform
        Overview](https://docs.galtea.ai/introduction).
      operationId: updateOrganization
      parameters:
        - schema:
            type: string
            description: Organization ID
            example: org_123
          required: true
          description: Organization ID
          name: id
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrganizationUpdate'
      responses:
        '200':
          description: Organization updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Organization'
        '400':
          description: >-
            The body carries an unknown field or breaks a rule of the
            organization: a blank name, a warningAt below 0 or above the monthly
            credits of the plan, a null or invalid product key (1 to 10
            attribute names, none starting with "galtea." and none equal to
            "customer.id"), invalid version attributes, or a source rule that
            breaks a rule of its own
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: >-
            The caller may not update this organization, its role may not change
            a field it sent, or it changes SAML settings without an ENTERPRISE
            subscription
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: The organization does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: >-
            Live products that use the key hold key values, so the set of
            attributes of the key cannot change. Also answered for a credit
            change while the organization is frozen, or is being frozen or
            unfrozen
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: >-
            The identity provider is unavailable, so the organization was not
            renamed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - bearerAuth: []
components:
  schemas:
    OrganizationUpdate:
      type: object
      properties:
        name:
          type: string
          example: Example Organization
          description: The organization name. Only a platform admin may change it.
        warningAt:
          type: integer
          nullable: true
          description: >-
            The credit balance below which members get a low-credit warning,
            from 0 up to the monthly credits of the plan. Null turns the warning
            off.
          example: 100
        enforceMfa:
          type: boolean
          description: >-
            When true, every member of the organization must complete an MFA
            challenge to sign in.
        samlEntrypointUrl:
          type: string
          nullable: true
          description: >-
            An in-house SAML sign-in setting. Only an organization with an
            ENTERPRISE subscription may change it.
        samlEntityId:
          type: string
          nullable: true
          description: >-
            An in-house SAML sign-in setting. Only an organization with an
            ENTERPRISE subscription may change it.
        samlIssuerId:
          type: string
          nullable: true
          description: >-
            An in-house SAML sign-in setting. Only an organization with an
            ENTERPRISE subscription may change it.
        samlPublicCertificate:
          type: string
          nullable: true
          description: >-
            An in-house SAML sign-in setting. Only an organization with an
            ENTERPRISE subscription may change it.
        samlSignedResponse:
          type: boolean
          nullable: true
          description: >-
            An in-house SAML sign-in setting. Only an organization with an
            ENTERPRISE subscription may change it.
        samlSignedAssertions:
          type: boolean
          nullable: true
          description: >-
            An in-house SAML sign-in setting. Only an organization with an
            ENTERPRISE subscription may change it.
        samlForcePasswordAuth:
          type: boolean
          nullable: true
          description: >-
            An in-house SAML sign-in setting. Only an organization with an
            ENTERPRISE subscription may change it.
        otelProductKey:
          type: array
          items:
            type: string
          description: >-
            The resource attributes that identify a product of this
            organization, 1 to 10 names. Each product gives its own value for
            each of them. A name cannot start with "galtea." or be
            "customer.id". Changing the set of names is refused while a product
            that uses this key holds values. It cannot be null.
          example:
            - service.namespace
            - service.name
        otelVersionAttributes:
          type: array
          items:
            type: string
          description: >-
            The resource attributes whose values make up a version, up to 32
            names. A trace that carries no galtea.version.id and no
            galtea.version.fact.* gets the version built from the listed
            attributes it carries. Each fact keeps the attribute name as its
            key. A name cannot start with "galtea." or be "customer.id". An
            empty list turns this off. A product can replace the list with its
            own.
          example:
            - service.version
            - app.agent.model
        otelInputSourceRule:
          type: object
          nullable: true
          properties:
            spanName:
              type: string
              description: Exact OTLP span name to match.
              example: ExecuteActivity:add_user_message
            attribute:
              type: string
              description: >-
                Span attribute key holding the JSON blob (string or object) to
                read.
              example: app.arguments
            path:
              type: string
              description: >-
                JSONPath into the parsed attribute value, resolving to the input
                text. Must start with the $ root.
              example: $[0].message.content
            predicate:
              type: object
              nullable: true
              properties:
                path:
                  type: string
                  example: $[0].message.role
                equals:
                  type: string
                  example: user
              required:
                - path
                - equals
              description: >-
                Optional gate: apply the rule only when the node at
                predicate.path equals predicate.equals.
          required:
            - spanName
            - attribute
            - path
          description: >-
            Recovers a turn's input from a non-LLM span for every product with
            no rule of its own. A version rule wins over a product rule, and a
            product rule over this one. Null clears it.
          example:
            spanName: ExecuteActivity:add_user_message
            attribute: app.arguments
            path: $[0].message.content
            predicate:
              path: $[0].message.role
              equals: user
        otelOutputSourceRule:
          type: object
          nullable: true
          properties:
            spanName:
              type: string
              description: Exact OTLP span name to match.
              example: ExecuteActivity:save_reply
            attribute:
              type: string
              description: >-
                Span attribute key holding the JSON blob (string or object) to
                read.
              example: app.arguments
            path:
              type: string
              description: >-
                JSONPath into the parsed attribute value, resolving to the
                output text. Must start with the $ root.
              example: $[0].message.content
            predicate:
              type: object
              nullable: true
              properties:
                path:
                  type: string
                  example: $[0].message.role
                equals:
                  type: string
                  example: assistant
              required:
                - path
                - equals
              description: >-
                Optional gate: apply the rule only when the node at
                predicate.path equals predicate.equals.
          required:
            - spanName
            - attribute
            - path
          description: >-
            Recovers a turn's output from a non-LLM span for every product with
            no rule of its own. A version rule wins over a product rule, and a
            product rule over this one. Null clears it.
          example:
            spanName: ExecuteActivity:save_reply
            attribute: app.arguments
            path: $[0].message.content
            predicate:
              path: $[0].message.role
              equals: assistant
      additionalProperties: false
    Organization:
      type: object
      properties:
        id:
          type: string
          example: org_123
        name:
          type: string
          example: Example Organization
        remainingSubscriptionCredits:
          type: integer
          nullable: true
          example: 1000
        extraCredits:
          type: integer
          example: 500
        lastWarningAt:
          type: string
          nullable: true
          format: date-time
        warningAt:
          type: integer
          nullable: true
          description: >-
            The credit balance below which members get a low-credit warning,
            from 0 up to the monthly credits of the plan. Null turns the warning
            off.
          example: 100
        stripeCustomerId:
          type: string
          nullable: true
          example: cus_123
        samlEntrypointUrl:
          type: string
          nullable: true
        samlEntityId:
          type: string
          nullable: true
        samlIssuerId:
          type: string
          nullable: true
        samlPublicCertificate:
          type: string
          nullable: true
        samlSignedResponse:
          type: boolean
          nullable: true
        samlSignedAssertions:
          type: boolean
          nullable: true
        samlForcePasswordAuth:
          type: boolean
          nullable: true
        samlTeamSlug:
          type: string
          nullable: true
        enforceMfa:
          type: boolean
          default: false
          description: >-
            When true, every member of the organization must complete an MFA
            challenge to sign in. Settable by Owners (via update) and Admins
            (via create or update).
        createdAt:
          type: string
          format: date-time
        deletedAt:
          type: string
          nullable: true
          format: date-time
        otelProductKey:
          type: array
          items:
            type: string
          description: >-
            The resource attributes that identify a product of this
            organization, 1 to 10 names. Each product gives its own value for
            each of them. A name cannot start with "galtea." or be
            "customer.id". Changing the set of names is refused while a product
            that uses this key holds values. It cannot be null.
          example:
            - service.namespace
            - service.name
        otelVersionAttributes:
          type: array
          items:
            type: string
          description: >-
            The resource attributes whose values make up a version, up to 32
            names. A trace that carries no galtea.version.id and no
            galtea.version.fact.* gets the version built from the listed
            attributes it carries. Each fact keeps the attribute name as its
            key. A name cannot start with "galtea." or be "customer.id". An
            empty list turns this off. A product can replace the list with its
            own.
          example:
            - service.version
            - app.agent.model
        otelInputSourceRule:
          type: object
          nullable: true
          properties:
            spanName:
              type: string
              description: Exact OTLP span name to match.
              example: ExecuteActivity:add_user_message
            attribute:
              type: string
              description: >-
                Span attribute key holding the JSON blob (string or object) to
                read.
              example: app.arguments
            path:
              type: string
              description: >-
                JSONPath into the parsed attribute value, resolving to the input
                text. Must start with the $ root.
              example: $[0].message.content
            predicate:
              type: object
              nullable: true
              properties:
                path:
                  type: string
                  example: $[0].message.role
                equals:
                  type: string
                  example: user
              required:
                - path
                - equals
              description: >-
                Optional gate: apply the rule only when the node at
                predicate.path equals predicate.equals.
          required:
            - spanName
            - attribute
            - path
          description: >-
            Recovers a turn's input from a non-LLM span for every product with
            no rule of its own. A version rule wins over a product rule, and a
            product rule over this one. Null clears it.
        otelOutputSourceRule:
          type: object
          nullable: true
          properties:
            spanName:
              type: string
              description: Exact OTLP span name to match.
              example: ExecuteActivity:save_reply
            attribute:
              type: string
              description: >-
                Span attribute key holding the JSON blob (string or object) to
                read.
              example: app.arguments
            path:
              type: string
              description: >-
                JSONPath into the parsed attribute value, resolving to the
                output text. Must start with the $ root.
              example: $[0].message.content
            predicate:
              type: object
              nullable: true
              properties:
                path:
                  type: string
                  example: $[0].message.role
                equals:
                  type: string
                  example: assistant
              required:
                - path
                - equals
              description: >-
                Optional gate: apply the rule only when the node at
                predicate.path equals predicate.equals.
          required:
            - spanName
            - attribute
            - path
          description: >-
            Recovers a turn's output from a non-LLM span for every product with
            no rule of its own. A version rule wins over a product rule, and a
            product rule over this one. Null clears it.
    Error:
      type: object
      properties:
        error:
          type: string
          example: Error type
        message:
          type: string
          example: Error message description
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        API key authorization. Pass your API key in the Authorization header as
        a Bearer token. Both new (`gsk_*`) and legacy (`gsk-`) API keys are
        accepted, e.g. `Authorization: Bearer gsk_...` or `Authorization: Bearer
        gsk-...`.

````

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