# Venue management APIs
Source: [https://docs.qualcomm.com/doc/80-42204-2/topic/venue-management-apis.html](https://docs.qualcomm.com/doc/80-42204-2/topic/venue-management-apis.html)
The following table lists the indoor APIs to manage the venues.
| Method | Endpoint | Description | Success code | Error codes |
| --- | --- | --- | --- | --- |
| [POST](https://docs.qualcomm.com/doc/80-42204-2/topic/venue-management-apis.html#post-venues) | `/venues` | Create a new venue | 201 Created |
- 400 Bad request
- 401 Unauthorized
- 403 Forbidden
- 409 Conflict (duplicate label or customerVenueId)
- 500 Internal server error
|
| [GET](https://docs.qualcomm.com/doc/80-42204-2/topic/venue-management-apis.html#get-venues) | `/venues` | List all venues | 200 OK |
- 401 Unauthorized
- 403 Forbidden
- 500 Internal server error
|
| [GET](https://docs.qualcomm.com/doc/80-42204-2/topic/venue-management-apis.html#get-venues-venueid) | `/venues/{venueId}` | Retrieve the details of a specific venue | 200 OK |
- 401 Unauthorized
- 403 Forbidden
- 404 Venue not found
- 500 Internal server error
|
| [PUT](https://docs.qualcomm.com/doc/80-42204-2/topic/venue-management-apis.html#put-venues) | `/venues/{venueId}` | Update venue information | 200 OK |
- 400 Bad request
- 401 Unauthorized
- 403 Forbidden
- 404 Venue not found
- 409 Conflict (duplicate label or customerVenueId)
- 500 Internal server error
|
| [DELETE](https://docs.qualcomm.com/doc/80-42204-2/topic/venue-management-apis.html#delete-venues) | `/venues/{venueId}` | Delete a venue | 200 OK |
- 401 Unauthorized
- 403 Forbidden
- 404 Venue not found
- 409 Conflict (active survey)
- 500 Internal server error
|
## POST /venues
Source: [https://docs.qualcomm.com/doc/80-42204-2/topic/venue-management-apis.html](https://docs.qualcomm.com/doc/80-42204-2/topic/venue-management-apis.html)
Creates a new venue associated with the authenticated CRS project.
**Request headers**
Content-Type: application/jsonCopy to clipboard
**Request body**
{
"label": "Building A",
"customerVenueId": "venue_001",
"latitude": 37.7749,
"longitude": -122.4194
}Copy to clipboard
**Response fields**
| Field | Type | Values | Description |
| --- | --- | --- | --- |
| `label` | String | Must contain only Unicode letters, numbers, spaces, underscores
(\_), hash (#), hyphens (-), commas (,), and periods (.) | Venue name or label |
| `customerVenueId` | String (optional) | Must contain only alphanumeric characters, underscores (\_), and
hyphens (-) | Customer-defined venue identifier |
| `latitude` | Float | -90 to 90 | Latitude coordinate. Approximate centroid of the venue. |
| `longitude` | Float | -180 to 180 | Longitude coordinate. Approximate centroid of the venue. |
**Response**
- Success response: 201 Created
{
"venueId": ,
"message": "Venue successfully created."
}Copy to clipboard
- Error responses:
- 400 Bad Request
{
"message": "Venue label must contain only Unicode letters, numbers, spaces, underscores (_), hash (#), hyphens (-), commas (,), and periods (.)"
}
{
"message": "latitude: This field is required."
}
{
"message": "latitude: A valid number is required."
}
{
"message": "Latitude must be between -90 and 90."
}
{
"message": "longitude: This field is required."
}
{
"message": "longitude: A valid number is required."
}
{
"message": "Longitude must be between -180 and 180."
}
{
"message": "label: This field is required."
}
{
"message": "label: This field may not be blank."
}
{
"message": "label: Ensure this field has no more than 200 characters."
}
{
"message": "customerVenueId: This field may not be blank."
}
{
"message": "customerVenueId: Ensure this field has no more than 255 characters."
}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
- 409 Conflict
{
"message": "Failed to create/update venue, duplicate venue label."
}
{
"message": "Failed to create/update venue, duplicate customerVenueId."
}Copy to clipboard
- 500 Internal Server Error
{
"message": "An unexpected error occurred while creating Venue."
}Copy to clipboard
## GET /venues
Source: [https://docs.qualcomm.com/doc/80-42204-2/topic/venue-management-apis.html](https://docs.qualcomm.com/doc/80-42204-2/topic/venue-management-apis.html)
Retrieves all the venues associated with the authenticated project.
**Request headers**
Content-Type: application/jsonCopy to clipboard
**Query parameters**
| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `customerVenueId` | String | No | Filters venues by an exact customer-provided venue identifier.
- If no match is found, an empty list is returned.
- If omitted, all venues are returned (existing behavior).
|
| `pageNumber` | Integer | Yes, if paginated response is required; else No. | 1-based page index.
- If provided, response is paginated.
- Maximum: 500
|
| `pageSize` | Integer | No | Number of items per page.
- Applicable only to paginated responses when
pageNumber is specified.
- Default: 50
- Maximum: 500
|
| `ordering` | String | No | Sort field and direction.
- Applicable only to paginated responses.
- Default: -modified (most recent first)
|
**Response fields**
| Field | Type | Values | Description |
| --- | --- | --- | --- |
| `venueId` | Integer | | Unique venue identifier |
| `label` | String | | Venue name or label |
| `customerVenueId` | String | | Customer-defined venue identifier |
| `numFloors` | Integer | | Number of floors in this venue |
| `surveyState` | String |
- INACTIVE
- ACTIVATING
- ACTIVE
- DEACTIVATING
| Current venue survey state |
| `latitude` | Float | | Latitude coordinate |
| `longitude` | Float | | Longitude coordinate |
| `created` | Integer | | Unix timestamp of creation |
| `modified` | Integer | | Unix timestamp of last modification |
**Response**
- Success response: 200 OK
{
"venueId": 123,
"label": "Building A",
"customerVenueId": "venue_001",
"numFloors": 2,
"surveyState": "ACTIVE",
"latitude": 37.7749,
"longitude": -122.4194,
"created": 1698765432,
"modified": 1698765432
},
{
"venueId": 124,
"label": "Building B",
"customerVenueId": "venue_002",
"numFloors": 5,
"surveyState": "INACTIVE",
"latitude": 37.7750,
"longitude": -122.4195,
"created": 1698765433,
"modified": 1698765433
}Copy to clipboard
- Response (paginated)
{
"pageNumber": 1,
"pageSize": 50,
"totalPages": 1,
"totalResults": 2,
"results": [
{
"venueId":123,
"label":"Building A",
"customerVenueId":"venue_001",
"numFloors": 2,
"surveyState": "ACTIVE",
"latitude":37.7749,
"longitude":-122.4194,
"created":1698765432,
"modified":1698765432
},
{
"venueId":124,
"label":"Building B",
"customerVenueId":"venue_002",
"numFloors": 5,
"surveyState": "INACTIVE",
"latitude":37.7750,
"longitude":-122.4195,
"created":1698765433,
"modified":1698765433
}
]
}Copy to clipboard
- Error response:
- 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
- 500 Internal Server Error
{
"message": "Internal Server error occurred while fetching list of Venues."
}Copy to clipboard
## GET /venues/{venueId}
Source: [https://docs.qualcomm.com/doc/80-42204-2/topic/venue-management-apis.html](https://docs.qualcomm.com/doc/80-42204-2/topic/venue-management-apis.html)
Retrieves the details of a specific venue by ID.
**Path parameters**
| Parameter | Type | Values | Description |
| --- | --- | --- | --- |
| `venueId` | Integer | | The ID of the venue to retrieve |
**Request headers**
Content-Type: application/jsonCopy to clipboard
**Response fields**
| Field | Type | Values | Description |
| --- | --- | --- | --- |
| `venueId` | Integer | | Unique venue identifier |
| `label` | String | | Venue name or label |
| `customerVenueId` | String | | Customer-defined venue identifier |
| `numFloors` | Integer | | Number of floors in this venue |
| `surveyState` | String |
- INACTIVE
- ACTIVATING
- ACTIVE
- DEACTIVATING
| Current venue survey state |
| `latitude` | Float | | Latitude coordinate |
| `longitude` | Float | | Longitude coordinate |
| `created` | Integer | | Unix timestamp of creation |
| `modified` | Integer | | Unix timestamp of last modification |
**Response**
- Success response: 200 OK
{
"venueId": 123,
"label": "Building A",
"customerVenueId": "venue_001",
"numFloors": 2,
"surveyState": "ACTIVE",
"latitude": 37.7749,
"longitude": -122.4194,
"created": 1698765432,
"modified": 1698765432
}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": "Venue id not found or not associated with this project."
}
{
"message": "The requested resource was not found."
}Copy to clipboard
- 500 Internal Server Error
{
"message": "Internal Server error occurred while fetching Venue details."
}Copy to clipboard
## PUT /venues/{venueId}
Source: [https://docs.qualcomm.com/doc/80-42204-2/topic/venue-management-apis.html](https://docs.qualcomm.com/doc/80-42204-2/topic/venue-management-apis.html)
Updates the details of a specific venue by ID.
**Path parameters**
| Parameter | Type | Values | Description |
| --- | --- | --- | --- |
| `venueId` | Integer | | The ID of the venue to retrieve |
**Request headers**
Content-Type: application/jsonCopy to clipboard
**Request body**
{
"label": "Building A - Updated",
"customerVenueId": "venue_001_updated",
"latitude": 37.7750,
"longitude": -122.4195
}Copy to clipboard
**Request body parameters**
| Parameter | Type | Values | Description |
| --- | --- | --- | --- |
| `label` | String | | (Optional) Venue name or label |
| `customerVenueId` | String | | (Optional) Customer-defined venue identifier |
| `latitude` | Float | -90 to 90 | (Optional) Latitude coordinate |
| `longitude` | Float | -180 to 180 | (Optional) Longitude coordinate |
**Response**
- Success response: 200 OK
{
"message": "Venue successfully updated."
}Copy to clipboard
- Error responses:
- 400 Bad Request
{
"message": "Venue label must contain only alphanumeric characters, spaces, underscore (_), #, and hyphen (-)"
}
{
"message": "latitude: A valid number is required."
}
{
"message": "longitude: A valid number is required."
}
{
"message": "label: This field may not be blank."
}
{
"message": "customerVenueId: This field may not be blank."
}
{
"message": "customerVenueId: Ensure this field has no more than 255 characters."
}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 not found or not associated with this project."
}Copy to clipboard
- 409 Conflict
{
"message": "Failed to create/update venue, duplicate venue label."
}
{
"message": "Failed to create/update venue, duplicate customerVenueId."
}Copy to clipboard
- 500 Internal Server Error
{
"message": "Internal Error while processing your request."
}Copy to clipboard
## DELETE /venues/{venueId}
Source: [https://docs.qualcomm.com/doc/80-42204-2/topic/venue-management-apis.html](https://docs.qualcomm.com/doc/80-42204-2/topic/venue-management-apis.html)
Deletes a venue by ID. Can't delete a venue if it has an active survey.
**Path parameters**
| Parameter | Type | Values | Description |
| --- | --- | --- | --- |
| `venueId` | Integer | | The ID of the venue to retrieve |
**Request headers**
Content-Type: application/jsonCopy to clipboard
**Response**
- Success response: 200 OK
{
"message": "Venue successfully 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": "Venue with id not found or not associated with this project."
}
{
"message": "The requested resource was not found."
}Copy to clipboard
- 409 Conflict
{
"message": "Cannot delete Venue: . Venue has active survey."
}Copy to clipboard
- 500 Internal Server Error
{
"message": "Internal Error while processing your request."
}Copy to clipboard
Last Published: May 19, 2026
[Previous Topic
Indoor API headers and authentication](https://docs.qualcomm.com/bundle/publicresource/80-42204-2/topics/indoor-api-headers-and-authentication.md) [Next Topic
Floor management APIs](https://docs.qualcomm.com/bundle/publicresource/80-42204-2/topics/floor-management-apis.md)