Cisco Voice Portal Reporting API
Access to call detail records (CDRs), real-time call statistics, historical reporting data, and report template execution through the CVP Reporting Server.
Access to call detail records (CDRs), real-time call statistics, historical reporting data, and report template execution through the CVP Reporting Server.
openapi: 3.1.0
info:
title: Cisco Voice Portal Reporting API
description: >-
The Cisco Unified Customer Voice Portal (CVP) Reporting API provides access
to call detail records (CDRs), real-time call statistics, and historical
reporting data. The Reporting Server collects data from CVP Call Servers and
VXML Servers, storing it in the CVP Reporting Database (an Informix
database). This API provides RESTful access to reporting data that is
typically accessed via the Cisco Unified Intelligence Center (CUIC)
reporting interface.
version: 12.6.0
contact:
name: Cisco Developer Support
url: https://developer.cisco.com/
license:
name: Cisco DevNet
url: https://developer.cisco.com/site/license/
x-provider: cisco
x-product: unified-customer-voice-portal
servers:
- url: https://{reporting-server}:8111/cvp-reporting/rest
description: CVP Reporting Server REST API
variables:
reporting-server:
default: cvp-reporting.example.com
description: Hostname or IP of the CVP Reporting Server
paths:
/cdr:
get:
operationId: getCallDetailRecords
summary: Cisco Voice Portal Query Call Detail Records
description: >-
Retrieves call detail records (CDRs) based on specified filter
criteria. CDRs contain comprehensive information about each call
processed by CVP including timing, routing decisions, application
interactions, and outcome.
tags:
- Call Detail Records
parameters:
- name: startTime
in: query
required: true
description: Start of the query time range (ISO 8601)
schema:
type: string
format: date-time
- name: endTime
in: query
required: true
description: End of the query time range (ISO 8601)
schema:
type: string
format: date-time
- name: calledNumber
in: query
description: Filter by called number (DNIS)
schema:
type: string
- name: callingNumber
in: query
description: Filter by calling number (ANI)
schema:
type: string
- name: callGuid
in: query
description: Filter by unique call GUID
schema:
type: string
- name: callResult
in: query
description: Filter by call result
schema:
type: string
enum:
- completed
- abandoned
- transferred
- error
- name: offset
in: query
description: Pagination offset
schema:
type: integer
default: 0
- name: limit
in: query
description: Maximum number of records to return
schema:
type: integer
default: 100
maximum: 1000
- name: sortBy
in: query
description: Field to sort by
schema:
type: string
default: callStartTime
enum:
- callStartTime
- callEndTime
- calledNumber
- callingNumber
- name: sortOrder
in: query
schema:
type: string
enum:
- asc
- desc
default: desc
responses:
'200':
description: Call detail records matching the query
content:
application/json:
schema:
$ref: '#/components/schemas/CdrQueryResult'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'500':
$ref: '#/components/responses/InternalError'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/cdr/{callGuid}:
get:
operationId: getCallDetailRecord
summary: Cisco Voice Portal Get a Specific Call Detail Record
description: >-
Retrieves the complete call detail record for a specific call,
identified by its globally unique identifier (GUID). Includes all
call legs, application interactions, and ECC variables.
tags:
- Call Detail Records
parameters:
- name: callGuid
in: path
required: true
description: Globally unique call identifier
schema:
type: string
responses:
'200':
description: Call detail record
content:
application/json:
schema:
$ref: '#/components/schemas/CallDetailRecord'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalError'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/cdr/{callGuid}/legs:
get:
operationId: getCallLegs
summary: Cisco Voice Portal Get Call Legs for a Call
description: >-
Retrieves all individual call legs associated with a specific call.
A call may have multiple legs representing transfers, conferences,
or application hand-offs within the CVP system.
tags:
- Call Detail Records
parameters:
- name: callGuid
in: path
required: true
schema:
type: string
responses:
'200':
description: Call legs
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CallLeg'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalError'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/statistics/realtime:
get:
operationId: getRealtimeStatistics
summary: Cisco Voice Portal Get Real-time Call Statistics
description: >-
Retrieves current real-time statistics across the CVP deployment,
including active calls, calls per second, and resource utilization
metrics. Data is refreshed at the reporting server polling interval.
tags:
- Real-Time Statistics
parameters:
- name: serverId
in: query
description: Filter by specific server ID. If omitted, returns aggregate.
schema:
type: string
responses:
'200':
description: Real-time statistics
content:
application/json:
schema:
$ref: '#/components/schemas/RealtimeStatistics'
'401':
$ref: '#/components/responses/Unauthorized'
'500':
$ref: '#/components/responses/InternalError'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/statistics/summary:
get:
operationId: getCallSummaryStatistics
summary: Cisco Voice Portal Get Call Summary Statistics
description: >-
Retrieves aggregated call summary statistics for a specified time
period, including total calls, average handle time, abandonment
rate, and self-service completion rate.
tags:
- Historical Reports
parameters:
- name: startTime
in: query
required: true
schema:
type: string
format: date-time
- name: endTime
in: query
required: true
schema:
type: string
format: date-time
- name: interval
in: query
description: Aggregation interval
schema:
type: string
enum:
- fifteen_minutes
- thirty_minutes
- hourly
- daily
default: hourly
- name: calledNumber
in: query
description: Filter by called number (DNIS)
schema:
type: string
responses:
'200':
description: Summary statistics
content:
application/json:
schema:
$ref: '#/components/schemas/CallSummaryStatistics'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'500':
$ref: '#/components/responses/InternalError'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/statistics/application:
get:
operationId: getApplicationStatistics
summary: Cisco Voice Portal Get Vxml Application Statistics
description: >-
Retrieves usage and performance statistics for deployed VXML
applications, including invocation counts, completion rates, and
average interaction duration.
tags:
- Historical Reports
parameters:
- name: startTime
in: query
required: true
schema:
type: string
format: date-time
- name: endTime
in: query
required: true
schema:
type: string
format: date-time
- name: applicationName
in: query
description: Filter by specific application name
schema:
type: string
responses:
'200':
description: Application statistics
content:
application/json:
schema:
$ref: '#/components/schemas/ApplicationStatistics'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'500':
$ref: '#/components/responses/InternalError'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/statistics/server:
get:
operationId: getServerStatistics
summary: Cisco Voice Portal Get Per-server Statistics
description: >-
Retrieves call processing statistics broken down by individual CVP
server, useful for capacity planning and load monitoring.
tags:
- Historical Reports
parameters:
- name: startTime
in: query
required: true
schema:
type: string
format: date-time
- name: endTime
in: query
required: true
schema:
type: string
format: date-time
- name: serverType
in: query
description: Filter by server type
schema:
type: string
enum:
- CallServer
- VXMLServer
responses:
'200':
description: Server statistics
content:
application/json:
schema:
$ref: '#/components/schemas/ServerStatistics'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'500':
$ref: '#/components/responses/InternalError'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/report:
get:
operationId: listReportTemplates
summary: Cisco Voice Portal List Available Report Templates
description: >-
Retrieves a list of available report templates that can be executed.
These correspond to the standard CVP reports available in Cisco
Unified Intelligence Center.
tags:
- Report Templates
responses:
'200':
description: List of report templates
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ReportTemplate'
'401':
$ref: '#/components/responses/Unauthorized'
'500':
$ref: '#/components/responses/InternalError'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/report/{templateId}/execute:
post:
operationId: executeReport
summary: Cisco Voice Portal Execute a Report Template
description: >-
Executes a report template with the specified parameters. Reports
may be generated synchronously for small datasets or asynchronously
for large reports.
tags:
- Report Templates
parameters:
- name: templateId
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ReportExecutionRequest'
responses:
'200':
description: Report results (synchronous)
content:
application/json:
schema:
$ref: '#/components/schemas/ReportResult'
'202':
description: Report generation initiated (asynchronous)
content:
application/json:
schema:
type: object
properties:
reportId:
type: string
status:
type: string
enum:
- processing
estimatedCompletionTime:
type: string
format: date-time
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'500':
$ref: '#/components/responses/InternalError'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/report/{reportId}/result:
get:
operationId: getReportResult
summary: Cisco Voice Portal Get Report Execution Result
description: >-
Retrieves the result of a previously executed report. For
asynchronous reports, returns the result once generation is complete.
tags:
- Report Templates
parameters:
- name: reportId
in: path
required: true
schema:
type: string
- name: format
in: query
description: Output format
schema:
type: string
enum:
- json
- csv
default: json
responses:
'200':
description: Report result
content:
application/json:
schema:
$ref: '#/components/schemas/ReportResult'
text/csv:
schema:
type: string
'202':
description: Report still processing
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalError'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
components:
securitySchemes:
basicAuth:
type: http
scheme: basic
description: HTTP Basic authentication using CVP reporting credentials
responses:
BadRequest:
description: Invalid request parameters
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Unauthorized:
description: Authentication required or credentials invalid
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: Requested resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
InternalError:
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
schemas:
CdrQueryResult:
type: object
properties:
totalRecords:
type: integer
description: Total number of matching records
example: 10
offset:
type: integer
example: 10
limit:
type: integer
example: 10
records:
type: array
items:
$ref: '#/components/schemas/CallDetailRecord'
example: []
CallDetailRecord:
type: object
properties:
callGuid:
type: string
description: Globally unique call identifier
example: '500123'
callStartTime:
type: string
format: date-time
description: Call start timestamp
example: '2026-01-15T10:30:00Z'
callEndTime:
type: string
format: date-time
description: Call end timestamp
example: '2026-01-15T10:30:00Z'
callingNumber:
type: string
description: Caller ANI (Automatic Number Identification)
example: example_value
calledNumber:
type: string
description: Called DNIS (Dialed Number Identification Service)
example: example_value
callResult:
type: string
enum:
- completed
- abandoned
- transferred
- error
description: Final call outcome
example: completed
callDuration:
type: integer
description: Total call duration in seconds
example: 10
selfServiceDuration:
type: integer
description: Duration of self-service (IVR) portion in seconds
example: 10
queueDuration:
type: integer
description: Duration in queue in seconds
example: 10
applicationName:
type: string
description: VXML application that handled the call
example: example_value
callServerHostname:
type: string
description: Call Server that processed the call
example: example_value
vxmlServerHostname:
type: string
description: VXML Server that executed the application
example: example_value
sipCallId:
type: string
description: SIP Call-ID header value
example: '500123'
icmCallKey:
type: string
description: ICM/UCCE call key for correlation
example: example_value
eccVariables:
type: object
additionalProperties:
type: string
description: Expanded Call Context (ECC) variables
example: example_value
transferDestination:
type: string
description: Transfer destination number if the call was transferred
example: example_value
errorCode:
type: string
description: Error code if the call ended in error
example: example_value
CallLeg:
type: object
properties:
legId:
type: string
example: '500123'
callGuid:
type: string
example: '500123'
legType:
type: string
enum:
- inbound
- outbound
- transfer
- conference
description: Type of call leg
example: inbound
startTime:
type: string
format: date-time
example: '2026-01-15T10:30:00Z'
endTime:
type: string
format: date-time
example: '2026-01-15T10:30:00Z'
duration:
type: integer
description: Leg duration in seconds
example: 10
fromUri:
type: string
description: SIP From URI
example: example_value
toUri:
type: string
description: SIP To URI
example: example_value
serverHostname:
type: string
description: Server that handled this leg
example: example_value
sipResponseCode:
type: integer
description: Final SIP response code for this leg
example: 10
RealtimeStatistics:
type: object
properties:
timestamp:
type: string
format: date-time
example: '2026-01-15T10:30:00Z'
activeCalls:
type: integer
description: Current number of active calls
example: 10
callsInProgress:
type: object
properties:
selfService:
type: integer
description: Calls currently in self-service IVR
queued:
type: integer
description: Calls currently queued
connected:
type: integer
description: Calls connected to agents
example: example_value
callsPerSecond:
type: number
format: float
description: Current calls per second rate
example: 42.5
peakActiveCalls:
type: integer
description: Peak active calls in current period
example: 10
serverMetrics:
type: array
items:
type: object
properties:
serverId:
type: string
hostname:
type: string
serverType:
type: string
activeCalls:
type: integer
cpuUsage:
type: number
format: float
memoryUsage:
type: number
format: float
example: []
CallSummaryStatistics:
type: object
properties:
startTime:
type: string
format: date-time
example: '2026-01-15T10:30:00Z'
endTime:
type: string
format: date-time
example: '2026-01-15T10:30:00Z'
interval:
type: string
example: example_value
intervals:
type: array
items:
type: object
properties:
intervalStart:
type: string
format: date-time
intervalEnd:
type: string
format: date-time
totalCalls:
type: integer
completedCalls:
type: integer
abandonedCalls:
type: integer
transferredCalls:
type: integer
errorCalls:
type: integer
averageDuration:
type: number
format: float
description: Average call duration in seconds
averageSelfServiceDuration:
type: number
format: float
selfServiceCompletionRate:
type: number
format: float
description: Percentage of calls completed in self-service
abandonRate:
type: number
format: float
description: Percentage of abandoned calls
example: []
ApplicationStatistics:
type: object
properties:
startTime:
type: string
format: date-time
example: '2026-01-15T10:30:00Z'
endTime:
type: string
format: date-time
example: '2026-01-15T10:30:00Z'
applications:
type: array
items:
type: object
properties:
applicationName:
type: string
totalInvocations:
type: integer
completedInvocations:
type: integer
errorInvocations:
type: integer
averageDuration:
type: number
format: float
description: Average application interaction duration in seconds
completionRate:
type: number
format: float
errorRate:
type: number
format: float
example: []
ServerStatistics:
type: object
properties:
startTime:
type: string
format: date-time
example: '2026-01-15T10:30:00Z'
endTime:
type: string
format: date-time
example: '2026-01-15T10:30:00Z'
servers:
type: array
items:
type: object
properties:
serverId:
type: string
hostname:
type: string
serverType:
type: string
totalCalls:
type: integer
peakConcurrentCalls:
type: integer
averageConcurrentCalls:
type: number
format: float
cpuUsageAverage:
type: number
format: float
memoryUsageAverage:
type: number
format: float
example: []
ReportTemplate:
type: object
properties:
templateId:
type: string
example: '500123'
name:
type: string
example: Example Title
description:
type: string
example: A sample description.
category:
type: string
enum:
- call_activity
- application_performance
- server_performance
- error_analysis
example: call_activity
parameters:
type: array
items:
type: object
properties:
name:
type: string
type:
type: string
required:
type: boolean
description:
type: string
example: []
ReportExecutionRequest:
type: object
properties:
parameters:
type: object
additionalProperties: true
description: Report parameters as defined by the template
example: example_value
format:
type: string
enum:
- json
- csv
default: json
example: json
async:
type: boolean
default: false
description: Whether to execute asynchronously
example: true
ReportResult:
type: object
properties:
reportId:
type: string
example: '500123'
templateId:
type: string
example: '500123'
templateName:
type: string
example: example_value
status:
type: string
enum:
- completed
- processing
- error
example: completed
generatedAt:
type: string
format: date-time
example: '2026-01-15T10:30:00Z'
parameters:
type: object
additionalProperties: true
example: example_value
columns:
type: array
items:
type: object
properties:
name:
type: string
type:
type: string
example: []
rows:
type: array
items:
type: array
items: {}
example: []
totalRows:
type: integer
example: 10
Error:
type: object
properties:
code:
type: string
example: example_value
message:
type: string
example: example_value
details:
type: string
example: example_value
timestamp:
type: string
format: date-time
example: '2026-01-15T10:30:00Z'
security:
- basicAuth: []
tags:
- name: Call Detail Records
description: Access and query call detail records
- name: Historical Reports
description: Aggregated historical reporting data
- name: Real-Time Statistics
description: Current call processing statistics
- name: Report Templates
description: Execute pre-defined report templates