> ## 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 Skill

> Update a skill's frontmatter (name/description), SKILL.md body, or publication state. Content edits rewrite the stored SKILL.md; the store keeps version history. The API key's creating user must be a workspace or organization owner.



## OpenAPI

````yaml post /api/v2/skill/update
openapi: 3.0.0
info:
  version: 1.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/skill/update:
    post:
      tags:
        - Skill
      summary: Update Skill
      description: >-
        Update a skill's frontmatter (name/description), SKILL.md body, or
        publication state. Content edits rewrite the stored SKILL.md; the store
        keeps version history. The API key's creating user must be a workspace
        or organization owner.
      operationId: updateSkill
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                oId:
                  type: string
                name:
                  type: string
                  minLength: 1
                  maxLength: 64
                  pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                description:
                  type: string
                  maxLength: 1024
                content:
                  type: string
                contentJson:
                  type: object
                  nullable: true
                  additionalProperties:
                    nullable: true
                status:
                  type: string
                  enum:
                    - draft
                    - published
                active:
                  type: boolean
                archived:
                  type: boolean
                writeBatchId:
                  type: string
                  pattern: ^[A-Za-z0-9._~-]{1,200}$
              required:
                - oId
      responses:
        '200':
          description: Skill updated successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  _metadata:
                    $ref: '#/components/schemas/Metadata'
                  data:
                    type: object
                    properties:
                      oId:
                        type: string
                      name:
                        type: string
                        minLength: 1
                        maxLength: 64
                        pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
                      description:
                        type: string
                        maxLength: 1024
                        description: >-
                          L1 metadata: what the skill does and when to use it —
                          the retrieval trigger text
                      content:
                        type: string
                        description: Markdown body of SKILL.md (below the frontmatter)
                      contentJson:
                        type: object
                        nullable: true
                        additionalProperties:
                          nullable: true
                      artifactUuid:
                        type: string
                        description: Backing folder in the octave-artifacts store
                      status:
                        type: string
                        enum:
                          - draft
                          - published
                      sourceType:
                        type: string
                        nullable: true
                        enum:
                          - authored
                          - imported
                          - generated
                          - uploaded
                          - null
                      sourceMetadata:
                        type: object
                        nullable: true
                        properties:
                          resourceOId:
                            type: string
                          url:
                            type: string
                          eventOIds:
                            type: array
                            items:
                              type: string
                          findingOIds:
                            type: array
                            items:
                              type: string
                          exampleCount:
                            type: number
                        additionalProperties:
                          nullable: true
                      active:
                        type: boolean
                      archivedAt:
                        type: string
                        nullable: true
                        format: date-time
                      lockedAt:
                        type: string
                        nullable: true
                        format: date-time
                      lockedByUser:
                        type: object
                        nullable: true
                        properties:
                          oId:
                            type: string
                          firstName:
                            type: string
                            nullable: true
                          lastName:
                            type: string
                            nullable: true
                        required:
                          - oId
                      user:
                        type: object
                        nullable: true
                        properties:
                          oId:
                            type: string
                          firstName:
                            type: string
                            nullable: true
                          lastName:
                            type: string
                            nullable: true
                        required:
                          - oId
                      createdAt:
                        type: string
                        format: date-time
                      updatedAt:
                        type: string
                        nullable: true
                        format: date-time
                      files:
                        type: array
                        nullable: true
                        items:
                          type: object
                          properties:
                            path:
                              type: string
                            size:
                              type: number
                            mimeType:
                              type: string
                          required:
                            - path
                            - size
                            - mimeType
                    required:
                      - oId
                      - name
                      - description
                      - content
                      - artifactUuid
                      - status
                      - active
                      - createdAt
                required:
                  - _metadata
                  - data
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                type: object
                properties:
                  _metadata:
                    $ref: '#/components/schemas/Metadata'
                required:
                  - _metadata
      deprecated: false
components:
  schemas:
    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
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: api_key

````