openapi: 3.0.0
info:
title: Webex Admin Address Book Partner Reports/Templates 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: Partner Reports/Templates
paths:
/partner/reports:
get:
responses:
'200':
description: OK
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/ReportCollectionResponse'
'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 Reports
operationId: listReports
description: 'Lists all reports previously generated from a given region. Use query parameters to filter the response. The parameters are optional.
To access this endpoint, you must use an administrator token with `spark-admin:reports_read` and `identity:people_read` scopes.
CSV reports for Webex suite services are only supported for organizations based in one region per API request. Organizations based in a different region will require a separate request with region specified.
When no region is specified, the request defaults to Partner organization''s home region.
Reports are usually provided in zip format. A content-header application/zip or application/octet-stream does indicate the zip format. There is usually no .zip file extension.
'
tags:
- Partner Reports/Templates
parameters:
- name: service
in: query
description: List reports which use this service.
example: Webex
schema:
type: string
- name: templateId
in: query
description: List reports with this report template ID.
example: 5
schema:
type: number
- name: from
in: query
description: List reports that were created on or after this date.
example: '2024-05-01'
schema:
type: string
- name: to
in: query
description: List reports that were created before this date.
example: '2024-05-05'
schema:
type: string
- name: regionId
in: query
description: Data in the report will be from organizations in this region, for example, US, CA, or EU.
example: US
schema:
type: string
- name: onBehalfOfSubPartnerOrgId
in: query
description: The encoded organization ID for the sub partner.
example: Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi8wZTE4MmUxNS05ZmNhLTQ0NzgtYmEzOC1jNGFiMmUyN2FlZDA=
schema:
type: string
post:
responses:
'200':
description: OK
headers: {}
content:
application/json:
schema:
type: object
properties:
reportId:
type: string
example: Y2lzY29zcGFyazovL3VzL1BFT1BMRS9mYzhjMWFhMS00OTM5LTQ2NjEtODAwMy1hYWE0MzFmZWM0ZmE
description: The unique identifier for the report.
createdTime:
type: string
example: '2024-05-27 17:02:43'
description: The time of report creation.
example:
reportId: Y2lzY29zcGFyazovL3VybjpURUFNOnVzLWVhc3QtMV9pbnQxMy9SRVBPUlQvYWQwZDIwNTc1ZGEwNDVhNDhmYWQ0N2Q5NzRhYjQxZjI
createdTime: '2024-05-27 17:02:43'
'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 Report
operationId: createAReport
description: 'Create a new report. A new report can be created using `templateId` available from the _List Report Templates_ API. For each `templateId`, there are a set of validation rules that need to be followed.
The `templateId` parameter is a number. However, it is a limitation of developer.webex.com platform that it is passed as a string when you try to test the API from here.
To access this endpoint, you must use an administrator token with `spark-admin:reports_write` and `identity:people_read` scopes.
**Notes**:
CSV reports for Webex suite services are only created for organizations in the specified region. Organizations based in a different region will require a separate request with region specified.
When no region is specified, the request defaults to Partner organization''s home region. A request against a region where there are no organizations will return blank CSV files.
'
tags:
- Partner Reports/Templates
parameters:
- name: onBehalfOfSubPartnerOrgId
in: query
description: The encoded organization ID for the sub partner.
example: Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi8wZTE4MmUxNS05ZmNhLTQ0NzgtYmEzOC1jNGFiMmUyN2FlZDA=
schema:
type: string
requestBody:
content:
application/json:
example:
templateId: 5
startDate: '2024-05-01'
endDate: '2024-05-05'
regionId: US
schema:
type: object
required:
- templateId
- startDate
- endDate
properties:
templateId:
type: number
example: 5
description: Unique ID representing valid report templates.
startDate:
type: string
example: '2024-05-01'
description: Data in the report will be from this date onwards.
endDate:
type: string
example: '2024-05-05'
description: Data in the report will be until this date.
regionId:
type: string
example: US
description: Data in the report will be from organizations in this region, for example, US, CA, or EU.
/partner/reports/{reportId}:
get:
responses:
'200':
description: OK
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/Report'
example:
reportId: Y2lzY29zcGFyazovL3VybjpURUFNOnVzLWVhc3QtMV9pbnQxMy9SRVBPUlQvYWQwZDIwNTc1ZGEwNDVhNDhmYWQ0N2Q5NzRhYjQxZjI
templateId: 5
title: Calling Usage Reports
service: Teams
startDate: '2024-02-23'
endDate: '2024-03-24'
regionId: US
createdTime: '2024-03-24 17:13:39'
status: done
fileName: Calling Usage_12345_Org_2024-05-01_2024-05-05.csv
fileSize: 0
checksum: '12345'
downloadURL: https://downloadservicebts.webex.com/api?reportId=Y2lzY29zcGFyazovL3VzL1JFUE9SVC9hZDBkMjA1NzVkYTA0NWE0OGZhZDQ3ZDk3NGFiNDFmMg
downloadUrlExpiryTime: '3600'
'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 Report Details
operationId: getReportDetails
description: 'Shows details for a report by report ID.
Specify the report ID in the `reportId` parameter in the URI.
To access this endpoint, you must use an administrator token with `spark-admin:reports_read` and `identity:people_read` scopes.
**Notes**:
Reports are usually provided in zip format. A content-header application/zip or application/octet-stream does indicate the zip format. There is usually no .zip file extension.
'
tags:
- Partner Reports/Templates
parameters:
- name: reportId
in: path
description: The unique identifier for the report.
required: true
example: Y2lzY29zcGFyazovL3VybjpURUFNOnVzLWVhc3QtMV9pbnQxMy9SRVBPUlQvYWQwZDIwNTc1ZGEwNDVhNDhmYWQ0N2Q5NzRhYjQxZjI
schema:
type: string
- name: onBehalfOfSubPartnerOrgId
in: query
description: The encoded organization ID for the sub partner.
example: Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi8wZTE4MmUxNS05ZmNhLTQ0NzgtYmEzOC1jNGFiMmUyN2FlZDA=
schema:
type: string
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 a Report
operationId: deleteAReport
description: 'Remove a report from the system.
Specify the report ID in the `reportId` parameter in the URI
To access this endpoint, you must use an administrator token with `spark-admin:reports_write` scope.'
tags:
- Partner Reports/Templates
parameters:
- name: reportId
in: path
description: The unique identifier for the report.
required: true
example: Y2lzY29zcGFyazovL3VybjpURUFNOnVzLWVhc3QtMV9pbnQxMy9SRVBPUlQvYWQwZDIwNTc1ZGEwNDVhNDhmYWQ0N2Q5NzRhYjQxZjI
schema:
type: string
- name: onBehalfOfSubPartnerOrgId
in: query
description: The encoded organization ID for the sub partner.
example: Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi8wZTE4MmUxNS05ZmNhLTQ0NzgtYmEzOC1jNGFiMmUyN2FlZDA=
schema:
type: string
/partner/reports/templates:
get:
responses:
'200':
description: OK
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/TemplateCollectionResponse'
example:
- templateId: 130
title: Calling Usage
service: Teams
category: Partner
maxDays: 31
dataStartDate: '2024-01-01'
dataEndDate: '2024-01-31'
'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 Report Templates
operationId: listReportTemplates
description: 'List report templates. Report templates are available for use with the Partner Reports API.
To access this endpoint, you must use an administrator token with `spark-admin:reports_read` and `identity:people_read` [scopes](/docs/integrations#scopes). The authenticated user must be a Partner full administrator or Partner read-only administrator of the organization.'
tags:
- Partner Reports/Templates
parameters:
- name: onBehalfOfSubPartnerOrgId
in: query
description: The encoded organization ID for the sub partner.
example: Y2lzY29zcGFyazovL3VzL09SR0FOSVpBVElPTi8wZTE4MmUxNS05ZmNhLTQ0NzgtYmEzOC1jNGFiMmUyN2FlZDA=
schema:
type: string
components:
schemas:
Template:
type: object
properties:
id:
type: string
example: '130'
description: Unique identifier representing a report.
title:
type: string
example: Client Version
description: Name of the template.
service:
type: string
example: Teams
description: The service to which the report belongs.
maxDays:
type: number
example: 31
description: Maximum date range for reports belonging to this template.
identifier:
type: string
example: orgWithoutDate
description: Generated reports belong to which field.
validations:
$ref: '#/components/schemas/ValidationRulesCollection'
ReportCollectionResponse:
type: object
properties:
Report Attributes:
type: array
items:
$ref: '#/components/schemas/Report'
description: An array of report objects.
ValidationRulesCollection:
type: object
properties:
validations:
type: array
items:
$ref: '#/components/schemas/ValidationRules'
description: An array of validation rules
Report:
type: object
properties:
id:
type: string
example: Y2lzY29zcGFyazovL3VzL1BFT1BMRS9mYzhjMWFhMS00OTM5LTQ2NjEtODAwMy1hYWE0MzFmZWM0ZmE
description: Unique identifier for the report.
title:
type: string
example: Bots Activity
description: Name of the template to which this report belongs.
service:
type: string
example: Teams
description: The service to which the report belongs.
startDate:
type: string
example: '2020-02-23'
description: The data in this report belongs to dates greater than or equal to this.
endDate:
type: string
example: '2020-03-24'
description: The data in this report belongs to dates smaller than or equal to this.
siteList:
type: string
example: cisco.webex.com
description: The site to which this report belongs to. This only exists if the report belongs to service `Webex`.
created:
type: string
example: '2020-03-24 17:13:39'
description: Time of creation for this report.
createdBy:
type: string
example: Y2lzY29zcGFyazovL3VzL1BFT1BMRS9mYzhjMWFhMS00OTM5LTQ2NjEtODAwMy1hYWE0MzFmZWM0ZmE
description: The person who created the report.
scheduledFrom:
type: string
example: API
description: Whether this report was scheduled from API or Control Hub.
status:
type: string
example: done
description: Completion status of this report.
downloadURL:
type: string
example: https://downloadservicebts.webex.com/api?reportId=Y2lzY29zcGFyazovL3VzL1JFUE9SVC9hZDBkMjA1NzVkYTA0NWE0OGZhZDQ3ZDk3NGFiNDFmMg
description: The link from which the report can be downloaded.
TemplateCollectionResponse:
type: object
properties:
Template Collection:
type: array
items:
$ref: '#/components/schemas/Template'
description: An array of template objects.
ValidationRules:
type: object
properties:
field:
type: string
example: templateId
description: Field on which validation rule is applied
required:
type: string
example: 'yes'
description: Whether the above field is required
securitySchemes:
oauth2:
flows:
authorizationCode:
authorizationUrl: /
scopes: {}
tokenUrl: /
type: oauth2
bearer-key:
type: http
description: e.g. Bearer YOUR_AUTHORIZATION_TOKEN
scheme: bearer
bearerFormat: JWT
bearerAuth:
type: oauth2
description: OAuth 2.0 Bearer token authentication
flows:
authorizationCode:
authorizationUrl: https://webexapis.com/v1/authorize
tokenUrl: https://webexapis.com/v1/access_token
scopes:
spark:applications_token: Create access tokens for Service Apps