---
updatedAt: 2026-06-03T14:46:37.000Z
agentTools:
  projectIndex: https://developers.fieldwire.com/llms.txt
---

# Rotate a Floorplan

# OpenAPI definition

```json
{
  "openapi": "3.0.3",
  "info": {
    "title": "Fieldwire Regional API",
    "version": "v3"
  },
  "servers": [
    {
      "url": "https://client-api.{region}.fieldwire.com",
      "variables": {
        "region": {
          "default": "us",
          "enum": [
            "ca",
            "eu",
            "us"
          ]
        }
      }
    }
  ],
  "components": {
    "headers": {
      "current_user_id": {
        "description": "Current user's id",
        "schema": {
          "type": "integer"
        }
      }
    },
    "parameters": {
      "api_version": {
        "name": "Fieldwire-Version",
        "in": "header",
        "description": "Specifies the version of the API to talk to",
        "required": true,
        "schema": {
          "type": "string",
          "format": "date"
        }
      },
      "id": {
        "name": "id",
        "in": "path",
        "description": "ID of the entity",
        "required": true,
        "schema": {
          "type": "string",
          "format": "uuid"
        }
      },
      "project_id": {
        "name": "project_id",
        "in": "path",
        "description": "ID of the project this entity belongs to",
        "required": true,
        "schema": {
          "type": "string",
          "format": "uuid"
        }
      }
    },
    "schemas": {
      "floorplan_with_sheets": {
        "type": "object",
        "description": "Floorplan Entity schema",
        "required": [
          "id",
          "creator_user_id",
          "last_editor_user_id",
          "project_id",
          "is_name_confirmed",
          "is_ocr_processing",
          "is_user_confirmed",
          "name",
          "resolved_conflict",
          "created_at",
          "device_created_at",
          "device_updated_at",
          "updated_at",
          "deleted_by_two_way_sync",
          "is_marked_for_capture"
        ],
        "nullable": false,
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "nullable": false,
            "description": "ID of the entity"
          },
          "creator_user_id": {
            "type": "integer",
            "format": "int32",
            "nullable": false,
            "description": "ID of the user who created this entity"
          },
          "last_editor_user_id": {
            "type": "integer",
            "format": "int32",
            "nullable": false,
            "description": "ID of the user who most recently edited this entity"
          },
          "cascade_deleted_by_id": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "description": "ID of the item that cascaded its delete to this entity"
          },
          "folder_id": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "description": "Entity ID of the Folder the Floorplan is in."
          },
          "project_id": {
            "type": "string",
            "format": "uuid",
            "nullable": false,
            "description": "ID of the project this entity belongs to"
          },
          "is_name_confirmed": {
            "type": "boolean",
            "nullable": false,
            "description": "When false indicates that User needs to confirm the Floorplan name after auto-naming it from OCR."
          },
          "is_ocr_processing": {
            "type": "boolean",
            "nullable": false,
            "description": "Floorplan has been run through OCR processing"
          },
          "is_user_confirmed": {
            "type": "boolean",
            "nullable": false,
            "description": "When false indicates the Floorplan name is in conflict. i.e same as an existing Floorplan on the Project."
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "A short description of the entity"
          },
          "name": {
            "type": "string",
            "nullable": false,
            "description": "Name of the entity"
          },
          "resolved_conflict": {
            "type": "boolean",
            "nullable": false,
            "description": "Specifies if PUT/PATCH request was rejected - do not store this field!"
          },
          "active_sheets_count": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Number of active sheets in this Floorplan"
          },
          "process_state": {
            "type": "string",
            "enum": [
              "deleting",
              "restoring",
              null
            ],
            "nullable": true,
            "description": "A string indicating the state of the Floorplan."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "nullable": false,
            "description": "Time when the server created the entity"
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Time the server deleted the entity"
          },
          "device_created_at": {
            "type": "string",
            "format": "date-time",
            "nullable": false,
            "description": "Time when the device created the entity"
          },
          "device_updated_at": {
            "type": "string",
            "format": "date-time",
            "nullable": false,
            "description": "Time when the device last updated the entity"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "nullable": false,
            "description": "Time when the server last updated the entity"
          },
          "latest_component_device_updated_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Time when a device last updated a markup on the plan"
          },
          "deleted_by_two_way_sync": {
            "type": "boolean",
            "nullable": true,
            "description": "Indicates if a file was deleted by two way sync"
          },
          "is_marked_for_capture": {
            "type": "boolean",
            "nullable": false,
            "description": "Indicates if a floorplan is marked for field capture"
          },
          "sheets": {
            "type": "array",
            "nullable": false,
            "description": "Sheets that are part of the Floorplan",
            "items": {
              "$ref": "#/components/schemas/sheet"
            }
          }
        },
        "additionalProperties": false
      },
      "floorplan_rotate_update_input": {
        "type": "object",
        "description": "PUT Input to rotate the Floorplan.",
        "nullable": false,
        "required": [
          "rotate_degrees"
        ],
        "properties": {
          "rotate_degrees": {
            "type": "integer",
            "description": "Integer value representing degree of rotation. (0-360).",
            "nullable": false
          }
        },
        "additionalProperties": false
      },
      "sheet": {
        "type": "object",
        "description": "Entity that denotes a particular version of a plan",
        "required": [
          "id",
          "creator_user_id",
          "last_editor_user_id",
          "project_id",
          "is_multipage",
          "file_name",
          "name",
          "version",
          "resolved_conflict",
          "created_at",
          "device_created_at",
          "device_updated_at",
          "updated_at"
        ],
        "nullable": false,
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "nullable": false,
            "description": "ID of the entity"
          },
          "creator_user_id": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "ID of the user who created this entity"
          },
          "last_editor_user_id": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "ID of the user who most recently edited this entity"
          },
          "user_id": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "ID of the user who uploaded this version"
          },
          "floorplan_id": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "description": "ID of the plan this belongs to"
          },
          "folder_id": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "description": "ID of the folder this lives in"
          },
          "rotate_degrees": {
            "type": "integer",
            "format": "int32",
            "nullable": false,
            "description": "Degrees by which the sheet is rotated between 0 to 360"
          },
          "project_id": {
            "type": "string",
            "format": "uuid",
            "nullable": false,
            "description": "ID of the project this entity belongs to"
          },
          "sheet_upload_id": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "description": "ID of the uploaded entity this version was derived from"
          },
          "has_conflicts": {
            "type": "boolean",
            "nullable": true,
            "description": "Whether this has conflicts with other versions of the plan"
          },
          "has_errors": {
            "type": "boolean",
            "nullable": true,
            "description": "Whether this has any errors"
          },
          "has_low_res_tiles": {
            "type": "boolean",
            "nullable": true,
            "description": "Whether this has low resolution tile images"
          },
          "is_multipage": {
            "type": "boolean",
            "nullable": false,
            "description": "Whether this was derived out of a PDF with more than 1 page"
          },
          "is_tiled": {
            "type": "boolean",
            "nullable": true,
            "description": "Whether this carries tiles (rows & columns of images that can be put together to build this)"
          },
          "android_file_url": {
            "type": "string",
            "nullable": true,
            "description": "URL of the low resolution image of this entity (with a max dimension of 2048 pixels)"
          },
          "file_name": {
            "type": "string",
            "nullable": false,
            "description": "Name of the uploaded file out of which this was derived"
          },
          "file_url": {
            "type": "string",
            "nullable": true,
            "description": "URL of the low resolution image of this entity"
          },
          "name": {
            "type": "string",
            "nullable": false,
            "description": "Name of the entity"
          },
          "name_crop_url": {
            "type": "string",
            "nullable": true,
            "description": "URL of the corner of that carries the name"
          },
          "original_url": {
            "type": "string",
            "nullable": true,
            "description": "URL of the file that was processed into all the different images in this entity"
          },
          "suggested_name": {
            "type": "string",
            "nullable": true,
            "description": "Name suggested by our automated text extraction process"
          },
          "thumb_url": {
            "type": "string",
            "nullable": true,
            "description": "URL of the thumb image of this entity"
          },
          "tiles_package_url": {
            "type": "string",
            "nullable": true,
            "description": "URL of the zip file that carries all the tile images for this entity"
          },
          "version_description": {
            "type": "string",
            "nullable": true,
            "description": "Description for this version of the plan"
          },
          "meters_per_pixel": {
            "type": "number",
            "format": "double",
            "nullable": true,
            "description": "Count of meters each pixel in `file_url` corresponds to"
          },
          "pdf_height": {
            "type": "number",
            "format": "double",
            "nullable": true,
            "description": "Height of the original PDF file that was processed into this entity"
          },
          "pdf_width": {
            "type": "number",
            "format": "double",
            "nullable": true,
            "description": "Width of the original PDF file that was processed into this entity"
          },
          "android_file_height": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Height in pixels of the `android_file_url` image"
          },
          "android_file_width": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Width in pixels of the `android_file_url` image"
          },
          "file_height": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Height in pixels of the `file_url` image"
          },
          "file_width": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Width in pixels of the `file_url` image"
          },
          "original_height": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Height in pixels of the original image before it was further processed into different dimensions"
          },
          "original_width": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Height in pixels of the original image before it was further processed into different dimensions"
          },
          "page_number": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Page number this entity denotes of the uploaded file"
          },
          "tile_size": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Dimension of each tile image"
          },
          "tiles_resolution": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Resolution of provided tiles images (in DPI)"
          },
          "tiles_resolution_type": {
            "type": "integer",
            "format": "int32",
            "nullable": true,
            "description": "Resolution type of tiles images"
          },
          "version": {
            "type": "integer",
            "format": "int32",
            "nullable": false,
            "description": "Particular version of the plan this entity denotes"
          },
          "version_notes": {
            "type": "string",
            "nullable": true,
            "description": "Notes for this version of the plan"
          },
          "resolved_conflict": {
            "type": "boolean",
            "nullable": true,
            "description": "Specifies if PUT/PATCH request was rejected - do not store this field!"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "nullable": false,
            "description": "Time when the server created the entity"
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Time the server deleted the entity"
          },
          "device_created_at": {
            "type": "string",
            "format": "date-time",
            "nullable": false,
            "description": "Time when the device created the entity"
          },
          "device_updated_at": {
            "type": "string",
            "format": "date-time",
            "nullable": false,
            "description": "Time when the device last updated the entity"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "nullable": false,
            "description": "Time when the server last updated the entity"
          },
          "text_content_url": {
            "type": "string",
            "nullable": true,
            "description": "Parsed sheet's text content file url"
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "jwt": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "description": "Access token (JWT) generated using the acquired refresh token (API token). Our [authentication](https://developers.fieldwire.com/docs/authentication) guide covers the steps to generate a valid token"
      }
    }
  },
  "paths": {
    "/api/v3/projects/{project_id}/floorplans/{id}/rotate": {
      "put": {
        "summary": "Rotate a Floorplan",
        "operationId": "rotate_floorplan",
        "tags": [
          "floorplans"
        ],
        "security": [
          {
            "jwt": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id"
          },
          {
            "$ref": "#/components/parameters/id"
          },
          {
            "$ref": "#/components/parameters/api_version"
          }
        ],
        "responses": {
          "201": {
            "description": "Successful response with active Sheet",
            "headers": {
              "X-Current-User-Id": {
                "$ref": "#/components/headers/current_user_id"
              }
            },
            "content": {
              "application/json": {
                "example": {
                  "id": "74962e68-804c-41d9-b5f1-69a5af742771",
                  "creator_user_id": 885,
                  "last_editor_user_id": 885,
                  "project_id": "fd59b59d-a3b4-488a-9dd4-f6059fdde23d",
                  "resolved_conflict": false,
                  "created_at": "2026-10-02T14:49:31.295Z",
                  "updated_at": "2026-10-02T14:49:31.671Z",
                  "device_created_at": "2026-10-02T14:49:31.298Z",
                  "device_updated_at": "2026-10-02T14:49:31.663Z",
                  "deleted_at": null,
                  "name": "floorplan 21",
                  "is_name_confirmed": true,
                  "folder_id": null,
                  "is_user_confirmed": true,
                  "description": null,
                  "is_ocr_processing": false,
                  "active_sheets_count": 1,
                  "process_state": null,
                  "cascade_deleted_by_id": null,
                  "deleted_by_two_way_sync": false,
                  "is_marked_for_capture": false,
                  "latest_component_device_updated_at": "1970-01-01T00:00:00.000Z",
                  "sheets": [
                    {
                      "id": "5b5e038e-2610-4ca4-b95e-2fe02acf042b",
                      "creator_user_id": 885,
                      "last_editor_user_id": 885,
                      "project_id": "fd59b59d-a3b4-488a-9dd4-f6059fdde23d",
                      "resolved_conflict": false,
                      "created_at": "2026-10-02T14:49:31.662Z",
                      "updated_at": "2026-10-02T14:49:31.670Z",
                      "device_created_at": "2026-10-02T14:49:31.662Z",
                      "device_updated_at": "2026-10-02T14:49:31.662Z",
                      "deleted_at": null,
                      "name": "sheet.jpeg",
                      "file_name": "sheet.jpeg",
                      "version": 2,
                      "is_tiled": null,
                      "floorplan_id": "74962e68-804c-41d9-b5f1-69a5af742771",
                      "file_width": null,
                      "file_height": null,
                      "original_width": null,
                      "original_height": null,
                      "has_conflicts": false,
                      "has_errors": false,
                      "tile_size": null,
                      "user_id": 885,
                      "page_number": null,
                      "android_file_width": null,
                      "android_file_height": null,
                      "sheet_upload_id": null,
                      "suggested_name": null,
                      "version_description": "2026-10-02",
                      "version_notes": null,
                      "folder_id": null,
                      "rotate_degrees": 180,
                      "is_multipage": false,
                      "has_low_res_tiles": false,
                      "pdf_width": null,
                      "pdf_height": null,
                      "text_content_url": null,
                      "meters_per_pixel": null,
                      "tiles_package_url": null,
                      "file_url": null,
                      "thumb_url": null,
                      "original_url": "http://example.com/8200ce64-cccd-47a8-9e46-aab339e5f173/sheet.jpeg",
                      "android_file_url": null,
                      "name_crop_url": null,
                      "tiles_resolution": null,
                      "tiles_resolution_type": null
                    }
                  ]
                },
                "schema": {
                  "$ref": "#/components/schemas/floorplan_with_sheets"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/floorplan_rotate_update_input"
              }
            }
          },
          "required": true
        }
      }
    }
  }
}
```