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

# Update Solution

> Update an existing solution



## OpenAPI

````yaml post /api/v2/solution/update
openapi: 3.0.0
info:
  version: 6.0.0
  title: Octave API
  description: API for Octave workspace management and AI-powered content generation
servers:
  - url: https://app.octavehq.com
security:
  - ApiKeyAuth: []
paths:
  /api/v2/solution/update:
    post:
      tags:
        - Solution
      summary: Update Solution
      description: Update an existing solution
      operationId: updateSolution
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                oId:
                  type: string
                  description: Solution OId
                data:
                  type: object
                  properties:
                    updatedAt:
                      type: string
                      nullable: true
                      format: date-time
                    archivedAt:
                      type: string
                      nullable: true
                      format: date-time
                    deletedAt:
                      type: string
                      nullable: true
                      format: date-time
                    name:
                      type: string
                      nullable: true
                    internalName:
                      type: string
                      nullable: true
                    description:
                      type: string
                      nullable: true
                    primaryUrl:
                      type: string
                      nullable: true
                      description: >-
                        Primary website URL for the solution, when available
                        from sources
                    qualifyingQuestions:
                      type: array
                      nullable: true
                      items:
                        type: object
                        properties:
                          question:
                            type: string
                            description: The question to ask to qualify the entity
                          rationale:
                            type: string
                            description: >-
                              The rationale for the question as to why it helps
                              qualify
                          fitType:
                            type: string
                            enum:
                              - GOOD
                              - BAD
                            description: The fit type of the question
                            example: GOOD
                          weight:
                            type: string
                            enum:
                              - LOW
                              - MEDIUM
                              - HIGH
                              - INSTANT_QUALIFIER
                              - INSTANT_DISQUALIFIER
                            description: The weight of the question
                            example: MEDIUM
                          archivedAt:
                            type: string
                            nullable: true
                            format: date-time
                            description: The date and time the question was archived
                        required:
                          - question
                          - rationale
                          - fitType
                          - weight
                    data:
                      type: object
                      properties:
                        internalName:
                          type: string
                          nullable: true
                        summary:
                          type: string
                          nullable: true
                        distinctCapabilities:
                          type: array
                          items:
                            type: string
                          default: []
                        keyComponents:
                          type: array
                          items:
                            type: string
                          default: []
                        customerBenefits:
                          type: array
                          items:
                            type: string
                          default: []
                        challengesAddressed:
                          type: array
                          items:
                            type: string
                          default: []
                        statusQuo:
                          type: array
                          items:
                            type: string
                          default: []
                        differentiatedValue:
                          type: array
                          items:
                            type: string
                          default: []
                        customFields:
                          $ref: '#/components/schemas/CustomDataFields'
                        additionalProperties:
                          type: object
                          additionalProperties:
                            anyOf:
                              - type: string
                              - type: array
                                items:
                                  type: string
                              - type: number
                              - type: boolean
                        type:
                          type: string
                          enum:
                            - PRODUCT
                            - SERVICE
                            - SOLUTION
                          default: SOLUTION
                  description: Fields to update on the solution
                libraryLinks:
                  $ref: '#/components/schemas/SolutionLibraryLinksChange'
              required:
                - oId
      responses:
        '200':
          description: Solution updated
          content:
            application/json:
              schema:
                type: object
                properties:
                  _metadata:
                    $ref: '#/components/schemas/Metadata'
                  data:
                    allOf:
                      - $ref: '#/components/schemas/Solution'
                      - type: object
                        properties:
                          locked:
                            type: boolean
                          lockedBy:
                            type: object
                            nullable: true
                            properties:
                              oId:
                                type: string
                              firstName:
                                type: string
                              lastName:
                                type: string
                              picture:
                                type: string
                            required:
                              - oId
                        required:
                          - locked
                required:
                  - _metadata
                  - data
      deprecated: false
components:
  schemas:
    CustomDataFields:
      type: array
      items:
        $ref: '#/components/schemas/CustomDataFieldItem'
    SolutionLibraryLinksChange:
      type: object
      properties:
        add:
          type: object
          properties:
            offeringOIds:
              type: array
              items:
                type: string
              default: []
            useCaseOIds:
              type: array
              items:
                type: string
              default: []
            personaOIds:
              type: array
              items:
                type: string
              default: []
            segmentOIds:
              type: array
              items:
                type: string
              default: []
            referenceOIds:
              type: array
              items:
                type: string
              default: []
            competitorOIds:
              type: array
              items:
                type: string
              default: []
            alternativeOIds:
              type: array
              items:
                type: string
              default: []
            buyingTriggerOIds:
              type: array
              items:
                type: string
              default: []
            objectionOIds:
              type: array
              items:
                type: string
              default: []
            proofPointOIds:
              type: array
              items:
                type: string
              default: []
            collateralOIds:
              type: array
              items:
                type: string
              deprecated: true
              description: Ignored. Collateral was retired and can no longer be linked.
            genericTextEntityOIds:
              type: array
              items:
                type: string
              deprecated: true
              description: >-
                Ignored. Generic text entities (value props, pain points) were
                retired and can no longer be linked.
          description: Library entity OIds to link to this solution
        remove:
          type: object
          properties:
            offeringOIds:
              type: array
              items:
                type: string
              default: []
            useCaseOIds:
              type: array
              items:
                type: string
              default: []
            personaOIds:
              type: array
              items:
                type: string
              default: []
            segmentOIds:
              type: array
              items:
                type: string
              default: []
            referenceOIds:
              type: array
              items:
                type: string
              default: []
            competitorOIds:
              type: array
              items:
                type: string
              default: []
            alternativeOIds:
              type: array
              items:
                type: string
              default: []
            buyingTriggerOIds:
              type: array
              items:
                type: string
              default: []
            objectionOIds:
              type: array
              items:
                type: string
              default: []
            proofPointOIds:
              type: array
              items:
                type: string
              default: []
            collateralOIds:
              type: array
              items:
                type: string
              deprecated: true
              description: Ignored. Collateral was retired and can no longer be linked.
            genericTextEntityOIds:
              type: array
              items:
                type: string
              deprecated: true
              description: >-
                Ignored. Generic text entities (value props, pain points) were
                retired and can no longer be linked.
          description: Library entity OIds to unlink from this solution
      description: >-
        Add or remove library entity links. Omit to leave existing links
        unchanged.
    Metadata:
      type: object
      properties:
        usage:
          type: number
          default: 0
          example: 0
          description: API usage
        requestId:
          type: string
          example: requestId
          description: Request ID
        message:
          type: string
          example: message
          description: Message
        timestamp:
          type: string
          example: '2021-01-01T00:00:00.000Z'
          description: Timestamp
      required:
        - requestId
        - timestamp
    Solution:
      type: object
      properties:
        oId:
          type: string
          minLength: 1
          description: The ID of the solution
          example: sv_1234
        createdAt:
          type: string
          format: date-time
          description: The date and time the solution was created
        updatedAt:
          type: string
          nullable: true
          format: date-time
        archivedAt:
          type: string
          nullable: true
          format: date-time
        deletedAt:
          type: string
          nullable: true
          format: date-time
        name:
          type: string
          nullable: true
        internalName:
          type: string
          nullable: true
        description:
          type: string
          nullable: true
        primaryUrl:
          type: string
          nullable: true
          description: Primary website URL for the solution, when available from sources
        releaseNotesUrls:
          type: array
          nullable: true
          items:
            type: string
          maxItems: 5
          description: >-
            Watched release-notes pages for this solution; Octave re-reads each
            on a schedule and proposes library updates from what shipped
          example:
            - https://www.solution.com/changelog
        active:
          type: boolean
          default: true
        qualifyingQuestions:
          type: array
          nullable: true
          items:
            type: object
            properties:
              question:
                type: string
                description: The question to ask to qualify the entity
              rationale:
                type: string
                description: The rationale for the question as to why it helps qualify
              fitType:
                type: string
                enum:
                  - GOOD
                  - BAD
                description: The fit type of the question
                example: GOOD
              weight:
                type: string
                enum:
                  - LOW
                  - MEDIUM
                  - HIGH
                  - INSTANT_QUALIFIER
                  - INSTANT_DISQUALIFIER
                description: The weight of the question
                example: MEDIUM
              archivedAt:
                type: string
                nullable: true
                format: date-time
                description: The date and time the question was archived
            required:
              - question
              - rationale
              - fitType
              - weight
        data:
          $ref: '#/components/schemas/SolutionPersistedData'
        user:
          type: object
          properties:
            oId:
              type: string
              nullable: true
            firstName:
              type: string
              nullable: true
            lastName:
              type: string
              nullable: true
        workspace:
          type: object
          properties:
            oId:
              type: string
              nullable: true
        linkedProducts:
          type: array
          items:
            type: object
            properties:
              oId:
                type: string
              name:
                type: string
                nullable: true
              offeringType:
                type: string
                enum:
                  - PRODUCT
                  - SERVICE
                  - SOLUTION
            required:
              - oId
              - offeringType
          default: []
        linkedUseCases:
          type: array
          items:
            type: object
            properties:
              oId:
                type: string
              name:
                type: string
                nullable: true
            required:
              - oId
          default: []
        linkedPersonas:
          type: array
          items:
            type: object
            properties:
              oId:
                type: string
              name:
                type: string
                nullable: true
            required:
              - oId
          default: []
        linkedSegments:
          type: array
          items:
            type: object
            properties:
              oId:
                type: string
              name:
                type: string
                nullable: true
            required:
              - oId
          default: []
      required:
        - oId
        - createdAt
        - data
        - user
        - workspace
    CustomDataFieldItem:
      type: object
      properties:
        title:
          type: string
        value:
          type: array
          items:
            type: string
      required:
        - title
        - value
    SolutionPersistedData:
      type: object
      properties:
        internalName:
          type: string
          nullable: true
        summary:
          type: string
          nullable: true
        distinctCapabilities:
          type: array
          items:
            type: string
          default: []
        keyComponents:
          type: array
          items:
            type: string
          default: []
        customerBenefits:
          type: array
          items:
            type: string
          default: []
        challengesAddressed:
          type: array
          items:
            type: string
          default: []
        statusQuo:
          type: array
          items:
            type: string
          default: []
        differentiatedValue:
          type: array
          items:
            type: string
          default: []
        customFields:
          $ref: '#/components/schemas/CustomDataFields'
        additionalProperties:
          type: object
          additionalProperties:
            anyOf:
              - type: string
              - type: array
                items:
                  type: string
              - type: number
              - type: boolean
        type:
          type: string
          enum:
            - PRODUCT
            - SERVICE
            - SOLUTION
          default: SOLUTION
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: api_key

````

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