# Floor plan management APIs

Source: [https://docs.qualcomm.com/doc/80-42204-2/topic/floor-plan-management-apis.html](https://docs.qualcomm.com/doc/80-42204-2/topic/floor-plan-management-apis.html)

The following table lists the indoor APIs to manage the floor plans of a venue.

| Method | Endpoint | Description | Success code | Error codes |
| --- | --- | --- | --- | --- |
| [POST](https://docs.qualcomm.com/doc/80-42204-2/topic/floor-plan-management-apis.html#post-venues-venueid-floors-floorid-plan) | `/venues/{venueId}/floors/{floorId}/plan` | Upload a floor plan | 201 Created | <ul class="ul" id="floor-plan-management-apis__ul_bnt_ds4_4hc"><br>                                    <li class="li">400 Bad Request</li><br><br>                                    <li class="li">401 Unauthorized</li><br><br>                                    <li class="li">403 Forbidden</li><br><br>                                    <li class="li">404 Floor Not Found</li><br><br>                                    <li class="li">409 Conflict (floor plan already exists)</li><br><br>                                    <li class="li">413 Request Entity Too Large</li><br><br>                                    <li class="li">500 Internal Server Error</li><br><br>                                </ul> |
| [GET](https://docs.qualcomm.com/doc/80-42204-2/topic/floor-plan-management-apis.html#get-venues-venueid-floors-floorid-plan) | `/venues/{venueId}/floors/{floorId}/plan` | Retrieve the floor plan | 200 OK | <ul class="ul" id="floor-plan-management-apis__ul_j3y_ms4_4hc"><br>                                    <li class="li">401 Unauthorized</li><br><br>                                    <li class="li">403 Forbidden</li><br><br>                                    <li class="li">404 Floor Plan Not Found</li><br><br>                                    <li class="li">500 Internal Server Error</li><br><br>                                </ul> |
| [PUT](https://docs.qualcomm.com/doc/80-42204-2/topic/floor-plan-management-apis.html#put-venues-venueid-floors-floorid-plan) | `/venues/{venueId}/floors/{floorId}/plan` | Update the floor plan | 200 OK | <ul class="ul" id="floor-plan-management-apis__ul_j1s_ss4_4hc"><br>                                    <li class="li">400 Bad Request</li><br><br>                                    <li class="li">401 Unauthorized</li><br><br>                                    <li class="li">403 Forbidden</li><br><br>                                    <li class="li">404 Floor Plan Not Found</li><br><br>                                    <li class="li">413 Request Entity Too Large</li><br><br>                                    <li class="li">500 Internal server error</li><br><br>                                </ul> |
| [DELETE](https://docs.qualcomm.com/doc/80-42204-2/topic/floor-plan-management-apis.html#delete-venues-venueid-floors-floorid-plan) | `/venues/{venueId}/floors/{floorId}/plan` | Delete the floor plan | 200 OK | <ul class="ul" id="floor-plan-management-apis__ul_kws_qs4_4hc"><br>                                    <li class="li">401 Unauthorized</li><br><br>                                    <li class="li">403 Forbidden</li><br><br>                                    <li class="li">404 Floor Plan Not Found</li><br><br>                                    <li class="li">500 Internal Server Error</li><br><br>                                </ul> |

## POST /venues/{venueId}/floors/{floorId}/plan

Source: [https://docs.qualcomm.com/doc/80-42204-2/topic/floor-plan-management-apis.html](https://docs.qualcomm.com/doc/80-42204-2/topic/floor-plan-management-apis.html)

Uploads a floor plan image with metadata for a floor.

**Path parameters**

| Parameter | Type | Values | Description |
| --- | --- | --- | --- |
| `venueId` | Integer |  | The ID of the venue. |
| `floorId` | Integer |  | The ID of the floor. |

**Request headers**

    Content-Type: multipart/form-dataCopy to clipboard

**Request body parameters (multipart/form-data)**

| Parameter | Type | Values | Description |
| --- | --- | --- | --- |
| `image` | File (PNG or JPEG) | Maximum size: 10 MB | Floor plan image file |
| `metadata` | String |  | JSON string containing floor plan metadata |

**Request body (metadata json structure)**

    {
      "latitude": 37.7749,
      "longitude": -122.4194,
      "width": 100.5,
      "height": 75.3,
      "bearing": 45.0
    }Copy to clipboard

**Metadata parameters**

| Parameter | Type |  | Description |
| --- | --- | --- | --- |
| `latitude` | Float | -90 to 90 | Latitude of the floor plan center |
| `longitude` | Float | -180 to 180 | Longitude of the floor plan center |
| `width` | Float |  | Width of the floor plan in meters |
| `height` | Float |  | Height of the floor plan in meters |
| `bearing` | Float | 0 to 360 | Bearing or rotation angle in degrees |

**Response**

- Success response: 201 Created

        {
          "floorPlanId": 789,
          "message": "Floor plan successfully created."
        }Copy to clipboard
- Error responses:
    - 400 Bad Request

            {
              "message": "Image file is required."
            }
            {
              "message": "Image data is required."
            }
            {
              "message": "Metadata is required."
            }
            {
              "message": "Invalid JSON metadata."
            }
            {
              "message": "Invalid image type. Allowed types are: png, jpeg, jpg."
            }
            {
              "message": "bearing: Bearing must be within the range [0, 360)."
            }Copy to clipboard
    - 401 Unauthorized: Missing or invalid Skyhook-Auth-Key
                            header

            {
              "message": "Missing Skyhook-Auth-Key."
            }
            {
              "message": "Invalid Skyhook-Auth-Key."
            }Copy to clipboard
    - 403 Forbidden: Valid API key but insufficient permissions for the
                            requested resource

            {
              "message": "Access Denied."
            }Copy to clipboard
    - 404 Not Found

            {
              "message": "Venue id 123/floor id 456 is not found or not associated with this project."
            }
            {
              "message": "The requested resource was not found."
            }Copy to clipboard
    - 409 Conflict

            {
              "message": "Floor plan already exists for this floor."
            }Copy to clipboard
    - 413 Request Entity Too Large

            {
              "message": "Image file size (11.61MB) exceeds maximum allowed size of 10.0MB."
            }Copy to clipboard
    - 500 Internal Server Error

            {
              "message": "An unexpected error occurred while creating floor plan."
            }Copy to clipboard

## GET /venues/{venueId}/floors/{floorId}/plan

Source: [https://docs.qualcomm.com/doc/80-42204-2/topic/floor-plan-management-apis.html](https://docs.qualcomm.com/doc/80-42204-2/topic/floor-plan-management-apis.html)

Retrieves the floor plan with metadata and image.

**Path parameters**

| Parameter | Type | Values | Description |
| --- | --- | --- | --- |
| `venueId` | Integer |  | The ID of the venue |
| `floorId` | Integer |  | The ID of the floor |

**Request headers**

    Content-Type: application/jsonCopy to clipboard

**Response**

- Success response: 200 OK
    Returns a multipart or mixed response with two
                        parts:

    - Part 1: JSON metadata

            {
              "latitude": 37.7749,
              "longitude": -122.4194,
              "width": 100.5,
              "height": 75.3,
              "bearing": 45.0
            }Copy to clipboard
    - Part 2: Binary image
                            data

            image: <binary data>Copy to clipboard
- Error responses:
    - 401 Unauthorized: Missing or invalid Skyhook-Auth-Key
                            header

            {
              "message": "Missing Skyhook-Auth-Key."
            }
            {
              "message": "Invalid Skyhook-Auth-Key."
            }Copy to clipboard
    - 403 Forbidden: Valid API key but insufficient permissions for the
                            requested resource

            {
              "message": "Access Denied."
            }Copy to clipboard
    - 404 Not Found

            {
              "message": "No floor plan found for floor 456."
            }
            {
              "message": "Venue id <venueId>/floor id <floorId> not found or not associated with this project."
            }
            {
              "message": "The requested resource was not found."
            }Copy to clipboard
    - 500 Internal Server Error

            {
              "message": "An unexpected error occurred while retrieving floor plan."
            }Copy to clipboard

## PUT /venues/{venueId}/floors/{floorId}/plan

Source: [https://docs.qualcomm.com/doc/80-42204-2/topic/floor-plan-management-apis.html](https://docs.qualcomm.com/doc/80-42204-2/topic/floor-plan-management-apis.html)

Updates the floor plan metadata and/or image.

**Path parameters**

| Parameter | Type | Values | Description |
| --- | --- | --- | --- |
| `venueId` | Integer |  | The ID of the venue |
| `floorId` | Integer |  | The ID of the floor |

**Request headers**

    Content-Type: multipart/form-dataCopy to clipboard

**Request body parameters (multipart/form-data)**

| Parameter | Type | Values | Description |
| --- | --- | --- | --- |
| `image` | File (PNG or JPEG) | Maximum size: 10 MB | Floor plan image file |
| `metadata` | String |  | JSON string containing floor plan metadata |

**Request body (metadata json structure)**

Note: Either image or metadata must be provided.

    {
      "latitude": 37.7750,
      "longitude": -122.4195,
      "width": 101.0,
      "height": 76.0,
      "bearing": 46.0
    }Copy to clipboard

**Metadata parameters**

| Parameter | Type |  | Description |
| --- | --- | --- | --- |
| `latitude` | Float | -90 to 90 | Latitude of the floor plan center |
| `longitude` | Float | -180 to 180 | Longitude of the floor plan center |
| `width` | Float |  | Width of the floor plan in meters |
| `height` | Float |  | Height of the floor plan in meters |
| `bearing` | Float | 0 to 360 | Bearing or rotation angle in degrees |

**Response**

- Success response: 200 OK

        {
         "message": "Floor plan successfully updated."
        }Copy to clipboard
- Error responses:
    - 400 Bad Request

            {
              "message": "Either image or metadata must be provided."
            }
            {
              "message": "latitude: Latitude must be between -90 and 90."
            }
            {
              "message": "longitude: Longitude must be between -180 and 180."
            }
            {
              "message": "bearing: Bearing must be within the range [0, 360)."
            }Copy to clipboard
    - 401 Unauthorized: Missing or invalid Skyhook-Auth-Key
                            header

            {
              "message": "Missing Skyhook-Auth-Key."
            }
            {
              "message": "Invalid Skyhook-Auth-Key."
            }Copy to clipboard
    - 403 Forbidden: Valid API key but insufficient permissions for the
                            requested resource

            {
              "message": "Access Denied."
            }Copy to clipboard
    - 404 Not Found

            {
              "message": "No floor plan found for floor <floorId>."
            }
            {
              "message": "The requested resource was not found."
            }Copy to clipboard
    - 413 Request Entity Too Large

            {
              "message": "Image file size (11.61MB) exceeds maximum allowed size of 10.0MB."
            }Copy to clipboard
    - 500 Internal Server Error

            {
              "message": "An unexpected error occurred while creating floor plan."
            }Copy to clipboard

## DELETE /venues/{venueId}/floors/{floorId}/plan

Source: [https://docs.qualcomm.com/doc/80-42204-2/topic/floor-plan-management-apis.html](https://docs.qualcomm.com/doc/80-42204-2/topic/floor-plan-management-apis.html)

Deletes a floor plan.

**Response**

- Success response: 200 OK

        {
          "message": "Floor plan for floor <floorId> in venue <venueId> deleted."
        }Copy to clipboard
- Error responses:
    - 401 Unauthorized: Missing or invalid Skyhook-Auth-Key
              header

            {
              "message": "Missing Skyhook-Auth-Key."
            }
            {
              "message": "Invalid Skyhook-Auth-Key."
            }Copy to clipboard
    - 403 Forbidden: Valid API key but insufficient permissions for the
              requested resource

            {
              "message": "Access Denied."
            }Copy to clipboard
    - 404 Not Found

            {
              "message": "No floor plan found for floor <floorId>."
            }
            {
              "message": "Venue id <venueId>/floor id <floorId> not found or not associated with this project."
            }
            {
              "message": "The requested resource was not found."
            }Copy to clipboard
    - 500 Internal Server Error

            {
              "message": "An unexpected error occurred while deleting floor plan."
            }Copy to clipboard

Last Published: May 19, 2026

[Previous Topic
Floor management APIs](https://docs.qualcomm.com/bundle/publicresource/80-42204-2/topics/floor-management-apis.md) [Next Topic
Survey session management APIs](https://docs.qualcomm.com/bundle/publicresource/80-42204-2/topics/survey-session-management-api.md)