openapi: 3.0.0
info:
title: Webex Admin Address Book Converged Recordings API
version: 1.0.0
description: The Webex Admin APIs provide comprehensive programmatic access to administrative functions for managing Webex organizations, users, licenses, and settings. These APIs enable automation of user provisioning, license assignment, compliance management, and audit event retrieval. Administrators can integrate with enterprise identity systems, enforce security policies, monitor usage, and streamline onboarding/offboarding processes. The APIs support granular control over organizational resources, making them ideal for large-scale deployments and custom admin tooling.
tags:
- name: Converged Recordings
paths:
/convergedRecordings:
get:
responses:
'200':
description: OK
headers:
Link:
schema:
type: string
example: https://webexpis.com/v1/convergedRecordings
content:
application/json;charset=UTF-8:
schema:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/RecordingObject'
description: An array of recording objects.
example:
items:
- id: ea0efc7c-f83a-4972-b0eb-c0f30cff5e61
topic: Call with TestUser6 WebexCRP-20241004 1624
createTime: '2024-10-04T16:24:25Z'
timeRecorded: '2024-10-04T16:20:20Z'
ownerId: a6aad220-e520-4529-a191-e84a72c0c9c2
ownerType: user
ownerEmail: nshtestwebex+testuser7@gmail.com
format: MP3
durationSeconds: 23
sizeBytes: 74222
serviceType: calling
storageRegion: US
status: available
serviceData:
locationId: 02a43ee9-17ae-4e0c-9e79-720e3a6503fd
callSessionId: b51c62ea-bbf6-4828-8959-1e41d8752022
- id: 518cdca4-61c7-47dc-840b-29827d0cb62d
topic: call with title
createTime: '2024-10-30T22:30:53Z'
timeRecorded: '2024-10-30T22:17:19Z'
ownerId: d7468402-e95f-42a9-92c8-dd65f45d40ba
ownerType: user
ownerEmail: nshtestwebex+testuser7@gmail.com
format: MP3
durationSeconds: 60
sizeBytes: 244326
serviceType: calling
storageRegion: US
status: available
serviceData:
locationId: 02a43ee9-17ae-4e0c-9e79-720e3a6503fd
callSessionId: 7ba29675-3016-4bf0-af19-66cf2854b000
'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 Recordings
operationId: list_recordings
description: 'List recordings. You can specify a date range, and the maximum number of recordings to return.
The list returned is sorted in descending order by the date and time that the recordings were created.
Long result sets are split into [pages](/docs/basics#pagination).
List recordings requires the `spark:recordings_read` scope.
Please use `List Recordings for Admin or Compliance Officer` API to list all recordings for a user with the role Compliance officer or Admin
Request Header
* `timezone`: *[Time zone](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List) in conformance with the [IANA time zone database](https://www.iana.org/time-zones). The default is UTC if `timezone` is not defined.*'
tags:
- Converged Recordings
parameters:
- name: max
in: query
description: Maximum number of recordings to return in a single page. `max` must be equal to or greater than `1` and equal to or less than `100`.
schema:
type: number
default: 10
- name: from
in: query
description: Starting date and time (inclusive) for recordings to return, in any [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) compliant format. `from` cannot be after `to`.
example: '2020-07-12T09:30:00+08:00'
schema:
type: string
default: If only `to` is specified, the default `from` value is 7 days before `to`; if no `to` or `from` is specified, the default `from` value is 7 days before the current date and time.
- name: to
in: query
description: Ending date and time (exclusive) for List recordings to return, in any [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) compliant format. `to` cannot be before `from`.
example: '2020-07-31T09:30:00+08:00'
schema:
type: string
default: If `from` is specified, the default value is 7 days after `from`; if `from` is not specified, the default value is the current date and time.
- name: status
in: query
description: Recording's status. If not specified or `available`, retrieves recordings that are available. Otherwise, if specified as `deleted`, retrieves recordings that have been moved into the recycle bin.
example: available
schema:
type: string
default: available
enum:
- available
- deleted
- name: serviceType
in: query
description: Recording's service-type. If specified, the API filters recordings by service-type. Valid values are `calling` and `customerAssist`.
example: calling
schema:
type: string
enum:
- calling
- customerAssist
- name: format
in: query
description: Recording's file format. If specified, the API filters recordings by format. Valid values are `MP3`.
example: MP3
schema:
type: string
enum:
- MP3
- name: ownerType
in: query
description: Recording based on type of user.
example: user
schema:
type: string
enum:
- user
- place
- virtualLine
- callQueue
- name: storageRegion
in: query
description: Recording stored in certain Webex locations.
example: US
schema:
type: string
enum:
- US
- SG
- GB
- JP
- DE
- AU
- IN
- CA
- name: locationId
in: query
description: Fetch recordings for users in a particular Webex Calling location (as configured in Control Hub).
example: 02a43ee9-17ae-4e0c-9e79-720e3a6503fd
schema:
type: string
- name: topic
in: query
description: Recording's topic. If specified, the API filters recordings by topic in a case-insensitive manner.
example: Call with User7
schema:
type: string
- name: timezone
in: header
description: e.g. UTC
required: false
schema:
type: string
example: UTC
/admin/convergedRecordings:
get:
responses:
'200':
description: OK
headers:
Link:
schema:
type: string
example: https://webexpis.com/v1/admin/convergedRecordings
content:
application/json;charset=UTF-8:
schema:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/RecordingObject'
description: An array of recording objects.
example:
items:
- id: baa93e55c62e4663ae24f13fbfdb247f
topic: call with title
createTime: '2023-10-31T16:24:12+08:00'
timeRecorded: '2023-10-31T10:41:28+08:00'
ownerId: d7468402-e95f-42a9-92c8-dd65f45d40ba
ownerType: virtualLine
ownerEmail: Rbs_TA_Admin@wbxlab.us
format: MP3
durationSeconds: 60
sizeBytes: 244333
serviceType: calling
storageRegion: US
status: available
serviceData:
locationId: US
callSessionId: 7ba2967530164bf0af1966cf2854b000
- id: 518cdca461c747dc840b29827d0cb62d
topic: call with title
createTime: '2023-10-30T22:30:53+08:00'
timeRecorded: '2023-10-30T22:17:19+08:00'
ownerId: d7468402-e95f-42a9-92c8-dd65f45d40ba
ownerType: virtualLine
ownerEmail: Rbs_TA_Admin@wbxlab.us
format: MP3
durationSeconds: 60
sizeBytes: 244326
serviceType: calling
storageRegion: US
status: available
serviceData:
locationId: US
callSessionId: 7ba2967530164bf0af1966cf2854b000
'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 Recordings for Admin or Compliance officer
operationId: list_recordings_for_admin_or_compliance_officer
description: 'List recordings for an admin or compliance officer. You can specify a date range, and the maximum number of recordings to return.
The list returned is sorted in descending order by the date and time that the recordings were created.
Long result sets are split into [pages](/docs/basics#pagination).
List recordings requires the `spark-compliance:recordings_read` scope for compliance officer and `spark-admin:recordings_read` scope for admin.
#### Request Header
* `timezone`: *[Time zone](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List) in conformance with the [IANA time zone database](https://www.iana.org/time-zones). The default is UTC if `timezone` is not defined.*'
tags:
- Converged Recordings
parameters:
- name: max
in: query
description: Maximum number of recordings to return in a single page. `max` must be equal to or greater than `1` and equal to or less than `100`.
schema:
type: number
default: 10
- name: from
in: query
description: Starting date and time (inclusive) for recordings to return, in any [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) compliant format. `from` cannot be after `to`. The interval between `from` and `to` must be within 30 days.
example: '2020-07-12T09:30:00+08:00'
schema:
type: string
default: If only `to` is specified, the default `from` value is 7 days before `to`; if no `to` or `from` is specified, the default `from` value is 7 days before the current date and time.
- name: to
in: query
description: Ending date and time (exclusive) for List recordings to return, in any [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) compliant format. `to` cannot be before `from`. The interval between `from` and `to` must be within 30 days.
example: '2020-07-31T09:30:00+08:00'
schema:
type: string
default: If `from` is specified, the default value is 7 days after `from`; if `from` is not specified, the default value is the current date and time.
- name: status
in: query
description: Recording's status. If not specified or `available`, retrieves recordings that are available. if specified as `purged`, retrieves recordings those are deleted but available to a compliance officer. Otherwise, if specified as `deleted`, retrieves recordings that have been moved into the recycle bin.
example: available
schema:
type: string
default: available
enum:
- available
- deleted
- purged
- name: serviceType
in: query
description: Recording's service-type. If specified, the API filters recordings by service-type. Valid values are `calling` and `customerAssist`.
example: calling
schema:
type: string
enum:
- calling
- customerAssist
- name: format
in: query
description: Recording's file format. If specified, the API filters recordings by format. Valid values are `MP3`.
example: MP3
schema:
type: string
enum:
- MP3
- name: ownerId
in: query
description: Webex user Id to fetch recordings for a particular user.
example: 24683d6c-5529-4b60-a6c7-91e8b293bbab
schema:
type: string
- name: ownerEmail
in: query
description: Webex email address to fetch recordings for a particular user.
example: john.andersen@example.com
schema:
type: string
- name: ownerType
in: query
description: Recording based on type of user.
example: user
schema:
type: string
enum:
- user
- place
- virtualLine
- callQueue
- name: storageRegion
in: query
description: Recording stored in certain Webex locations.
example: US
schema:
type: string
enum:
- US
- SG
- GB
- JP
- DE
- AU
- IN
- CA
- name: locationId
in: query
description: Fetch recordings for users in a particular Webex Calling location (as configured in Control Hub).
example: 02a43ee9-17ae-4e0c-9e79-720e3a6503fd
schema:
type: string
- name: topic
in: query
description: Recording's topic. If specified, the API filters recordings by topic in a case-insensitive manner.
example: Call with User7
schema:
type: string
- name: timezone
in: header
description: e.g. UTC
required: false
schema:
type: string
example: UTC
/convergedRecordings/{recordingId}:
get:
responses:
'200':
description: OK
headers: {}
content:
application/json;charset=UTF-8:
schema:
$ref: '#/components/schemas/RecordingObjectWithDirectDownloadLinks'
example:
id: 62807eaf-0c89-492e-a3c3-c4751812603b
topic: call with default
createTime: '2023-11-01T23:09:05+08:00'
timeRecorded: '2023-11-01T15:27:29+08:00'
temporaryDirectDownloadLinks:
audioDownloadLink: https://nsq1wss.dmz.webex.com/nbr/MultiThreadDownloadServlet?type=calling&orgId=59e67527-4651-4c90-b2f0-4f86c3bb6608&recordUUID=62807eaf-0c89-492e-a3c3-c4751812603b&ticket=SDJTSwAAAIV9%2BooFzh%2FkPd1Edek7wtCLYrVcjsJ2RTHGbhwYHpWOEQ%3D%3D×tamp=1699495025258
suggestedNotesDownloadLink: https://aibridge-sa1.dmz.webex.com/wbxaibridge/api/v2/notes/e823b9ee-4c4d-4e91-9379-502a9c8c9e6d?contentType=html&resourceType=CallingRecording&resourceId=e31feef9-38bf-456b-898b-be59d310a490&token=QUhTSwAAAIU2M4Tf2_V07LJZ9K5v3S4stc0ETlKC2vkbmDtqQ89fkTw_GfhGHqnMY4U-T8wfjdHsOmAER_fa2AJrAQ6ZLs3u8IiqJxhb26YY9jXTj1QZ-ITGrC4OJACXqxgxFx43o3XTQ_ORJm2_x7A4SBhrWKYFJFIy9TcT6vOE8c45lAvteEsRcfSP49dJ5y7klaWUI1s1
actionItemsDownloadLink: https://aibridge-sa1.dmz.webex.com/wbxaibridge/api/v2/actionItems/0715435b-c6f9-49f5-be66-e3cbd9f65c0d?contentType=html&resourceType=CallingRecording&resourceId=e31feef9-38bf-456b-898b-be59d310a490&token=QUhTSwAAAIU2M4Tf2_V07LJZ9K5v3S4stc0ETlKC2vkbmDtqQ89fkTw_GfhGHqnMY4U-T8wfjdHsOmAER_fa2AJrAQ6ZLs3u8IiqJxhb26YY9jXTj1QZ-ITGrC4OJACXqxgxFx43o3XTQ_ORJm2_x7A4SBhrWKYFJFIy9TcT6vOE8c45lAvteEsRcfSP49dJ5y7klaWUI1s1
shortNotesDownloadLink: https://aibridge-sa1.dmz.webex.com/wbxaibridge/api/v2/shortNotes/e823b9ee-4c4d-4e91-9379-502a9c8c9e6d?contentType=html&resourceType=CallingRecording&resourceId=e31feef9-38bf-456b-898b-be59d310a490&token=QUhTSwAAAIU2M4Tf2_V07LJZ9K5v3S4stc0ETlKC2vkbmDtqQ89fkTw_GfhGHqnMY4U-T8wfjdHsOmAER_fa2AJrAQ6ZLs3u8IiqJxhb26YY9jXTj1QZ-ITGrC4OJACXqxgxFx43o3XTQ_ORJm2_x7A4SBhrWKYFJFIy9TcT6vOE8c45lAvteEsRcfSP49dJ5y7klaWUI1s1
expiration: '2023-11-09T12:57:05Z'
ownerId: 24683d6c-5529-4b60-a6c7-91e8b293bbab
ownerType: user
ownerEmail: nshtestwebex+crctestuser1@gmail.com
format: MP3
durationSeconds: 298
sizeBytes: 299918
serviceType: calling
storageRegion: US
status: available
serviceData:
locationId: 02a43ee9-17ae-4e0c-9e79-720e3a6503fd
callSessionId: c61b357e-8f53-4d97-9cd2-ae3202796fb0
'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 Recording Details
operationId: get_recording_details
description: 'Retrieves details for a recording with a specified recording ID.
Only recordings of owner with the authenticated user may be retrieved.
Get Recording Details requires the `spark-compliance:recordings_read` scope for compliance officer, `spark-admin:recordings_read` scope for admin and `spark:recordings_read` scope for user.
#### Request Header
* `timezone`: *[Time zone](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List) in conformance with the [IANA time zone database](https://www.iana.org/time-zones). The default is UTC if `timezone` is not defined.*'
tags:
- Converged Recordings
parameters:
- name: recordingId
in: path
description: A unique identifier for the recording.
required: true
example: 62807eaf-0c89-492e-a3c3-c4751812603b
schema:
type: string
- name: timezone
in: header
description: e.g. UTC
required: false
schema:
type: string
example: UTC
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.'
headers: {}
content: {}
'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 a Recording
operationId: delete_a_recording
description: 'Removes a recording with a specified recording ID. The deleted recording cannot be recovered.
If a Compliance Officer deletes another user''s recording, the recording will be inaccessible to regular users (host, attendees and shared), and to the Compliance officer as well. This action purges the recordings from Webex.
Delete a Recording requires the `spark-compliance:recordings_write` scope.'
tags:
- Converged Recordings
parameters:
- name: recordingId
in: path
description: A unique identifier for the recording.
required: true
example: 4f914b1dfe3c4d11a61730f18c0f5387
schema:
type: string
requestBody:
content:
application/json:
example:
reason: audit
comment: Compliance Officer's optional explanation for deleting a recording
schema:
$ref: '#/components/schemas/DeleteRecordingObject'
/convergedRecordings/{recordingId}/metadata:
get:
responses:
'200':
description: OK
headers: {}
content:
application/json;charset=UTF-8:
schema:
type: object
properties:
id:
type: string
orgId:
type: string
ownerId:
type: string
ownerType:
type: string
ownerName:
type: string
ownerEmail:
type: string
storageRegion:
type: string
serviceType:
type: string
version:
type: string
serviceData:
type: object
properties:
callRecordingId:
type: string
locationId:
type: string
callSessionId:
type: string
personality:
type: string
callingParty:
type: object
properties:
actor:
type: object
properties:
type:
type: string
id:
type: string
number:
type: string
calledParty:
type: object
properties:
actor:
type: object
properties:
type:
type: string
id:
type: string
number:
type: string
callId:
type: string
session:
type: object
properties:
startTime:
type: string
stopTime:
type: string
recordingType:
type: string
answererInfo:
type: object
properties:
actor:
type: object
properties:
type:
type: string
id:
type: string
number:
type: string
recordingActions:
type: array
items:
# --- truncated at 32 KB (74 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/webex/refs/heads/main/openapi/webex-converged-recordings-api-openapi.yml