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

# Update form

> Partial update. Provide only the fields to change. ID is required in the body.



## OpenAPI

````yaml /api-reference/ai-cms/openapi.json put /forms/update
openapi: 3.1.0
info:
  title: Blog API
  version: 1.0.0
servers:
  - url: https://api.octaviatech.app/cms
    description: Production
security:
  - ApiKeyAuth: []
tags:
  - name: Tags
    description: Tag management endpoints
paths:
  /forms/update:
    put:
      tags:
        - Forms
      summary: Update form
      description: >-
        Partial update. Provide only the fields to change. ID is required in the
        body.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              required:
                - id
              properties:
                id:
                  type: string
                  description: 24-char hex identifier of the form.
                  pattern: ^[a-fA-F0-9]{24}$
                title:
                  type: object
                  additionalProperties:
                    type: string
                slug:
                  type: string
                  description: Must satisfy slug rules and remain unique per tenant.
                description:
                  type: object
                  additionalProperties:
                    type: string
                submitButtonText:
                  type: object
                  additionalProperties:
                    type: string
                sections:
                  type: array
                  items:
                    type: object
                  description: >-
                    Sections may include field-level relation definitions
                    identical to the create payload.
                isActive:
                  type: boolean
                formType:
                  type: string
                  enum:
                    - public
                    - internal
                  description: Same values as on create.
                captcha:
                  type: object
                  description: Per-form CAPTCHA gate; same shape as on create.
                  additionalProperties: false
                  properties:
                    enabled:
                      type: boolean
                    provider:
                      type: string
                      enum:
                        - recaptcha
                        - hcaptcha
                        - turnstile
                    minScore:
                      type: number
                notification:
                  type: object
                  description: Submission notification settings; same shape as on create.
                  additionalProperties: false
                  properties:
                    enabled:
                      type: boolean
                    email:
                      type: object
                      additionalProperties: false
                      properties:
                        admin:
                          type: object
                        submitter:
                          type: object
                    push:
                      type: object
                      additionalProperties: false
                      properties:
                        admin:
                          type: object
                        submitter:
                          type: object
                relation:
                  type: object
                  additionalProperties: false
                  properties:
                    parentFormId:
                      type: string
                      pattern: ^[a-fA-F0-9]{24}$
                    nextFormId:
                      type: string
                      pattern: ^[a-fA-F0-9]{24}$
            examples:
              Update (partial):
                value:
                  id: '{{objectId}}'
                  title:
                    en: Contact Us (updated)
                  isActive: true
      responses:
        '200':
          description: Updated
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '409':
          description: Conflict (slug already exists within the tenant)
        '500':
          description: >-
            Server error, including Joi validation failures — the command
            signals those with code 406, which is not a whitelisted response
            code and is normalized to 500
      security:
        - ApiKeyAuth: []
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key

````