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.

OpenAPI Specification

cisco-voice-portal-reporting-openapi.yml Raw ↑
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