# 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 | | | [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 | | | [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 | | | [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 | | ## 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: 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 /floor id 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 ." } { "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 in venue 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 ." } { "message": "Venue id /floor id 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)