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

# Preview Move



## OpenAPI

````yaml /openapi.json post /v1/workspaces/{workspaceId}/projects/{projectId}/areas/{areaId}/move/preview
openapi: 3.1.0
info:
  title: Specurate API
  description: ''
  version: 1.0.0
  contact: {}
servers:
  - url: https://app.specurate.com/api
    description: API Server
security: []
tags: []
paths:
  /v1/workspaces/{workspaceId}/projects/{projectId}/areas/{areaId}/move/preview:
    post:
      tags:
        - Project Areas
      summary: Preview Move
      operationId: ProjectAreasController_previewMove_v1
      parameters:
        - name: workspaceId
          required: true
          in: path
          schema:
            type: string
        - name: projectId
          required: true
          in: path
          schema:
            type: string
        - name: areaId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PreviewProjectAreaMoveDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectAreaMovePreviewResponseDto'
      security:
        - bearer: []
components:
  schemas:
    PreviewProjectAreaMoveDto:
      type: object
      properties:
        version:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        parentId:
          anyOf:
            - type: string
            - type: 'null'
        placement:
          type: object
          properties:
            areaId:
              type: string
            before:
              type: boolean
          required:
            - areaId
            - before
          additionalProperties: false
        newParent:
          type: object
          properties:
            name:
              type: string
              minLength: 1
              maxLength: 120
            code:
              anyOf:
                - type: string
                  pattern: ^[A-Z0-9-]{1,6}$
                - type: 'null'
          required:
            - name
            - code
          additionalProperties: false
        addedLevels:
          maxItems: 3
          type: array
          items:
            type: object
            properties:
              singularLabel:
                type: string
                minLength: 1
                maxLength: 40
              pluralLabel:
                type: string
                minLength: 1
                maxLength: 40
            required:
              - singularLabel
              - pluralLabel
            additionalProperties: false
      required:
        - version
        - parentId
      additionalProperties: false
    ProjectAreaMovePreviewResponseDto:
      type: object
      properties:
        version:
          type: number
        blocker:
          type: string
          nullable: true
        requiredLevels:
          type: number
        repeatsBefore:
          type: string
        repeatsAfter:
          type: string
        budget:
          $ref: '#/components/schemas/ProjectAreaMoveBudgetReviewResponseDto'
      required:
        - version
        - blocker
        - requiredLevels
        - repeatsBefore
        - repeatsAfter
        - budget
    ProjectAreaMoveBudgetReviewResponseDto:
      type: object
      properties:
        required:
          type: boolean
        mode:
          type: string
          enum:
            - percentage
            - square_area
        displaced:
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/ProjectAreaMoveBudgetResponseDto'
        leaves:
          type: array
          items:
            $ref: '#/components/schemas/ProjectAreaMoveBudgetResponseDto'
      required:
        - required
        - mode
        - displaced
        - leaves
    ProjectAreaMoveBudgetResponseDto:
      type: object
      properties:
        areaId:
          type: string
        name:
          type: string
        budgetPercent:
          type: string
          nullable: true
        squareArea:
          type: string
          nullable: true
        squareAreaCost:
          type: string
          nullable: true
      required:
        - areaId
        - name
        - budgetPercent
        - squareArea
        - squareAreaCost
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http

````