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

# Rename Form

> Change the display name of a form template or static PDF form in the
company's form library. Get the `FM-XXXX` number from List Forms
(`listForms`). To change its content, use Replace Form Template
(`replaceFormTemplate`) or Replace Static Form (`replaceStaticForm`).

Renames a form in the company's form library, addressed by its stable
`FM-XXXX` `number`. Works for both DOCX templates and static PDF forms.

Only the display name changes. The `number`, `templateKey`, `category`,
`version`, and stored file stay the same, so forms-logic rules that
reference the number keep working and no new version is created. The new
name applies to the form's current version; earlier versions keep the name
they were saved under.

The name is trimmed of surrounding whitespace and must not be empty.
Renaming to the current name succeeds and changes nothing else. The
response is the same summary [List Forms](./list-forms) returns for the form.

**Required permission:** `form-template.edit`




## OpenAPI

````yaml /openapi/generated-external-api.yaml patch /api/v1/companies/{companyId}/forms/{number}
openapi: 3.0.3
info:
  title: AI Insurance External API
  description: External API for AI Insurance platform
  version: 1.0.0
  contact:
    email: support@aiinsurance.io
servers:
  - url: https://go.aiinsurance.io
    description: Production
security:
  - ApiKeyAuth: []
paths:
  /api/v1/companies/{companyId}/forms/{number}:
    patch:
      tags:
        - Forms
      summary: Rename Form
      description: >
        Change the display name of a form template or static PDF form in the

        company's form library. Get the `FM-XXXX` number from List Forms

        (`listForms`). To change its content, use Replace Form Template

        (`replaceFormTemplate`) or Replace Static Form (`replaceStaticForm`).


        Renames a form in the company's form library, addressed by its stable

        `FM-XXXX` `number`. Works for both DOCX templates and static PDF forms.


        Only the display name changes. The `number`, `templateKey`, `category`,

        `version`, and stored file stay the same, so forms-logic rules that

        reference the number keep working and no new version is created. The new

        name applies to the form's current version; earlier versions keep the
        name

        they were saved under.


        The name is trimmed of surrounding whitespace and must not be empty.

        Renaming to the current name succeeds and changes nothing else. The

        response is the same summary [List Forms](./list-forms) returns for the
        form.


        **Required permission:** `form-template.edit`
      operationId: renameForm
      parameters:
        - $ref: '#/components/parameters/companyId'
        - $ref: '#/components/parameters/formTemplateNumber'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - name
              properties:
                name:
                  type: string
                  description: >
                    The form's new display name. Surrounding whitespace is
                    trimmed;

                    the trimmed name must not be empty.
            examples:
              rename:
                summary: Rename a form
                value:
                  name: Certificate of Liability Insurance
      responses:
        '200':
          description: Form renamed. The response is the form's current-version summary.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Fmv1FormSummary'
              examples:
                success:
                  summary: Renamed form
                  value:
                    templateKey: 550e8400-e29b-41d4-a716-446655440040
                    checkpointId: 550e8400-e29b-41d4-a716-446655440043
                    companyId: 550e8400-e29b-41d4-a716-446655440000
                    name: Certificate of Liability Insurance
                    number: FM-0010
                    category: event
                    storagePath: >-
                      acme/550e8400-.../formTemplates/550e8400-.../V-002/550e8400-....docx
                    createdAt: '2026-07-01T12:00:00.000Z'
                    createdBy: 550e8400-e29b-41d4-a716-446655440099
                    updatedAt: '2026-07-03T09:15:00.000Z'
                    updatedBy: 550e8400-e29b-41d4-a716-446655440099
                    version: 2
                    kind: template
        '400':
          description: |
            Bad Request — the name is missing, not a string, or empty after
            trimming (`form-template-name-empty`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                emptyName:
                  summary: Empty name
                  value:
                    error:
                      code: form-template-name-empty
                      message: Form name cannot be empty.
                      userMessages:
                        - Form name cannot be empty.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          description: |
            No live form carries the given number (it never existed, or was
            deleted).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                notFound:
                  summary: Unknown or deleted number
                  value:
                    error:
                      code: form-template-not-found
                      message: No form template with number FM-0010 was found.
                      userMessages:
                        - No form template with number FM-0010 was found.
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  parameters:
    companyId:
      name: companyId
      in: path
      required: true
      schema:
        type: string
        format: uuid
      description: Company identifier
    formTemplateNumber:
      name: number
      in: path
      required: true
      schema:
        type: string
      description: >
        The form template's stable `FM-XXXX` number (as returned by the Upload
        Form

        Template endpoint). It identifies the template across all of its
        versions and

        is the same value forms-logic rules reference.
  schemas:
    Fmv1FormSummary:
      description: >-
        A form-library entry: a form-template summary augmented with its current
        `version` and its `kind` (DOCX template vs static PDF).
      allOf:
        - $ref: '#/components/schemas/Fmv1FormTemplateSummary'
        - type: object
          required:
            - version
            - kind
          properties:
            version:
              type: integer
              description: The current checkpoint's version number.
            kind:
              type: string
              enum:
                - template
                - static
              description: >-
                `template` — a DOCX form template (carries smart tags); `static`
                — a static PDF used as-is. Selects which replace endpoint
                applies (`/forms/template/{number}` vs
                `/forms/static/{number}`).
    ErrorResponse:
      type: object
      description: Standard error response for all external API endpoints
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
              description: Machine-readable error code
              example: VALIDATION_ERROR
            message:
              type: string
              description: Human-readable error message
              example: 'submissionId: Required field is missing'
            userMessages:
              type: array
              description: >-
                Clean, verbatim-displayable messages — one entry per failure,
                free of error-code tags, field paths, and internal noise.
                Suitable for showing to end users as-is.
              items:
                type: string
              example:
                - Exposures of type 'company' require an address
            details:
              type: array
              description: Additional details for validation errors (field-level errors)
              items:
                type: object
                properties:
                  field:
                    type: string
                    description: The field that caused the error
                    example: submissionId
                  code:
                    type: string
                    description: Stable problem code for this individual validation failure
                    example: BLANK_LIST_ELEMENT
                  reason:
                    type: string
                    description: Stable reason the value violates its canonical contract
                    example: blank-list-element
                  expected:
                    type: string
                    description: The expected canonical value contract
                    example: nonblank trimmed string
                  message:
                    type: string
                    description: Description of the field error
                    example: Required field is missing
    Fmv1FormTemplateSummary:
      type: object
      description: A single form-template checkpoint.
      required:
        - templateKey
        - checkpointId
        - companyId
        - name
        - number
        - category
        - storagePath
        - createdAt
        - updatedAt
      properties:
        templateKey:
          type: string
          format: uuid
          description: Stable identifier of the template across its versions.
        checkpointId:
          type: string
          format: uuid
          description: Identifier of this specific checkpoint (version) of the template.
        companyId:
          type: string
          format: uuid
        name:
          type: string
          description: Display name (derived from the uploaded file name).
        number:
          type: string
          description: Human-facing form number (e.g. `FM-0010`).
        category:
          type: string
          enum:
            - event
            - quote-flow
            - quote-bind-flow
            - insured
            - submission
            - person
            - organization
            - unknown
          description: The form category assigned to the template.
        storagePath:
          type: string
          description: Internal storage key of the checkpoint's document.
        createdAt:
          type: string
          format: date-time
        createdBy:
          type: string
          nullable: true
        updatedAt:
          type: string
          format: date-time
        updatedBy:
          type: string
          nullable: true
  responses:
    Unauthorized:
      description: Unauthorized - Invalid or missing API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            missingApiKey:
              summary: Missing API key
              value:
                error:
                  code: AuthenticationError
                  message: API key authentication required
                  userMessages:
                    - API key authentication required
            invalidApiKey:
              summary: >-
                Invalid API key (e.g. unknown key, or a Bearer token used
                instead of an API key)
              value:
                error:
                  code: AuthenticationError
                  message: Invalid API key
                  userMessages:
                    - Invalid API key
    Forbidden:
      description: Forbidden - Insufficient permissions
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            insufficientPermissions:
              summary: Insufficient permissions
              value:
                error:
                  code: AuthorizationError
                  message: User is not authorized to perform the requested action
                  userMessages:
                    - User is not authorized to perform the requested action
            companyMismatch:
              summary: A valid API key naming another company in the URL
              value:
                error:
                  code: AuthorizationError
                  message: API key is not scoped to the requested company
                  userMessages:
                    - API key is not scoped to the requested company
    InternalServerError:
      description: Internal Server Error - Unexpected error occurred
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            internalError:
              summary: Unexpected server error
              value:
                error:
                  code: UncaughtActionError
                  message: Uncaught error occurred in <actionName>
                  userMessages:
                    - An unexpected error occurred. Please try again later.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        API key authentication. Send your raw API key as the `Authorization`
        header value with NO scheme prefix — `Authorization: YOUR-API-KEY`. Do
        NOT prefix it with `Bearer ` or `ApiKey `, and do not use an `X-API-Key`
        header; those are not accepted.

````

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