Media Playback API

The Media Playback APIs provide access to CXone Recording media and metadata, enabling integration with CRM systems, analytics platforms, and other operational workflows. These APIs support voice, screen, chat, and email interactions.

Usage, Licensing, and Rate Limiting

Access to CXone Recording media through the Media Playback APIs is billable and requires specific licensing. This is because the Media Playback APIs provide direct access to sensitive recording files, which involves additional operational, compliance, and infrastructure costs.


To ensure proper use of these APIs, customers must-

  • Have a relevant SKU included in their contract. To confirm the correct SKU and validate licensing status, contact your CXone Account Representative before integrating or deploying the APIs.
  • Be aware that use without a valid SKU may result in billing adjustments, API throttling, or suspension of access without prior notice.
    Note - Other NICE APIs, such as Reporting or Metadata APIs, are available under general CXone licensing and do not require this SKU.

API Behavior Overview

When calling these APIs-

  • For voice-only and voice-and-screen interactions, the API returns interaction metadata and a media download link (fileToPlayUrl).
  • For chat and email interactions, the API returns metadata and media links. The transcript is available only for legacy InContact digital interactions. Authenticate your calls by generating a CXone API token using an Access Key with the appropriate permissions, and include it as a bearer token in your requests.

Enforcement Policy
NICE reserves the right to monitor usage of the Media Playback APIs to ensure compliance with licensing terms.
If unauthorized or unlicensed usage is detected-

  • Customers may be backbilled for usage outside of their entitlement.
  • API access may be throttled or restricted until licensing compliance is confirmed.
To request adjustments to throttling limits, contact your CXone Account Representative to review your use case and discuss available options.

    - CXone Quality Management
    - CXone Recording

General Requirements

To use these APIs, you must create an Access Key and then generate a CXone API token to use as a bearer token when calling Media-Playback APIs. You can create Access Keys by enabling the Access Key permissions and then creating an Access Key in the user's profile or by navigating to the Access Key tab on the employee page.

Loading...

Media Download Service API

The Media Download API supports separate bulk download for media types: Voice recordings only and Screen recordings only.

The API uses the same playback flow as the Player to generate consolidated media files per interaction, and supports both contact-level and segment-level requests. It also supports retrieval of archived media if the user has the required permission for long-term file retrieval and enforces existing playback lock and access control settings.

You submit a list of contact IDs or segment IDs and specify which media type to download. For each contact or segment, the system locates all associated media, restores archived files when required, and generates downloadable media files.

The API is designed for large-volume needs such as high-volume playback, audits, system migrations, or external analysis. It supports up to 15 bulk download requests (of up to 100 segments or contacts per request) within a five-minute window. Once a download request is submitted, invoke the Status API after 5 minutes. If the response status is not Success, retry the Status API at 1-minute intervals until a successful response is received.

The Media Download Service (saas-mcr-ms-mds) provides asynchronous bulk media export and status tracking for contacts and segments within CXone.

Authentication

All endpoints require a valid CXone bearer token. The token is used to extract tenant context, user identity, and authorization scope. Service tokens are also supported.

Async Workflow

  1. Submit a bulk download request via POST /contacts or POST /segments.
  2. Receive a requestId in the 202 response.
  3. Poll GET /status/{requestId} to track progress and retrieve the download location.
Loading...
{ }