openapi: 3.2.0
info:
title: Webex Locations API
version: 1.0.0
description: 'Operations tagged Locations across 3 of this provider''s published API definitions: webex-cloud-calling-openapi.json,
webex-device-openapi.json, webex-locations-api-openapi.yml. Each path carries the servers of the definition it was published
in.'
x-provenance:
method: harvested
authored_by: Cisco Webex
harvested_by: API Evangelist
harvested_on: '2026-08-19'
first_party: true
note: Published by Cisco. Retrieved unmodified except for this x-provenance block.
provider_published: true
derived_view: Per-tag view of webex-cloud-calling-openapi.json, the provider's source document. Operations and schemas
are the provider's, unmodified; only the partition is ours.
derived_from: webex-cloud-calling-openapi.json
operation_coverage: 10/10
x-evidence:
- type: source
url: https://github.com/webex/webex-openapi-specs/blob/main/public-spec/webex-cloud-calling.json
- type: raw
url: https://raw.githubusercontent.com/webex/webex-openapi-specs/main/public-spec/webex-cloud-calling.json
tags:
- name: Locations
paths:
/locations:
get:
responses:
'200':
description: OK
headers:
Link:
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/LocationsCollectionResponse'
example:
items:
- id: Y2lzY29zcGFyazovL3VzL0xPQ0FUSU9OL2M5N2VlMDQ5LTM1OWItNGM3OC04NDU0LTA1OGMyZWRlMjU2Mw
name: Denver
orgId: Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi9hNDVkNmNkYS1hZTVhLTQwYzMtYTdhZC01NjUwZmRkZGQ1M2M
address:
address1: 123 Some St.
address2: Suite 456
city: Supercity
state: Goodstate
postalCode: '12345'
country: US
timeZone: America/Chicago
preferredLanguage: en_us
latitude: '12.935784'
longitude: '77.697332'
notes: Suite 456 Denver location
'400':
description: 'Bad Request: The request was invalid or cannot be otherwise served. An accompanying error message
will explain further.'
'401':
description: 'Unauthorized: Authentication credentials were missing or incorrect.'
'403':
description: 'Forbidden: The request is understood, but it has been refused or access is not allowed.'
'404':
description: 'Not Found: The URI requested is invalid or the resource requested, such as a user, does not exist.
Also returned when the requested format is not supported by the requested method.'
'405':
description: 'Method Not Allowed: The request was made to a resource using an HTTP request method that is not supported.'
'409':
description: 'Conflict: The request could not be processed because it conflicts with some established rule of the
system. For example, a person may not be added to a room more than once.'
'410':
description: 'Gone: The requested resource is no longer available.'
'415':
description: 'Unsupported Media Type: The request was made to a resource without specifying a media type or used
a media type that is not supported.'
'423':
description: 'Locked: The requested resource is temporarily unavailable. A Retry-After header may be present that
specifies how many seconds you need to wait before attempting the request again.'
'428':
description: 'Precondition Required: File(s) cannot be scanned for malware and need to be force downloaded.'
'429':
description: 'Too Many Requests: Too many requests have been sent in a given amount of time and the request has
been rate limited. A Retry-After header should be present that specifies how many seconds you need to wait before
a successful request can be made.'
'500':
description: 'Internal Server Error: Something went wrong on the server. If the issue persists, feel free to contact
the [Webex Developer Support team](/explore/support).'
'502':
description: 'Bad Gateway: The server received an invalid response from an upstream server while processing the
request. Try again later.'
'503':
description: 'Service Unavailable: Server is overloaded with requests. Try again later.'
'504':
description: 'Gateway Timeout: An upstream server failed to respond on time. If your query uses max parameter, please
try to reduce it.'
summary: List Locations
operationId: listLocations
description: 'List locations for an organization.
* Use query parameters to filter the result set by location name, ID, or organization.
* Long result sets will be split into [pages](/docs/basics#pagination).
* Searching and viewing locations in your organization requires an administrator or location administrator auth token
with any of the following scopes: `spark-admin:locations_read`, `spark-admin:people_read` or `spark-admin:device_read`.'
tags:
- Locations
parameters:
- name: name
in: query
description: List locations whose name contains this string (case-insensitive).
example: Denver
schema:
type: string
- name: id
in: query
description: List locations by ID.
example: Y2lzY29zcGFyazovL3VzL0xPQ0FUSU9OL2M5N2VlMDQ5LTM1OWItNGM3OC04NDU0LTA1OGMyZWRlMjU2Mw
schema:
type: string
- name: orgId
in: query
description: List locations in this organization. Only admin users of another organization (such as partners) may
use this parameter.
example: Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi85NmFiYzJhYS0zZGNjLTExZTUtYTE1Mi1mZTM0ODE5Y2RjOWE
schema:
type: string
- name: max
in: query
description: Limit the maximum number of location in the response.
example: 100
schema:
type: number
default: 500
post:
responses:
'201':
description: Created
headers: {}
content:
application/json:
schema:
type: object
required:
- id
properties:
id:
type: string
example: Y2lzY29zcGFyazovL3VzL0xPQ0FUSU9OLzljYTNhZmQ3LTE5MjYtNGQ0ZS05ZDA3LTk5ZDJjMGU4OGFhMA
description: ID of the newly created location.
example:
id: Y2lzY29zcGFyazovL3VzL0xPQ0FUSU9OLzljYTNhZmQ3LTE5MjYtNGQ0ZS05ZDA3LTk5ZDJjMGU4OGFhMA
'400':
description: 'Bad Request: The request was invalid or cannot be otherwise served. An accompanying error message
will explain further.'
'401':
description: 'Unauthorized: Authentication credentials were missing or incorrect.'
'403':
description: 'Forbidden: The request is understood, but it has been refused or access is not allowed.'
'404':
description: 'Not Found: The URI requested is invalid or the resource requested, such as a user, does not exist.
Also returned when the requested format is not supported by the requested method.'
'405':
description: 'Method Not Allowed: The request was made to a resource using an HTTP request method that is not supported.'
'409':
description: 'Conflict: The request could not be processed because it conflicts with some established rule of the
system. For example, a person may not be added to a room more than once.'
'410':
description: 'Gone: The requested resource is no longer available.'
'415':
description: 'Unsupported Media Type: The request was made to a resource without specifying a media type or used
a media type that is not supported.'
'423':
description: 'Locked: The requested resource is temporarily unavailable. A Retry-After header may be present that
specifies how many seconds you need to wait before attempting the request again.'
'428':
description: 'Precondition Required: File(s) cannot be scanned for malware and need to be force downloaded.'
'429':
description: 'Too Many Requests: Too many requests have been sent in a given amount of time and the request has
been rate limited. A Retry-After header should be present that specifies how many seconds you need to wait before
a successful request can be made.'
'500':
description: 'Internal Server Error: Something went wrong on the server. If the issue persists, feel free to contact
the [Webex Developer Support team](/explore/support).'
'502':
description: 'Bad Gateway: The server received an invalid response from an upstream server while processing the
request. Try again later.'
'503':
description: 'Service Unavailable: Server is overloaded with requests. Try again later.'
'504':
description: 'Gateway Timeout: An upstream server failed to respond on time. If your query uses max parameter, please
try to reduce it.'
summary: Create a Location
operationId: createLocation
description: "Create a new Location for a given organization. Only an admin in the organization can create a new Location.\n\
\n* Creating a location in your organization requires a full administrator auth token with a scope of `spark-admin:locations_write`.\n\
\n* Partners may specify `orgId` query parameter to create location in managed organization.\n\n* The following body\
\ parameters are required to create a new location: \n * `name`\n * `timeZone`\n * `preferredLanguage`\n\
\ * `address`\n * `announcementLanguage`.\n\n* `latitude`, `longitude` and `notes` are optional parameters to\
\ create a new location.\n\n* **Important:** While the `name` field supports up to 256 characters, locations that\
\ will be enabled for Webex Calling must have names with a maximum of 80 characters. If you plan to enable calling\
\ for this location, ensure the name does not exceed 80 characters to maintain compatibility with Control Hub and\
\ calling features."
tags:
- Locations
parameters:
- name: orgId
in: query
description: Create a location common attribute for this organization.
example: Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi85NmFiYzJhYS0zZGNjLTExZTUtYTE1Mi1mZTM0ODE5Y2RjOWE
schema:
type: string
requestBody:
content:
application/json:
example:
name: Denver
timeZone: America/Chicago
announcementLanguage: fr_fr
preferredLanguage: en_us
address:
address1: 123 Some St.
address2: Suite 456
city: Supercity
state: Goodstate
postalCode: '12345'
country: US
latitude: '12.935784'
longitude: '77.697332'
notes: 123 Some St. Denver location
schema:
$ref: '#/components/schemas/PostCommonLocationObject'
/locations/{locationId}:
get:
responses:
'200':
description: OK
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/Location'
example:
id: Y2lzY29zcGFyazovL3VzL0xPQ0FUSU9OL2M5N2VlMDQ5LTM1OWItNGM3OC04NDU0LTA1OGMyZWRlMjU2Mw
name: Denver
orgId: Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi9hNDVkNmNkYS1hZTVhLTQwYzMtYTdhZC01NjUwZmRkZGQ1M2M
address:
address1: 123 Some St.
city: San Jose
state: CA
postalCode: '95134'
country: US
timeZone: America/Chicago
latitude: '12.935784'
longitude: '77.697332'
notes: 123 Some St. Denver location
'400':
description: 'Bad Request: The request was invalid or cannot be otherwise served. An accompanying error message
will explain further.'
'401':
description: 'Unauthorized: Authentication credentials were missing or incorrect.'
'403':
description: 'Forbidden: The request is understood, but it has been refused or access is not allowed.'
'404':
description: 'Not Found: The URI requested is invalid or the resource requested, such as a user, does not exist.
Also returned when the requested format is not supported by the requested method.'
'405':
description: 'Method Not Allowed: The request was made to a resource using an HTTP request method that is not supported.'
'409':
description: 'Conflict: The request could not be processed because it conflicts with some established rule of the
system. For example, a person may not be added to a room more than once.'
'410':
description: 'Gone: The requested resource is no longer available.'
'415':
description: 'Unsupported Media Type: The request was made to a resource without specifying a media type or used
a media type that is not supported.'
'423':
description: 'Locked: The requested resource is temporarily unavailable. A Retry-After header may be present that
specifies how many seconds you need to wait before attempting the request again.'
'428':
description: 'Precondition Required: File(s) cannot be scanned for malware and need to be force downloaded.'
'429':
description: 'Too Many Requests: Too many requests have been sent in a given amount of time and the request has
been rate limited. A Retry-After header should be present that specifies how many seconds you need to wait before
a successful request can be made.'
'500':
description: 'Internal Server Error: Something went wrong on the server. If the issue persists, feel free to contact
the [Webex Developer Support team](/explore/support).'
'502':
description: 'Bad Gateway: The server received an invalid response from an upstream server while processing the
request. Try again later.'
'503':
description: 'Service Unavailable: Server is overloaded with requests. Try again later.'
'504':
description: 'Gateway Timeout: An upstream server failed to respond on time. If your query uses max parameter, please
try to reduce it.'
summary: Get Location Details
operationId: getLocationDetails
description: "Shows details for a location, by ID.\n\n* Specify the location ID in the `locationId` parameter in the\
\ URI.\n\n* Use query parameter `orgId` to filter the result set by organization(optional).\n\n* Searching and viewing\
\ location in your organization requires an administrator or location administrator auth token with any of the following\
\ scopes:\n\n * `spark-admin:locations_read`\n * `spark-admin:people_read`\n * `spark-admin:device_read`"
tags:
- Locations
parameters:
- name: locationId
in: path
description: A unique identifier for the location.
required: true
example: Y2lzY29zcGFyazovL3VzL0xPQ0FUSU9OL2M5N2VlMDQ5LTM1OWItNGM3OC04NDU0LTA1OGMyZWRlMjU2Mw
schema:
type: string
- name: orgId
in: query
description: Get location common attributes for this organization.
example: Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi85NmFiYzJhYS0zZGNjLTExZTUtYTE1Mi1mZTM0ODE5Y2RjOWE
schema:
type: string
put:
responses:
'204':
description: No Content
headers: {}
content: {}
'400':
description: 'Bad Request: The request was invalid or cannot be otherwise served. An accompanying error message
will explain further.'
'401':
description: 'Unauthorized: Authentication credentials were missing or incorrect.'
'403':
description: 'Forbidden: The request is understood, but it has been refused or access is not allowed.'
'404':
description: 'Not Found: The URI requested is invalid or the resource requested, such as a user, does not exist.
Also returned when the requested format is not supported by the requested method.'
'405':
description: 'Method Not Allowed: The request was made to a resource using an HTTP request method that is not supported.'
'409':
description: 'Conflict: The request could not be processed because it conflicts with some established rule of the
system. For example, a person may not be added to a room more than once.'
'410':
description: 'Gone: The requested resource is no longer available.'
'415':
description: 'Unsupported Media Type: The request was made to a resource without specifying a media type or used
a media type that is not supported.'
'423':
description: 'Locked: The requested resource is temporarily unavailable. A Retry-After header may be present that
specifies how many seconds you need to wait before attempting the request again.'
'428':
description: 'Precondition Required: File(s) cannot be scanned for malware and need to be force downloaded.'
'429':
description: 'Too Many Requests: Too many requests have been sent in a given amount of time and the request has
been rate limited. A Retry-After header should be present that specifies how many seconds you need to wait before
a successful request can be made.'
'500':
description: 'Internal Server Error: Something went wrong on the server. If the issue persists, feel free to contact
the [Webex Developer Support team](/explore/support).'
'502':
description: 'Bad Gateway: The server received an invalid response from an upstream server while processing the
request. Try again later.'
'503':
description: 'Service Unavailable: Server is overloaded with requests. Try again later.'
'504':
description: 'Gateway Timeout: An upstream server failed to respond on time. If your query uses max parameter, please
try to reduce it.'
summary: Update a Location
operationId: updateLocation
description: 'Update details for a location, by ID.
* Updating a location in your organization requires a full administrator or location administrator auth token with
a scope of `spark-admin:locations_write`.
* Specify the location ID in the `locationId` parameter in the URI.
* Partners may specify `orgId` query parameter to update location in managed organization.
* **Important:** While the `name` field supports up to 256 characters, locations that are enabled for Webex Calling
must have names with a maximum of 80 characters. If the location is enabled for calling, ensure the name does not
exceed 80 characters to maintain compatibility with Control Hub and calling features.'
tags:
- Locations
parameters:
- name: locationId
in: path
description: Update location common attributes for this location.
required: true
example: Y2lzY29zcGFyazovL3VzL0xPQ0FUSU9OL2E4NjczZDIwLWM0M2EtNDQ5Ni1iYWIxLTNiMjhhZGJjMjViYQ
schema:
type: string
- name: orgId
in: query
description: Update location common attributes for this organization.
example: Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi85NmFiYzJhYS0zZGNjLTExZTUtYTE1Mi1mZTM0ODE5Y2RjOWE
schema:
type: string
requestBody:
content:
application/json:
example:
name: Denver
address:
address1: 123 Some St.
address2: Suite 456
city: Supercity
state: Goodstate
postalCode: '12345'
country: US
timeZone: America/Chicago
preferredLanguage: en_us
schema:
$ref: '#/components/schemas/PutCommonLocationObject'
delete:
responses:
'204':
description: No Content
headers: {}
content: {}
'400':
description: 'Bad Request: The request was invalid or cannot be otherwise served. An accompanying error message
will explain further.'
'401':
description: 'Unauthorized: Authentication credentials were missing or incorrect.'
'403':
description: 'Forbidden: The request is understood, but it has been refused or access is not allowed.'
'404':
description: 'Not Found: The URI requested is invalid or the resource requested, such as a user, does not exist.
Also returned when the requested format is not supported by the requested method.'
'405':
description: 'Method Not Allowed: The request was made to a resource using an HTTP request method that is not supported.'
'409':
description: 'Conflict: The request could not be processed because it conflicts with some established rule of the
system. For example, a person may not be added to a room more than once.'
'410':
description: 'Gone: The requested resource is no longer available.'
'415':
description: 'Unsupported Media Type: The request was made to a resource without specifying a media type or used
a media type that is not supported.'
'423':
description: 'Locked: The requested resource is temporarily unavailable. A Retry-After header may be present that
specifies how many seconds you need to wait before attempting the request again.'
'428':
description: 'Precondition Required: File(s) cannot be scanned for malware and need to be force downloaded.'
'429':
description: 'Too Many Requests: Too many requests have been sent in a given amount of time and the request has
been rate limited. A Retry-After header should be present that specifies how many seconds you need to wait before
a successful request can be made.'
'500':
description: 'Internal Server Error: Something went wrong on the server. If the issue persists, feel free to contact
the [Webex Developer Support team](/explore/support).'
'502':
description: 'Bad Gateway: The server received an invalid response from an upstream server while processing the
request. Try again later.'
'503':
description: 'Service Unavailable: Server is overloaded with requests. Try again later.'
'504':
description: 'Gateway Timeout: An upstream server failed to respond on time. If your query uses max parameter, please
try to reduce it.'
summary: Delete Location
operationId: deleteLocation
description: 'Delete a location, by ID.
* Specify the location ID in the `locationId` parameter in the URI.
* Deleting a location in your organization requires a full administrator auth token with a scope of `spark-admin:locations_write`.
* NOTE: Disabling Webex Calling for a Webex Calling enabled location is required prior to deleting a location.'
tags:
- Locations
parameters:
- name: locationId
in: path
description: A unique identifier for the location.
required: true
example: Y2lzY29zcGFyazovL3VzL0xPQ0FUSU9OL2M5N2VlMDQ5LTM1OWItNGM3OC04NDU0LTA1OGMyZWRlMjU2Mw
schema:
type: string
- name: orgId
in: query
description: Specify the organization for the location to be deleted.
example: Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi85NmFiYzJhYS0zZGNjLTExZTUtYTE1Mi1mZTM0ODE5Y2RjOWE
schema:
type: string
/locations/{locationId}/floors:
get:
responses:
'200':
description: OK
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/FloorCollectionResponse'
example:
items:
- id: Y2lzY29zcGFyazovL3VybjpURUFNOnVzLWVhc3QtMl9hL1dPUktTUEFDRV9MT0NBVElPTl9GTE9PUi83NDhkZDNmMS1iYmE5LTQxMDItODk5NC00M2IyOTM2MzNlNjY
locationId: Y2lzY29zcGFyazovL3VzL0xPQ0FUSU9OL2E4NjczZDIwLWM0M2EtNDQ5Ni1iYWIxLTNiMjhhZGJjMjViYQ
floorNumber: -1
displayName: The basement
'400':
description: 'Bad Request: The request was invalid or cannot be otherwise served. An accompanying error message
will explain further.'
'401':
description: 'Unauthorized: Authentication credentials were missing or incorrect.'
'403':
description: 'Forbidden: The request is understood, but it has been refused or access is not allowed.'
'404':
description: 'Not Found: The URI requested is invalid or the resource requested, such as a user, does not exist.
Also returned when the requested format is not supported by the requested method.'
'405':
description: 'Method Not Allowed: The request was made to a resource using an HTTP request method that is not supported.'
'409':
description: 'Conflict: The request could not be processed because it conflicts with some established rule of the
system. For example, a person may not be added to a room more than once.'
'410':
description: 'Gone: The requested resource is no longer available.'
'415':
description: 'Unsupported Media Type: The request was made to a resource without specifying a media type or used
a media type that is not supported.'
'423':
description: 'Locked: The requested resource is temporarily unavailable. A Retry-After header may be present that
specifies how many seconds you need to wait before attempting the request again.'
'428':
description: 'Precondition Required: File(s) cannot be scanned for malware and need to be force downloaded.'
'429':
description: 'Too Many Requests: Too many requests have been sent in a given amount of time and the request has
been rate limited. A Retry-After header should be present that specifies how many seconds you need to wait before
a successful request can be made.'
'500':
description: 'Internal Server Error: Something went wrong on the server. If the issue persists, feel free to contact
the [Webex Developer Support team](/explore/support).'
'502':
description: 'Bad Gateway: The server received an invalid response from an upstream server while processing the
request. Try again later.'
'503':
description: 'Service Unavailable: Server is overloaded with requests. Try again later.'
'504':
description: 'Gateway Timeout: An upstream server failed to respond on time. If your query uses max parameter, please
try to reduce it.'
summary: List Location Floors
operationId: listLocationFloors
description: 'List location floors.
Requires an administrator auth token with the `spark-admin:locations_read` scope.'
tags:
- Locations
parameters:
- name: locationId
in: path
description: A unique identifier for the location.
required: true
example: Y2lzY29zcGFyazovL3VzL0xPQ0FUSU9OL2E4NjczZDIwLWM0M2EtNDQ5Ni1iYWIxLTNiMjhhZGJjMjViYQ
schema:
type: string
post:
responses:
'201':
description: Created
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/Floor'
example:
id: Y2lzY29zcGFyazovL3VybjpURUFNOnVzLWVhc3QtMl9hL1dPUktTUEFDRV9MT0NBVElPTl9GTE9PUi83NDhkZDNmMS1iYmE5LTQxMDItODk5NC00M2IyOTM2MzNlNjY
locationId: Y2lzY29zcGFyazovL3VzL0xPQ0FUSU9OL2E4NjczZDIwLWM0M2EtNDQ5Ni1iYWIxLTNiMjhhZGJjMjViYQ
floorNumber: -1
displayName: The basement
'400':
description: 'Bad Request: The request was invalid or cannot be otherwise served. An accompanying error message
will explain further.'
'401':
description: 'Unauthorized: Authentication credentials were missing or incorrect.'
'403':
description: 'Forbidden: The request is understood, but it has been refused or access is not allowed.'
'404':
description: 'Not Found: The URI requested is invalid or the resource requested, such as a user, does not exist.
Also returned when the requested format is not supported by the requested method.'
'405':
description: 'Method Not Allowed: The request was made to a resource using an HTTP request method that is not supported.'
'409':
description: 'Conflict: The request could not be processed because it conflicts with some established rule of the
system. For example, a person may not be added to a room more than once.'
'410':
description: 'Gone: The requested resource is no longer available.'
'415':
description: 'Unsupported Media Type: The request was made to a resource without specifying a media type or used
a media type that is not supported.'
'423':
description: 'Locked: The requested resource is temporarily unavailable. A Retry-After header may be present that
specifies how many seconds you need to wait before attempting the request again.'
'428':
description: 'Precondition Required: File(s) cannot be scanned for malware and need to be force downloaded.'
'429':
description: 'Too Many Requests: Too many requests have been sent in a given amount of time and the request has
been rate limited. A Retry-After header should be present that specifies how many seconds you need to wait before
a successful request can be made.'
'500':
description: 'Internal Server Error: Something went wrong on the server. If the issue persists, feel free to contact
the [Webex Developer Support team](/explore/support).'
'502':
description: 'Bad Gateway: The server received an invalid response from an upstream server while processing the
request. Try again later.'
'503':
description: 'Service Unavailable: Server is overloaded with requests. Try again later.'
'504':
description: 'Gateway Timeout: An upstream server failed to respond on time. If your query uses max parameter, please
try to reduce it.'
summary: Create a Location Floor
operationId: createLocationFloor
description: 'Create a new floor in the given location. The `displayName` parameter is optional, and omitting it will
result in the creation of a floor without that value set.
Requires an administrator auth token with the `spark-admin:locations_write` scope.'
tags:
- Locations
parameters:
- name: locationId
in: path
description: A unique identifier for the location.
required: true
example: Y2lzY29zcGFyazovL3VzL0xPQ0FUSU9OL2E4NjczZDIwLWM0M2EtNDQ5Ni1iYWIxLTNiMjhhZGJjMjViYQ
schema:
type: string
requestBody:
content:
application/json:
example:
floorNumber: -1
displayName: The
# --- truncated at 32 KB (57 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/webex/refs/heads/main/openapi/webex-locations-api-openapi.yml