> ## 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 submission (partial)

> Update submission values and/or status. Values are validated against the form definition
(same rules as on submission). At least one of `values` or `status` must be present.
`status` is the stored numeric enum, not a name: 0 = pending, 1 = approved, 2 = rejected.
Changing `status` is restricted to SUPER_USER, MANAGER, CHIEF_EDITOR, PUBLISHER and EDITOR;
any other role receives 403.



## OpenAPI

````yaml /api-reference/ai-cms/openapi.json put /forms/submission/update/{id}
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/submission/update/{id}:
    put:
      tags:
        - Form Submissions
      summary: Update submission (partial)
      description: >-
        Update submission values and/or status. Values are validated against the
        form definition

        (same rules as on submission). At least one of `values` or `status` must
        be present.

        `status` is the stored numeric enum, not a name: 0 = pending, 1 =
        approved, 2 = rejected.

        Changing `status` is restricted to SUPER_USER, MANAGER, CHIEF_EDITOR,
        PUBLISHER and EDITOR;

        any other role receives 403.
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: '{{objectId}}'
          description: 24-char hex identifier of the submission.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              properties:
                status:
                  type: integer
                  enum:
                    - 0
                    - 1
                    - 2
                  description: >-
                    New status to set. Allowed values: 0 (pending), 1
                    (approved), 2 (rejected).
                values:
                  type: object
                  description: >-
                    Partial values to merge; keys must exist as `fields[].name`
                    on the form and pass type validation.
                  additionalProperties: {}
            examples:
              UpdateStatus:
                value:
                  status: 1
              UpdateValues:
                value:
                  values:
                    email: new@example.com
      responses:
        '200':
          description: Updated
        '400':
          description: Bad request (neither `values` nor `status` supplied)
        '403':
          description: >-
            Forbidden (role not permitted to change status, or WRITER caller
            that does not own the form)
        '404':
          description: Not found
        '500':
          description: >-
            Server error, including field-validation failures and an invalid
            submission id — the service 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

````