This guide provides an overview of Genesys Multicloud CX web-based APIs. The Introduction to Engage Cloud APIs provides generic information you will find helpful when working with these APIs. Once you have reviewed that content, details about specific APIs are provided on the following pages:

Authentication Overview

CX Contact Service Overview

Cloud Data Download Service Overview

Warning
The Cloud Data Download Server (CDDS) API has been deprecated. Please use the User Data Management API instead.

Consumer Messaging Overview

Engagement Overview

Intelligent Workload Distribution Overview

Interactions Webhook Overview

Provisioning Overview

Secure Email Overview

Statistics Overview

Task Routing Overview

Third-Party Messaging Overview

User Data Management Overview

Workspace Overview

Introduction to Engage Cloud APIs

The Engage Cloud APIs are a collection of web APIs offered in Engage Cloud that send and receive data over HTTP in JSON (JavaScript Object Notation). You can use these APIs to create your own custom applications that integrate with Genesys.

Client libraries

One of the first things you’ll need to decide is whether to use the APIs directly or use the client libraries. The libraries are designed to simplify how you interact with the API and they take care of a lot of the supporting code needed to make HTTP requests, handle HTTP responses, and enable CometD.

The libraries are available on GitHub in Java and Node.js, which means others can make bug fixes or enhancements that would then be reviewed and approved by Genesys before becoming generally available.

Genesys recommends using the client libraries if possible, but either way you should review the reference documentation for the Authentication API and any other Engage Cloud APIs you plan to use to develop your application.

Authentication

All Engage Cloud APIs implement and adhere to the OAuth 2 standard for secure authentication. See the Authentication Overview for details.

CometD

Many requests in the Engage Cloud APIs are asynchronous. When you send an asynchronous request, the API returns an HTTP response with a status code, but this only means the request was processed and sent to a backend Genesys server. When the server finishes processing the request and notifies the API of any changes in state or errors, the API then sends the updated state or error details to the client application as an unsolicited notification.

The Engage Cloud APIs uses CometD to deliver these unsolicited notifications to clients. CometD is a library that allows the server to deliver messages to a web-based client with low-latency using a variety of transports. The transport used to deliver messages is negotiated between the client and server based on what the client supports running in a particular browser. For more information about CometD, or for details about where to obtain client-side CometD libraries for various platforms, see the official CometD site.

These APIs require CometD to deliver notifications:

  • [[PEC-Developer/Current/WebAPIs/Provisioning_API|]]
  • Statistics Overview
  • [[PEC-Developer/Current/WebAPIs/Workspace_API|]]

Click the links above and review the “CometD” section on the API’s landing page for information about which channels you can subscribe to and the notification you’ll receive.

When an API requires CometD, you’ll see a “Notifications” category in its API reference information (see the Statistics API Notifications page for an example). You can use these endpoints to implement CometD if you aren’t using a client-side CometD library.

Requests

The Engage Cloud APIs use the following standard HTTP verbs to perform actions on resources:

Verb Description
GET Retrieve resources.
POST Create resources.
PUT Update resources.
DELETE Delete resources.

Requests support typical parameter types like body, header, path, and query, but there is also a special body parameter called data. This is a JSON object containing any information needed to execute the action. For example, if you POST to /workspace/v3/voice/make-call, you must include a data object with the call destination:

{
    "data":{
       "destination":"5002"
    }
 }

Responses and errors

All Engage Cloud APIs return a status JSON object with a required code field. You might also see the message and detail fields, which provide more information about the response. For example:

{
    "status":{
       "code":0
    }
 }

For successful responses, you can expect to see the following codes:

Code Description
0 The synchronous operation was successful.
1 The asynchronous operation was sent successfully. You’ll find out about the state of the operation through CometD notifications. For example, if you POST to /workspace/v3/initialize-workspace, the Workspace API immediately returns a response with a status code of 1 and later follows up with the WorkspaceInitializationComplete event, delivered via CometD.
2 The synchronous operation was partially successful. This is returned if at least one action succeeds in a request that performs a bulk operation. In this case, the response includes the status object with a code of 2, as well as data and errors. The data object includes any resources that were successfully retrieved as part of the bulk operation. The errors object is an array of status objects for each of the operations that failed in the request.

All other status codes indicate an error and include a message, and possibly a detail field, with more information about the problem. For example:

{
    "status":{
       "code":500,
       "message":"Resource not found",
       "detail":{
          "ConfCode":12345
       }
    }
 }

For asynchronous requests, you might also see errors delivered via CometD notifications. For example, the Workspace API returns an EventError message that includes the related DN, along with the error code and message, and the call connection ID and call UUID, if available.

Authentication Overview

Genesys Engage APIs rely on the Authentication API for authentication and authorization. If you plan to develop with any of the APIs, you’ll need to use the Authentication API as a first step.

The Authentication API enables custom client applications to authenticate users and client applications by generating an authorization token that the client can use to access other APIs.

API Details

Find the API requests, responses, and details here:

  • Authentication API

OAuth 2.0

The Authentication API implements authorization flows described in the OAuth 2.0 standard. OAuth is an authorization framework that enables an external application to obtain limited access to an HTTP service, with the consent of the user.

For this purpose, OAuth makes a clear difference between the external application (referred to as the Client), the user (referred to as the Resource Owner), and the browser (referred to as the User Agent).

For more information about the OAuth 2.0 spec, see: RFC 6749 - The OAuth 2.0 Authorization Framework.

Supported OAuth flows

The Authentication API supports the Authorization Code Grant flow defined in OAuth. This is a two-step process:

First, the user authenticates with the Authentication API, using a sign-in form at endpoint /oauth/authorize. After a successful authentication, the client application is returned a short-lived authorization code. The authorization code is conveyed to the client application through an HTTP redirect to a specific URI owned by the client application (redirect_uri) that needs to be pre-configured (see Requirements for details).

Second, the client application exchanges this code for an access token, by using the /oauth/token endpoint, and sending client application credentials. The access token can then be used for making authorized API calls.

The Authorization Code Grant flow is secure and convenient for interactive authentication using web applications that have a server component. That backend component can store client credentials secretly, and take charge of exchanging the authorization code for an access token.

For more information about the Authorization Code Grant flow, see: RFC 6749 - The OAuth 2.0 Authorization Framework - Authorization Code Grant.

Requirements

You will need the following data for accessing the Authentication API:

  • API Base URL — Where your client can find the API.
  • API Key — You must send this as the value for x-api-key header of every request.
  • Client credentials — Credentials for your client application, a Client ID and a Client Password.
  • User credentials — Credentials of a user that wants to make use of API functions.

You can request API Key and Client Credentials for your cloud tenant from Genesys Customer Care. From your side, you need to provide the following data:

  • Allowed OAuth Redirect URIs — During an Authorization Code Grant, the client’s browser is redirected to this URI after entering valid credentials. The client application must implement an endpoint at this URI that receives the authorization code and completes the flow. The Redirect URI must adhere to RFC 6749 Section 3.1.2. In particular, it must be an absolute URI that does not include a fragment component.
  • Allowed CORS Origins (See Cross-Origin Resource Sharing) — If you are calling APIs from a web application, you may need to allow API access to your application, for the browser to permit cross-domain requests.

The Authorization Code Grant flow, step by step

The user navigates to the /oauth/authorize endpoint, which displays a sign-in form. It is up to the client to decide how the user navigates to the sign-in page. It can happen by direct navigation, or through an HTTP redirect, or inside an embedded frame or popup window.

The /oauth/authorize URL must contain query parameters defined by OAuth. For example:

GET /auth/v3/oauth/authorize?response_type=code&client_id=&state=70db3ab252ead1dd&redirect_uri=https://yourapp.com/oauthcallback
Important
In this example, the redirect_uri parameter has been provided in clear text for clarity, but it must be URL-encoded.

After a successful sign-in, the Authentication Server conveys the authorization code to your client application. To do this, it redirects the browser to the provided Redirect URI, and adds a query parameter that contains the authorization code. For example, the HTTP redirect response may look like this:

HTTP/1.1 302 Found
 Location: https://yourapp.com/oauthcallback&code=ABCXYZ&state=70db3ab252ead1dd

After checking the state value, your application can exchange the authorization code for an access token, by using the /oauth/token endpoint. You must provide client credentials through HTTP basic access authentication. For example:

POST /auth/v3/oauth/token
 Authorization: Basic 
 Content-Type: application/x-www-form-urlencoded
 
 grant_type=authorization_code&code=ABCXYZ
 &redirect_uri=https://yourapp.com/oauthcallback

Again, the redirect_uri must be URL-encoded.

Finally, the Authentication API returns an access token to your client application, inside a JSON response. For example:

HTTP/1.1 200 OK
 Content-Type': application/json;charset=utf-8
 Cache-Control': no-store
 Pragma: no-cache
 
 {'access_token': '1234abcd-5569-4fa9-bfad-12345678abcd',
  'expires_in': 43199,
  'refresh_token': '456789ef-3dce-4c82-bc1f-987654324e87',
  'scope': '*',
  'token_type': 'bearer'}

How to use the access token

Once your client application has the access token, it can access the APIs by including the token inside the Authorization header of HTTP requests to API endpoints.

Authorization: Bearer 1234abcd-5569-4fa9-bfad-12345678abcd

An access token is valid for a certain time. Once the access token expires, if your application obtained a refresh token, your application may use it to obtain a new access token, as described in OAuth 2.0 - Refreshing an Access Token.

Important
An access token is given a certain lifetime when generated, which may be affected by security settings or the user’s actions. This means a client application must not rely on the expires parameter, and must provide for dynamically reacquiring an access token.

If an application token is expired or invalid, the API returns the HTTP status code 401. This lets the application know it must get a new access token.

Troubleshooting authentication issues

Review the error messages below to see solutions for common troubleshooting scenarios.

HTTP/1.1 403 Forbidden
 {'message': 'Forbidden'}

If you get this response from any API endpoint, you are probably using an invalid API Key in your x-api-key request header.

HTTP/1.1 401 Unauthorized
 {'error': 'Unauthorized', 'error_description': 'Bad credentials'}

If you get this response from the /oauth/token endpoint, you are probably using invalid client credentials. Check you Client ID and Client Password.

HTTP/1.1 400 Bad Request
 {'error': 'invalid_grant', 'error_description': 'Bad credentials'}

If you get this response from the /oauth/token endpoint, you are probably using invalid user credentials. Check you user name and password.

Client libraries

Genesys also offers client libraries for the Authentication API in both Node.js and Java. These libraries may help you start up quicker, as they take care of a lot of the supporting code needed to make the proper HTTP requests and handle HTTP responses.

What About Basic Authentication?

HTTP Basic access authentication has been intentionally disabled. While basic authentication is the simplest way to authenticate a user, it does not provide the security benefits of OAuth. There are a few key security concerns with basic auth:

  • A hash of the user’s username and password are sent with every request; this increases the exposure of sensitive data.
  • The basic auth hash value never expires, so anyone intercepting that value will gain access to the account until the user’s password is changed.
  • When using basic authentication, the user must provide their account credentials directly to the application, which means that something other than the user themselves and the Authentication API have direct access to their account credentials.

Authentication API

Base path: /auth/v3

POST
/change-password
Change password
Change the user's password.
Parameters
Name Default Description Parameter Type Data Type Required
Authorization bearer The OAuth 2 bearer access token you received from /auth/v3/oauth/token. For example: Authorization: bearer a4b5da75-a584-4053-9227-0f0ab23ff06e header string
request Request body true
{
  "data": {
    "newPassword": "string",
    "oldPassword": "string",
    "userName": "string"
  },
  "operationId": "string"
}
ChangePasswordOperation
newPassword (string, required):
oldPassword (string, required):
userName (string, optional):
ApiRequestOfChangePasswordOperation
data (ChangePasswordOperation, required):
operationId (string, optional): Used for asynchronous operations to map request and response
Responses
Code Reason
200 Ok
{
  "data": {
  },
  "errors": [
    {
      "status": {
        "code": 0,
        "detail": {
        },
        "message": "string"
      }
    }
  ],
  "path": "string",
  "status": {
    "code": 0,
    "detail": {
    },
    "message": "string"
  }
}
ResponseStatus
code (integer):
detail (object):
message (string):
ErrorResponse
status (ResponseStatus):
ErrorResponse
data (object):
errors (array:ErrorResponse):
path (string):
status (ResponseStatus):
403 Unable to update password
503 Service unavailable
Usage
curl -X POST
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-d '{
  "data": {
    "newPassword": "string",
    "oldPassword": "string",
    "userName": "string"
  },
  "operationId": "string"
}'
"https://api-demo.com/auth/v3/change-password?"
GET
/jwt-userinfo
Get user information by access token. The information will be encoded as jwt and returned in 'X-GWS-User' header
Get information about a user by their OAuth 2 access token.
Parameters
Name Default Description Parameter Type Data Type Required
Authorization The OAuth 2 bearer access token. For example: Authorization: bearer a4b5da75-a584-4053-9227-0f0ab23ff06e header string true
Responses
Code Reason
200 Ok
{
  "data": {
  },
  "errors": [
    {
      "status": {
        "code": 0,
        "detail": {
        },
        "message": "string"
      }
    }
  ],
  "path": "string",
  "status": {
    "code": 0,
    "detail": {
    },
    "message": "string"
  }
}
ResponseStatus
code (integer):
detail (object):
message (string):
ErrorResponse
status (ResponseStatus):
ApiResponse
data (object):
errors (array:ErrorResponse):
path (string):
status (ResponseStatus):
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/auth/v3/jwt-userinfo?"
GET
/oauth/authorize
Perform authorization
Perform authorization for the Authorization Code Grant type, which is currently the only type supported by the Authentication API. For more information, see Authorization Endpoint. Note: For the optional scope parameter, the API supports only the * value.
Parameters
Name Default Description Parameter Type Data Type Required
Authorization Basic authorization. For example: Authorization: Basic Y3…MQ== header string
client_id The ID of the application or service that is registered as the client. You'll need to get this value from your Engage Cloud representative. query string true
hideTenant false Hide the tenant field in the UI for Authorization Code Grant. query boolean
redirect_uri The URI that you want users to be redirected to after entering valid credentials during an Implicit or Authorization Code grant. The Authentication API includes this as part of the URI it returns in the 'Location' header. query string true
response_type The response type to let the Authentication API know which grant flow you're using. Possible values are code for Authorization Code Grant or token for Implicit Grant. For more information about this parameter, see Response Type. query string true
scope The scope of the access request. The Authentication API supports only the * value. query string
Responses
Code Reason
302 Found
"string"
401 Unauthorized
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/auth/v3/oauth/authorize?client_id=string&hideTenant=true&redirect_uri=string&response_type=string&scope=string"
POST
/oauth/token
Retrieve access token
Retrieve an access token for the Authorization Code Grant type, which is which is currently the only type supported by the Authentication API. For more information, see Token Endpoint. Note: For the optional scope parameter, the API supports only the * value.
Parameters
Name Default Description Parameter Type Data Type Required
Accept The media type the Authentication API should should use for the response. For example: Accept: application/x-www-form-urlencoded header string
Authorization Basic authorization. For example: Authorization: Basic Y3…MQ== header string
client_id The ID of the application or service that is registered as the client. You'll need to get this value from your Engage Cloud representative. formData string
code Authorization code, see Access Token Request for details. formData string
grant_type The grant type you use to implement authentication. formData string true
password The agent's password. formData string
refresh_token See Refresh Token for details. formData string
scope The scope of the access request. The Authentication API supports only the * value. formData string
username The agent's username. formData string
Responses
Code Reason
200 Ok
{
  "access_token": "string",
  "expires_in": 0,
  "refresh_token": "string",
  "scope": "string",
  "token_type": "string"
}
DefaultOAuth2AccessToken
access_token (string):

The access token.

expires_in (integer):

The time, in seconds, before the token expiration.

refresh_token (string):

The refresh token.

scope (string):

The scope of the token.

token_type (string):

The type of access token — always 'bearer'.

400 Error as specified by standard (username/password is wrong, for example)
{
  "status": {
    "code": 0,
    "detail": {
    },
    "message": "string"
  }
}
ResponseStatus
code (integer):
detail (object):
message (string):
ErrorResponse
status (ResponseStatus):
401 Unauthorized
{
  "status": {
    "code": 0,
    "detail": {
    },
    "message": "string"
  }
}
ResponseStatus
code (integer):
detail (object):
message (string):
ErrorResponse
status (ResponseStatus):
403 Forbidden
{
  "status": {
    "code": 0,
    "detail": {
    },
    "message": "string"
  }
}
ResponseStatus
code (integer):
detail (object):
message (string):
ErrorResponse
status (ResponseStatus):
503 Service unavailable
Usage
curl -X POST
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/auth/v3/oauth/token?"
GET
/openid/userinfo
Get OpenID user information by access token
Get information about a user by their OAuth 2 access token.
Parameters
Name Default Description Parameter Type Data Type Required
Authorization The OAuth 2 bearer access token you received from /auth/v3/oauth/token. For example: Authorization: bearer a4b5da75-a584-4053-9227-0f0ab23ff06e header string true
Responses
Code Reason
200 Ok
{
  "aud": "string",
  "authorities": [
    {
      "name": "string",
      "privileges": [

      ]
    }
  ],
  "contact_center_id": "string",
  "dbid": 0,
  "email": "string",
  "environment_id": "string",
  "family_name": "string",
  "given_name": "string",
  "properties": {
    "": ""
  },
  "sub": "string",
  "user_name": "string"
}
UserRole
name (string):
privileges (array:string):
OpenIdUserInfo
aud (string):

OpenID Connect 'aud' claim. This is present if user authenticated with openid scope.

authorities (array:UserRole):

Authorities assigned to the user.

contact_center_id (string):

OpenID Connect 'aud' claim. This is present if user authenticated with openid scope.

dbid (integer):

The DBID of the corresponding user record in Configuration Server. This is present if the user belongs to a contact center.

email (string):

OpenID Connect 'email' claim. This is present if user authenticated with openid scope.

environment_id (string):

OpenID Connect 'environment_id' claim. This is present if user authenticated with openid scope.

family_name (string):

OpenID Connect 'family_name' (last name) claim. This is present if user authenticated with openid scope.

given_name (string):

OpenID Connect 'given_name' (first name) claim. This is present if user authenticated with openid scope.

properties (object):

The user's properties

sub (string):

OpenID Connect 'sub' claim. This is present if user authenticated with openid scope.

user_name (string):

OpenID Connect 'aud' claim. This is present if user authenticated with openid scope.

401 Unauthorized
503 Service unavailable
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/auth/v3/openid/userinfo?"
GET
/ping
Check connection
Return 200 if user is authenticated otherwise 403.
Responses
Code Reason
200 Ok
{
  "data": {
  },
  "errors": [
    {
      "status": {
        "code": 0,
        "detail": {
        },
        "message": "string"
      }
    }
  ],
  "path": "string",
  "status": {
    "code": 0,
    "detail": {
    },
    "message": "string"
  }
}
ResponseStatus
code (integer):
detail (object):
message (string):
ErrorResponse
status (ResponseStatus):
ApiResponse
data (object):
errors (array:ErrorResponse):
path (string):
status (ResponseStatus):
403 Prohibited
503 Service unavailable
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/auth/v3/ping?"
GET
/sign-out
Sign-out a logged in user
Sign-out the current user and invalidate either the current token or all tokens associated with the user.
Parameters
Name Default Description Parameter Type Data Type Required
Authorization The OAuth 2 bearer access token you received from /auth/v3/oauth/token. For example: Authorization: bearer a4b5da75-a584-4053-9227-0f0ab23ff06e header string true
global Specifies whether to invalidate all tokens for the current user (true) or only the current token (false). query boolean
redirectUri Specifies the URI where the browser is redirected after sign-out is successful. query string
Responses
Code Reason
200 Ok
{
  "data": {
  },
  "errors": [
    {
      "status": {
        "code": 0,
        "detail": {
        },
        "message": "string"
      }
    }
  ],
  "path": "string",
  "status": {
    "code": 0,
    "detail": {
    },
    "message": "string"
  }
}
ResponseStatus
code (integer):
detail (object):
message (string):
ErrorResponse
status (ResponseStatus):
ApiResponse
data (object):
errors (array:ErrorResponse):
path (string):
status (ResponseStatus):
401 Unauthorized
503 Service unavailable
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/auth/v3/sign-out?global=true&redirectUri=string"
POST
/sign-out
Sign-out a logged in user
Sign-out the current user and invalidate either the current token or all tokens associated with the user.
Parameters
Name Default Description Parameter Type Data Type Required
Authorization The OAuth 2 bearer access token you received from /auth/v3/oauth/token. For example: Authorization: bearer a4b5da75-a584-4053-9227-0f0ab23ff06e header string true
global Specifies whether to invalidate all tokens for the current user (true) or only the current token (false). query boolean
Responses
Code Reason
200 Ok
{
  "data": {
  },
  "errors": [
    {
      "status": {
        "code": 0,
        "detail": {
        },
        "message": "string"
      }
    }
  ],
  "path": "string",
  "status": {
    "code": 0,
    "detail": {
    },
    "message": "string"
  }
}
ResponseStatus
code (integer):
detail (object):
message (string):
ErrorResponse
status (ResponseStatus):
ApiResponse
data (object):
errors (array:ErrorResponse):
path (string):
status (ResponseStatus):
401 Unauthorized
503 Service unavailable
Usage
curl -X POST
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/auth/v3/sign-out?global=true"
GET
/userinfo
Get user information by access token
Get information about a user by their OAuth 2 access token.
Parameters
Name Default Description Parameter Type Data Type Required
Authorization The OAuth 2 bearer access token. For example: Authorization: bearer a4b5da75-a584-4053-9227-0f0ab23ff06e header string true
Responses
Code Reason
200 Ok
{
  "authorities": [
    {
      "name": "string",
      "privileges": [

      ]
    }
  ],
  "cmeUserName": "string",
  "contactCenterId": "string",
  "dbid": 0,
  "environmentId": "string",
  "loginName": "string",
  "properties": {
    "": ""
  },
  "username": "string"
}
UserRole
name (string):
privileges (array:string):
CloudUserDetails
authorities (array:UserRole):

Authorities assigned to the user.

cmeUserName (string):

The username in Configuration Server. This property is not set for users who aren't in Configuration Server (for example, applications/services, cloud system admin and so on.)

contactCenterId (string):

The ID of the contact center the user belongs to (if any).

dbid (integer):

The DBID of the corresponding user record in Configuration Server. This is present if the user belongs to a contact center.

environmentId (string):

The ID of the Genesys environment the user belongs to (if any).

loginName (string):

The username in Configuration Server. This property is not set for users who aren't in Configuration Server (for example, applications/services, cloud system admin and so on.)

properties (object):

The user's properties

username (string):

The system-wide unique name of the user. For contact center users, this includes the userName in Configuration Server, the DBID in Configuration Server and the contact center ID. For non-Configuration Server users the username can have other formats.

401 Unauthorized
503 Service unavailable
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/auth/v3/userinfo?"

Cloud Data Download Service Overview

You can use the Cloud Data Download Service (CDDS) API to develop custom applications that can integrate with Genesys to export and download your contact center data.

Warning
The Cloud Data Download Service API has been deprecated, and should be replaced by the User Data Management Overview. This page remains only as a reference for legacy users.

API Overview

Some of the CDDS features you can add to your applications include:

  • create a manual data export job
  • download exported data file
  • clone a manual export job
  • view a list of jobs/files
  • cancel a job
  • delete a job/file

Currently, CDDS only supports the export and download of contacts and interaction-based data sourced from Universal Contact Server (UCS).

API Details

Find the API requests, responses, and details here:

  • Cloud Data Download Service API

Getting started

Make sure to check out the Introduction to Engage Cloud APIs page for more information about core concepts in the Engage Cloud APIs, such as requests, responses, and CometD notifications.

Cloud Data Download Service API

Warning
The Cloud Data Download Service API has been deprecated, and should be replaced by the User Data Management API. This page remains only as a reference for legacy users.

Base path: /data-download

GET
/v3/cipher
Get certificate information
Responses
Code Reason
200 Ok
{
  "ccid": "string",
  "name": "string",
  "size": 0,
  "lastModified": "string"
}
CertificateInfo
ccid (string):
name (string):
size (integer):
lastModified (string):
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/data-download/v3/cipher?"
POST
/v3/cipher/{certificatefilename}
POST the specified certificate
Parameters
Name Default Description Parameter Type Data Type Required
certificatefilename path string true
file formData file
Responses
Code Reason
201 Created
"string"
400 Bad Request
Usage
curl -X POST
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/data-download/v3/cipher/{certificatefilename}?"
GET
/v3/data/job-statuses
Get list of job statuses
Responses
Code Reason
200 Ok
[
  {
    "label": "string",
    "value": "string"
  }
]
KeyValueItem
label (string):
value (string):
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/data-download/v3/data/job-statuses?"
GET
/v3/data/sources
Get list of sources
Responses
Code Reason
200 Ok
[
  {
    "label": "string",
    "value": "string"
  }
]
KeyValueItem
label (string):
value (string):
204 No Content
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/data-download/v3/data/sources?"
GET
/v3/data/sub-types
Get list of data subtypes
Parameters
Name Default Description Parameter Type Data Type Required
source Filter data sub types by source query string
dataType Filter data types by type query string
Responses
Code Reason
200 Ok
[
  {
    "name": "string",
    "displayName": "string",
    "source": "string",
    "dataType": "string",
    "enabled": true
  }
]
SubType
name (string):
displayName (string):
source (string):
dataType (string):
enabled (boolean):
204 No Content
400 Bad Request
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/data-download/v3/data/sub-types?source=string&dataType=string"
GET
/v3/data/types
Get list of types
Parameters
Name Default Description Parameter Type Data Type Required
source Filter data types by source query string
Responses
Code Reason
200 Ok
[
  {
    "name": "string",
    "source": "string"
  }
]
DataType
name (string):
source (string):
204 No Content
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/data-download/v3/data/types?source=string"
GET
/v3/file-metadatas
Get list of files metadata
Parameters
Name Default Description Parameter Type Data Type Required
descAsc Specifies the sort order of orderField. False for ascending order, true for descending query boolean
orderField By which field to order query string
startDate startDate query string
endDate Filter to which upload date query string
name Filter that file name contains query string
jobTitle Filter that job title contains query string
type Filter that file type contains query string
from 0 Index of the first item to return query integer
size 999999999 Maximum number of items to return query integer
Responses
Code Reason
200 Ok
{
  "count": 0,
  "from": 0,
  "items": [

  ],
  "size": 0
}
PagedResponse
count (integer):
from (integer):
items (array:object):
size (integer):
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/data-download/v3/file-metadatas?descAsc=true&orderField=string&startDate=string&endDate=string&name=string&jobTitle=string&type=string&from=0&size=0"
GET
/v3/files
Get the list of pre-signed url for specified files list
The maximum number of files is limited to 100. Also if some files cannot be found HTTP 404 is returned with a list of the files that weren’t found as json array in the body.
Parameters
Name Default Description Parameter Type Data Type Required
filename A comma-separated list of file names query string
Responses
Code Reason
200 Ok
{
  "path": "string"
}
PreSignedUri
path (string):
400 Bad Request
404 File Not Found
[
  {
    "path": "string"
  }
]
PreSignedUri
path (string):
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/data-download/v3/files?filename=string"
DELETE
/v3/files
Delete the specified files list
In case if some files cannot be deleted internal server error is returned with a list of files that weren’t deleted as json array in the body.
Parameters
Name Default Description Parameter Type Data Type Required
filename A comma-separated list of file names query string true
Responses
Code Reason
204 No Content
Usage
curl -X DELETE
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/data-download/v3/files?filename=string"
GET
/v3/files/{filename}
Get the specified file
Parameters
Name Default Description Parameter Type Data Type Required
filename The name of the file path string true
Responses
Code Reason
303 See Other
404 File Not Found
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/data-download/v3/files/{filename}?"
DELETE
/v3/files/{filename}
Delete the specified file
Parameters
Name Default Description Parameter Type Data Type Required
filename The name of the file path string true
Responses
Code Reason
204 No Content
Usage
curl -X DELETE
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/data-download/v3/files/{filename}?"
GET
/v3/version
Get version information
Responses
Code Reason
200 Ok
{
  "version": "string",
  "buildNumber": "string",
  "changeset": "string",
  "name": "string"
}
VersionInfo
version (string):
buildNumber (string):
changeset (string):
name (string):
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/data-download/v3/version?"
GET
/v4/export/history
Get list of jobs info
Parameters
Name Default Description Parameter Type Data Type Required
descAsc Specifies the sort order of orderField. False for ascending order, true for descending query boolean
orderField By which field to order query string
title Filter that title contains query string
fileName Filter that file name contains query string
type Filter that type contains query string
status Filter that file name contains query string
from 0 Index of the first item to return query integer
size 999999999 Maximum number of items to return query integer
Responses
Code Reason
200 Ok
{
  "count": 0,
  "from": 0,
  "items": [

  ],
  "size": 0
}
PagedResponse
count (integer):
from (integer):
items (array:object):
size (integer):
204 No Content
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/data-download/v4/export/history?descAsc=true&orderField=string&title=string&fileName=string&type=string&status=string&from=0&size=0"
DELETE
/v4/export/history
Delete the specified jobs list
In case if some jobs cannot be deleted internal server error is returned with a list of jobs that weren't deleted as json array in the body. A job with status in progress cannot be deleted.
Parameters
Name Default Description Parameter Type Data Type Required
jobIDs A comma-separated list of job IDs query string true
Responses
Code Reason
204 No Content
400 Bad Request
Usage
curl -X DELETE
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/data-download/v4/export/history?jobIDs=string"
GET
/v4/export/history/{id}
Get specified jobs history
Parameters
Name Default Description Parameter Type Data Type Required
id The id of the job path string true
Responses
Code Reason
200 Ok
{
  "id": 0,
  "type": "string",
  "source": "string",
  "title": "string",
  "fileSplitSize": "string",
  "fileName": "string",
  "fileSize": 0,
  "status": "string",
  "createdDate": "string",
  "dateFrom": "string",
  "dateTo": "string",
  "description": "string",
  "media": [

  ],
  "progress": 0,
  "parentId": 0
}
JobInfo
id (integer):
type (string):
source (string):
title (string):
fileSplitSize (string):
filename (string):
fileSize (integer):
status (string):
createdDate (string):
dateFrom (string):
dateTo (string):
description (string):
media (array:string):
progress (integer):
parentId (integer):
400 Bad Request
404 ManualJob Not Found
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/data-download/v4/export/history/{id}?"
DELETE
/v4/export/history/{id}
Delete the specified job
A job in progress can not be deleted.
Parameters
Name Default Description Parameter Type Data Type Required
id The id of the job path string true
Responses
Code Reason
204 No Content
400 Bad Request
Usage
curl -X DELETE
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/data-download/v4/export/history/{id}?"
GET
/v4/export/history/{id}/progress
Get currently running job completion progress
Return value is between 0 and 100 percent.
Parameters
Name Default Description Parameter Type Data Type Required
id The id of the job history path string true
Responses
Code Reason
200 Ok
{
  "progress": 0,
  "status": "string"
}
JobProgress
progress (integer):
status (string):
400 Bad Request
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/data-download/v4/export/history/{id}/progress?"
GET
/v4/export/jobs
Get list of jobs info
Parameters
Name Default Description Parameter Type Data Type Required
descAsc Specifies the sort order of orderField. False for ascending order, true for descending query boolean
orderField By which field to order query string
title Filter that title contains query string
type Filter that type contains query string
scheduleType Filter that file name contains query string
suspend Filter that schedule type contains query boolean
from 0 Index of the first item to return query integer
size 999999999 Maximum number of items to return query integer
Responses
Code Reason
200 Ok
{
  "count": 0,
  "from": 0,
  "items": [

  ],
  "size": 0
}
PagedResponse
count (integer):
from (integer):
items (array:object):
size (integer):
204 No Content
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/data-download/v4/export/jobs?descAsc=true&orderField=string&title=string&type=string&scheduleType=string&suspend=true&from=0&size=0"
POST
/v4/export/jobs
Save specified manualJob
Parameters
Name Default Description Parameter Type Data Type Required
body body
{
  "source": "string",
  "title": "string",
  "timeFrame": {
    "all": true,
    "dateFrom": "string",
    "dateTo": "string"
  },
  "fileSplitSize": "string",
  "description": "string",
  "schedulerParam": {
    "immediately": true,
    "cron": "string",
    "runs": "string",
    "startDate": "string"
  },
  "jobParams": {
    "fileSplitSize": "string",
    "type": "string",
    "media": [

    ]
  },
  "suspended": "string"
}
TimeFrame
all (boolean, optional):
dateFrom (string, optional):
dateTo (string, optional):
SchedulerParam
immediately (boolean, optional):
cron (string, optional):
runs (string, optional):
startDate (string, optional):
UcsJobParams
fileSplitSize (string, optional):
type (string, required):
media (array:string, required):
Job
source (string, required): source of job
title (string, required): title of job
timeFrame (TimeFrame, required): export time parameter of job
fileSplitSize (string, optional): size of splitted file
description (string, optional): A description
schedulerParam (SchedulerParam, required): scheduler parameter of job
jobParams (UcsJobParams, required): parameters of job
suspended (string, required): suspended job
Responses
Code Reason
202 Accepted
{
  "id": 0,
  "type": "string",
  "source": "string",
  "title": "string",
  "fileSplitSize": "string",
  "fileName": "string",
  "fileSize": 0,
  "status": "string",
  "createdDate": "string",
  "dateFrom": "string",
  "dateTo": "string",
  "description": "string",
  "media": [

  ],
  "progress": 0,
  "parentId": 0
}
JobInfo
id (integer):
type (string):
source (string):
title (string):
fileSplitSize (string):
fileName (string):
fileSize (integer):
status (string):
createdDate (string):
dateFrom (string):
dateTo (string):
description (string):
media (array:string):
progress (integer):
parentId (integer):
400 Bad Request
Usage
curl -X POST
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-d '{
  "source": "string",
  "title": "string",
  "timeFrame": {
    "all": true,
    "dateFrom": "string",
    "dateTo": "string"
  },
  "fileSplitSize": "string",
  "description": "string",
  "schedulerParam": {
    "immediately": true,
    "cron": "string",
    "runs": "string",
    "startDate": "string"
  },
  "jobParams": {
    "fileSplitSize": "string",
    "type": "string",
    "media": [

    ]
  },
  "suspended": "string"
}'
"https://api-demo.com/data-download/v4/export/jobs?"
DELETE
/v4/export/jobs
Delete the specified jobs list
In case if some jobs cannot be deleted internal server error is returned with a list of jobs that weren't deleted as json array in the body. A job with status in progress cannot be deleted.
Parameters
Name Default Description Parameter Type Data Type Required
jobIDs A comma-separated list of job IDs query string true
Responses
Code Reason
204 No Content
400 Bad Request
Usage
curl -X DELETE
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/data-download/v4/export/jobs?jobIDs=string"
POST
/v4/export/jobs/cancel/{id}
Cancel running
Parameters
Name Default Description Parameter Type Data Type Required
id The id of the job path string true
Responses
Code Reason
200 Ok
400 Bad Request
404 Not Found
Usage
curl -X POST
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/data-download/v4/export/jobs/cancel/{id}?"
POST
/v4/export/jobs/resume/{id}
Save specified manualJob
Parameters
Name Default Description Parameter Type Data Type Required
id The id of the job path string true
Responses
Code Reason
200 Ok
{
  "id": 0,
  "type": "string",
  "source": "string",
  "title": "string",
  "fileSplitSize": "string",
  "fileName": "string",
  "fileSize": 0,
  "status": "string",
  "createdDate": "string",
  "dateFrom": "string",
  "dateTo": "string",
  "description": "string",
  "media": [

  ],
  "progress": 0,
  "parentId": 0
}
JobInfo
id (integer):
type (string):
source (string):
title (string):
fileSplitSize (string):
fileName (string):
fileSize (integer):
status (string):
createdDate (string):
dateFrom (string):
dateTo (string):
description (string):
media (array:string):
progress (integer):
parentId (integer):
400 Bad Request
404 Job Not Found
Usage
curl -X POST
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/data-download/v4/export/jobs/resume/{id}?"
POST
/v4/export/jobs/suspend/{id}
Save specified manualJob
Parameters
Name Default Description Parameter Type Data Type Required
id The id of the job path string true
Responses
Code Reason
200 Ok
{
  "id": 0,
  "type": "string",
  "source": "string",
  "title": "string",
  "fileSplitSize": "string",
  "fileName": "string",
  "fileSize": 0,
  "status": "string",
  "createdDate": "string",
  "dateFrom": "string",
  "dateTo": "string",
  "description": "string",
  "media": [

  ],
  "progress": 0,
  "parentId": 0
}
JobInfo
id (integer):
type (string):
source (string):
title (string):
fileSplitSize (string):
fileName (string):
fileSize (integer):
status (string):
createdDate (string):
dateFrom (string):
dateTo (string):
description (string):
media (array:string):
progress (integer):
parentId (integer):
400 Bad Request
404 Job Not Found
Usage
curl -X POST
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/data-download/v4/export/jobs/suspend/{id}?"
GET
/v4/export/jobs/{id}
Get specified job
Parameters
Name Default Description Parameter Type Data Type Required
id The id of the job path string true
Responses
Code Reason
200 Ok
{
  "id": 0,
  "type": "string",
  "source": "string",
  "title": "string",
  "fileSplitSize": "string",
  "fileName": "string",
  "fileSize": 0,
  "status": "string",
  "createdDate": "string",
  "dateFrom": "string",
  "dateTo": "string",
  "description": "string",
  "media": [

  ],
  "progress": 0,
  "parentId": 0
}
JobInfo
id (integer):
type (string):
source (string):
title (string):
fileSplitSize (string):
fileName (string):
fileSize (integer):
status (string):
createdDate (string):
dateFrom (string):
dateTo (string):
description (string):
media (array:string):
progress (integer):
parentId (integer):
400 Bad Request
404 ManualJob Not Found
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/data-download/v4/export/jobs/{id}?"
PUT
/v4/export/jobs/{id}
Save specified manualJob
Parameters
Name Default Description Parameter Type Data Type Required
id path string true
body body
{
  "source": "string",
  "title": "string",
  "timeFrame": {
    "all": true,
    "dateFrom": "string",
    "dateTo": "string"
  },
  "fileSplitSize": "string",
  "description": "string",
  "schedulerParam": {
    "immediately": true,
    "cron": "string",
    "runs": "string",
    "startDate": "string"
  },
  "jobParams": {
    "fileSplitSize": "string",
    "type": "string",
    "media": [

    ]
  },
  "suspended": "string"
}
TimeFrame
all (boolean, optional):
dateFrom (string, optional):
dateTo (string, optional):
SchedulerParam
immediately (boolean, optional):
cron (string, optional):
runs (string, optional):
startDate (string, optional):
UcsJobParams
fileSplitSize (string, optional):
type (string, required):
media (array:string, required):
Job
source (string, required): source of job
title (string, required): title of job
timeFrame (TimeFrame, required): export time parameter of job
fileSplitSize (string, optional): size of splitted file
description (string, optional): A description
schedulerParam (SchedulerParam, required): scheduler parameter of job
jobParams (UcsJobParams, required): parameters of job
suspended (string, required): suspended job
Responses
Code Reason
200 Ok
{
  "id": 0,
  "type": "string",
  "source": "string",
  "title": "string",
  "fileSplitSize": "string",
  "fileName": "string",
  "fileSize": 0,
  "status": "string",
  "createdDate": "string",
  "dateFrom": "string",
  "dateTo": "string",
  "description": "string",
  "media": [

  ],
  "progress": 0,
  "parentId": 0
}
JobInfo
id (integer):
type (string):
source (string):
title (string):
fileSplitSize (string):
fileName (string):
fileSize (integer):
status (string):
createdDate (string):
dateFrom (string):
dateTo (string):
description (string):
media (array:string):
progress (integer):
parentId (integer):
400 Bad Request
404 Job Not Found
Usage
curl -X PUT
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-d '{
  "source": "string",
  "title": "string",
  "timeFrame": {
    "all": true,
    "dateFrom": "string",
    "dateTo": "string"
  },
  "fileSplitSize": "string",
  "description": "string",
  "schedulerParam": {
    "immediately": true,
    "cron": "string",
    "runs": "string",
    "startDate": "string"
  },
  "jobParams": {
    "fileSplitSize": "string",
    "type": "string",
    "media": [

    ]
  },
  "suspended": "string"
}'
"https://api-demo.com/data-download/v4/export/jobs/{id}?"
DELETE
/v4/export/jobs/{id}
Delete the specified job
A job in progress can not be deleted.
Parameters
Name Default Description Parameter Type Data Type Required
id The id of the job path string true
Responses
Code Reason
204 No Content
400 Bad Request
Usage
curl -X DELETE
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/data-download/v4/export/jobs/{id}?"

Interactions Webhook Overview

The Interactions Webhook provides notifications about state changes in chat and secure email interactions. Digital Channels supports notifications for the following events:

  • STARTED - A new interaction is created in Universal Contact Server and submitted into the interaction queue.
  • FINISHED - The interaction processing was stopped by Agent Desktop or another workflow.
Important
Contact your Genesys representative to configure webhooks for Digital Channels.

Webhook Overview

The webhook is delivered as a POST request. Digital Channels expects the third-party system to respond with 200 OK. If the third-party system doesn’t respond with 200 OK or is not available, Digital Channels will try to redeliver the webhook according to the configuration for retry timeout and retry attempts. Contact your Genesys representative for details about this configuration.

The webhook POST request contains an X-Hub-Signature header with the SHA1 signature of the post payload. The signature is calculated using the keyed-hash message authentication code (HMAC), where the key is the app secret. The signature is then prefixed with sha1=. The third-party system should verify this signature to validate the integrity and origin of the payload.

API Details

Find the API requests, responses, and details here:

  • Interactions Webhook

Getting Started

Make sure to check out the Introduction to Engage Cloud APIs page for more information about core concepts in the Engage Cloud APIs, such as requests and responses.

Interactions Webhook

Base path: /nexus/v3

POST
/some/interactions/webhook/path
Send interaction state change events
Send interaction state change events to the third-party system. Events are sent when an interaction is STARTED, which means it was created in Universal Contact Server and submitted in an interaction queue, or FINISHED, which means processing was stopped by Agent Desktop or the workflow.
Parameters
Name Default Description Parameter Type Data Type Required
X-Hub-Signature The request signature, for example sha1=hash. The hash is built using the body of the message and secret for the channel. header string true
X-B3-TraceId A unique trace ID for the request. header string
events The events payload. body true
{
  "operationId": "f6c49d91-926b-4473-b2f3-8d8fd295c968",
  "data": {
    "entities": [
      {
      }
    ]
  }
}
entity
id (string, optional): The interaction ID.
8e09e19f-b8ba-4db0-b6e7-dfc8a7776176
mediaType (string, optional): The interaction's media type.
chat Valid Values: chat, email
interactionSubtype (string, optional): The interaction's subtype
InboundNew Valid Values: InboundNew, Outbound, SMS, WhatsApp, FacebookPublic, FacebookPrivate, TwitterPublic, TwitterPrivate
selfUri (string, optional): The URL to retrieve the interaction data.
NexusURL/nexus/v3/chat/sessions/49a0ed5c-77b8-4091-a0c2-1d904ff709b0/8e09e19f-b8ba-4db0-b6e7-dfc8a7776176
Event
event (string, optional): The type of event.
FINISHED Valid Values: STARTED, FINISHED
entity (object, optional):
data
entities (array:Event, optional):
EventsPayload
operationId (string, optional): The ID of the operation.
f6c49d91-926b-4473-b2f3-8d8fd295c968
data (object, optional):
Responses
Code Reason
200 Operation was successful
{
  "status": {
    "code": 0,
    "message": "string"
  },
  "data": {
    "ids": [
      {
        "id": "string"
      }
    ]
  }
}
status
code (integer):
message (string):
ids
id (string):
data
ids (array:object):
EventsResponse
status (object):
data (object):
500 Internal Server Error
Usage
curl -X POST
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-d '{
  "operationId": "f6c49d91-926b-4473-b2f3-8d8fd295c968",
  "data": {
    "entities": [
      {
      }
    ]
  }
}'
"https://api-demo.com/nexus/v3/some/interactions/webhook/path?"

Secure Email Overview

The Secure Email API lets you send and receive messages, with attachments, between Digital Channels and your secure messaging platform.

API Details

Find the API requests, responses, and details here:

  • Secure Email API

Getting Started

Make sure to check out the Introduction to Engage Cloud APIs page for more information about core concepts in the Engage Cloud APIs, such as requests and responses.

Secure Email API

Base path: /nexus/v3

GET
/securemail
Get secure emails
Get a list of secure emails for the specified email address.
Parameters
Name Default Description Parameter Type Data Type Required
address The email address of the consumer. query string true
status all Specifies the status of emails to count - unread, read or all (both read and unread). query string
index 0 The start index the API should use to get emails. query integer
count 10 The number of secure emails the API returns. query integer
securebox Securebox name. Allows to specify optional securebox name to send email to or read from. securebox provides ability to communicate with the same contact within several different departments independently. (contains only A-Z, a-z, 0-9, and must be from 3 to 16 characters long) query string
x-api-key A unique key required to use the API. If you do not already have this API key, contact your Customer Care representative. header string true
Responses
Code Reason
200 Ok
{}
listSecureMailResponse
referenceId (referenceId):
operationId (operationId):
status (status):
data (ArrayOfSecureMail):
status
code (string):

Error code of an operation. Valid Values: SUCCESS, FAILURE, INVALID_CLIENT_TOKEN, INVALID_CONTACT_CENTER, INVALID_SESSION, INVALID_PARTICIPANT, INVALID_TRANSPORT, INVALID_PARAMETER, INVALID_ENDPOINT, INVALID_NICKNAME, INVALID_FILE_TYPE

message (string):

Status message.

detail (string):

Additional information.

genericResponse
referenceId (referenceId):
operationId (operationId):
status (status):
400 Invalid request parameters provided.
{
  "referenceId": {
  },
  "operationId": {
  },
  "status": {
    "code": "string",
    "message": "string",
    "detail": "string"
  }
}
status
code (string):

Error code of an operation. Valid Values: SUCCESS, FAILURE, INVALID_CLIENT_TOKEN, INVALID_CONTACT_CENTER, INVALID_SESSION, INVALID_PARTICIPANT, INVALID_TRANSPORT, INVALID_PARAMETER, INVALID_ENDPOINT, INVALID_NICKNAME, INVALID_FILE_TYPE

message (string):

Status message.

detail (string):

Additional information.

genericResponse
referenceId (referenceId):
operationId (operationId):
status (status):
404 Entity with specified ID not found.
{
  "referenceId": {
  },
  "operationId": {
  },
  "status": {
    "code": "string",
    "message": "string",
    "detail": "string"
  }
}
status
code (string):

Error code of an operation. Valid Values: SUCCESS, FAILURE, INVALID_CLIENT_TOKEN, INVALID_CONTACT_CENTER, INVALID_SESSION, INVALID_PARTICIPANT, INVALID_TRANSPORT, INVALID_PARAMETER, INVALID_ENDPOINT, INVALID_NICKNAME, INVALID_FILE_TYPE

message (string):

Status message.

detail (string):

Additional information.

genericResponse
referenceId (referenceId):
operationId (operationId):
status (status):
500 Server error occurred.
{
  "referenceId": {
  },
  "operationId": {
  },
  "status": {
    "code": "string",
    "message": "string",
    "detail": "string"
  }
}
status
code (string):

Error code of an operation. Valid Values: SUCCESS, FAILURE, INVALID_CLIENT_TOKEN, INVALID_CONTACT_CENTER, INVALID_SESSION, INVALID_PARTICIPANT, INVALID_TRANSPORT, INVALID_PARAMETER, INVALID_ENDPOINT, INVALID_NICKNAME, INVALID_FILE_TYPE

message (string):

Status message.

detail (string):

Additional information.

genericResponse
referenceId (referenceId):
operationId (operationId):
status (status):
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/nexus/v3/securemail?address=string&status=string&index=0&count=0&securebox=string"
POST
/securemail
Send secure email
Send a secure email. The email is delivered to Genesys as a web form and routed as a standard email.
Parameters
Name Default Description Parameter Type Data Type Required
securebox Securebox name. Allows to specify optional securebox name to send email to or read from. securebox provides ability to communicate with the same contact within several different departments independently. (contains only A-Z, a-z, 0-9, and must be from 3 to 16 characters long) query string
xxNAMExx A unique key required to use the API. If you do not already have this API key, contact your Customer Care representative. header string true
data body
{object}
data
data (, optional):
operationId (operationId, optional):
Responses
Code Reason
200 Ok
{}
createSecureMailResponse
referenceId (referenceId):
operationId (operationId):
status (status):
secureMailId (string):

The unique ID of the secure email. bff348eb-dd5f-47d6-bf96-0e75b8ecf7ca

selfUri (string):
status
code (string):

Error code of an operation. Valid Values: SUCCESS, FAILURE, INVALID_CLIENT_TOKEN, INVALID_CONTACT_CENTER, INVALID_SESSION, INVALID_PARTICIPANT, INVALID_TRANSPORT, INVALID_PARAMETER, INVALID_ENDPOINT, INVALID_NICKNAME, INVALID_FILE_TYPE

message (string):

Status message.

detail (string):

Additional information.

genericResponse
referenceId (referenceId):
operationId (operationId):
status (status):
400 Invalid request parameters provided.
{
  "referenceId": {
  },
  "operationId": {
  },
  "status": {
    "code": "string",
    "message": "string",
    "detail": "string"
  }
}
status
code

(string):

Error code of an operation. Valid Values: SUCCESS, FAILURE, INVALID_CLIENT_TOKEN, INVALID_CONTACT_CENTER, INVALID_SESSION, INVALID_PARTICIPANT, INVALID_TRANSPORT, INVALID_PARAMETER, INVALID_ENDPOINT, INVALID_NICKNAME, INVALID_FILE_TYPE
message (string):

Status message.

detail (string):

Additional information.

genericResponse
referenceId (referenceId):
operationId (operationId):
status (status):
500 Server error occurred.
{
  "referenceId": {
  },
  "operationId": {
  },
  "status": {
    "code": "string",
    "message": "string",
    "detail": "string"
  }
}
status
code

(string):

Error code of an operation. Valid Values: SUCCESS, FAILURE, INVALID_CLIENT_TOKEN, INVALID_CONTACT_CENTER, INVALID_SESSION, INVALID_PARTICIPANT, INVALID_TRANSPORT, INVALID_PARAMETER, INVALID_ENDPOINT, INVALID_NICKNAME, INVALID_FILE_TYPE
message (string):

Status message.

detail (string):

Additional information.

genericResponse
referenceId (referenceId):
operationId (operationId):
status (status):
Usage
curl -X POST
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-d '{object}'
"https://api-demo.com/nexus/v3/securemail?securebox=string"
GET
/securemail/count
Get a count of unread, read or all secure emails
Get a count of unread, read or all secure emails for the specified email address.
Parameters
Name Default Description Parameter Type Data Type Required
address The email address of the consumer. query string true
status all Specifies the status of emails to count - unread, read or all (both read and unread). query string
securebox Securebox name. Allows to specify optional securebox name to send email to or read from. securebox provides ability to communicate with the same contact within several different departments independently. (contains only A-Z, a-z, 0-9, and must be from 3 to 16 characters long) query string
x-api-key A unique key required to use the API. If you do not already have this API key, contact your Customer Care representative. header string true
Responses
Code Reason
200 Ok
{}
countSecureMailResponse
referenceId (referenceId):
operationId (operationId):
status (status):
data (object):
status
code (string):

Error code of an operation. Valid Values: SUCCESS, FAILURE, INVALID_CLIENT_TOKEN, INVALID_CONTACT_CENTER, INVALID_SESSION, INVALID_PARTICIPANT, INVALID_TRANSPORT, INVALID_PARAMETER, INVALID_ENDPOINT, INVALID_NICKNAME, INVALID_FILE_TYPE

message (string):

Status message.

detail (string):

Additional information.

genericResponse
referenceId (referenceId):
operationId (operationId):
status (status):
data
count (integer):

The count of secure emails of requested type for the contact. 20

400 Invalid request parameters provided.
{
  "referenceId": {
  },
  "operationId": {
  },
  "status": {
    "code": "string",
    "message": "string",
    "detail": "string"
  }
}
status
code (string):

Error code of an operation. Valid Values: SUCCESS, FAILURE, INVALID_CLIENT_TOKEN, INVALID_CONTACT_CENTER, INVALID_SESSION, INVALID_PARTICIPANT, INVALID_TRANSPORT, INVALID_PARAMETER, INVALID_ENDPOINT, INVALID_NICKNAME, INVALID_FILE_TYPE

message (string):

Status message.

detail (string):

Additional information.

genericResponse
referenceId (referenceId):
operationId (operationId):
status (status):
404 Entity with specified ID not found.
{
  "referenceId": {
  },
  "operationId": {
  },
  "status": {
    "code": "string",
    "message": "string",
    "detail": "string"
  }
}
status
code (string):

Error code of an operation. Valid Values: SUCCESS, FAILURE, INVALID_CLIENT_TOKEN, INVALID_CONTACT_CENTER, INVALID_SESSION, INVALID_PARTICIPANT, INVALID_TRANSPORT, INVALID_PARAMETER, INVALID_ENDPOINT, INVALID_NICKNAME, INVALID_FILE_TYPE

message (string):

Status message.

detail (string):

Additional information.

genericResponse
referenceId (referenceId):
operationId (operationId):
status (status):
500 Server error occurred.
{
  "referenceId": {
  },
  "operationId": {
  },
  "status": {
    "code": "string",
    "message": "string",
    "detail": "string"
  }
}
status
code (string):

Error code of an operation. Valid Values: SUCCESS, FAILURE, INVALID_CLIENT_TOKEN, INVALID_CONTACT_CENTER, INVALID_SESSION, INVALID_PARTICIPANT, INVALID_TRANSPORT, INVALID_PARAMETER, INVALID_ENDPOINT, INVALID_NICKNAME, INVALID_FILE_TYPE

message (string):

Status message.

detail (string):

Additional information.

genericResponse
referenceId (referenceId):
operationId (operationId):
status (status):
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/nexus/v3/securemail/count?address=string&status=string&securebox=string"
GET
/securemail/{secureMailId}
Get secure email content
Get the content of a secure email.
Parameters
Name Default Description Parameter Type Data Type Required
read If set to true, the API changes the status to "read" for inbound and outbound emails and stops the inbound interaction from routing. query boolean
x-api-key A unique key required to use the API. If you do not already have this API key, contact your Customer Care representative. header string true
secureMailId The ID of the secure email. path string true
Responses
Code Reason
200 Ok
{}
retrieveSecureMailResponse
referenceId

(referenceId):

operationId

(operationId):

status

(status):

secureMail

():

status
code (string):

Error code of an operation. Valid Values: SUCCESS, FAILURE, INVALID_CLIENT_TOKEN, INVALID_CONTACT_CENTER, INVALID_SESSION, INVALID_PARTICIPANT, INVALID_TRANSPORT, INVALID_PARAMETER, INVALID_ENDPOINT, INVALID_NICKNAME, INVALID_FILE_TYPE

message (string):

Status message.

detail (string):

Additional information.

genericResponse
referenceId (referenceId):
operationId (operationId):
status (status):
400 Invalid request parameters provided.
{
  "referenceId": {
  },
  "operationId": {
  },
  "status": {
    "code": "string",
    "message": "string",
    "detail": "string"
  }
}
status
code (string):

Error code of an operation. Valid Values: SUCCESS, FAILURE, INVALID_CLIENT_TOKEN, INVALID_CONTACT_CENTER, INVALID_SESSION, INVALID_PARTICIPANT, INVALID_TRANSPORT, INVALID_PARAMETER, INVALID_ENDPOINT, INVALID_NICKNAME, INVALID_FILE_TYPE

message (string):

Status message.

detail (string):

Additional information.

genericResponse
referenceId (referenceId):
operationId (operationId):
status (status):
500 Server error occurred.
{
  "referenceId": {
  },
  "operationId": {
  },
  "status": {
    "code": "string",
    "message": "string",
    "detail": "string"
  }
}
status
code (string):

Error code of an operation. Valid Values: SUCCESS, FAILURE, INVALID_CLIENT_TOKEN, INVALID_CONTACT_CENTER, INVALID_SESSION, INVALID_PARTICIPANT, INVALID_TRANSPORT, INVALID_PARAMETER, INVALID_ENDPOINT, INVALID_NICKNAME, INVALID_FILE_TYPE

message (string):

Status message.

detail (string):

Additional information.

genericResponse
referenceId (referenceId):
operationId (operationId):
status (status):
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/nexus/v3/securemail/{secureMailId}?read=true"
DELETE
/securemail/{secureMailId}
Mark as read or delete a secure email
Mark the secure email as read if the remove query parameter is either absent or set to 'read'. You can delete the secure email entirely if remove is set to 'purge'. To delete the secure email from the list of secure emails but keep it in the contact database, set remove to 'delete'.
Parameters
Name Default Description Parameter Type Data Type Required
remove read You can either mark a secure email as read, mark a secure email as deleted, or delete an email completely using the following values: * read - Mark the secure email as read. * true - Mark the secure email as read. (deprecated) * \ - Mark the secure email as read. (deprecated) * delete - Mark the secure email as deleted. The API will not return the email in requests to get the list of secure emails, but will keep it in the contact database. * purge - Delete the secure email from the list of emails and contact database. query string
x-api-key A unique key required to use the API. If you do not already have this API key, contact your Customer Care representative. header string true
secureMailId The ID of the secure email. path string true
Responses
Code Reason
200 Ok
{}
retrieveSecureMailResponse
referenceId (referenceId):
operationId (operationId):
status (status):
secureMail ():
status
code (string):

Error code of an operation. Valid Values: SUCCESS, FAILURE, INVALID_CLIENT_TOKEN, INVALID_CONTACT_CENTER, INVALID_SESSION, INVALID_PARTICIPANT, INVALID_TRANSPORT, INVALID_PARAMETER, INVALID_ENDPOINT, INVALID_NICKNAME, INVALID_FILE_TYPE

message (string):

Status message.

detail (string):

Additional information.

genericResponse
referenceId (referenceId):
operationId (operationId):
status (status):
404 Entity with specified ID not found.
{
  "referenceId": {
  },
  "operationId": {
  },
  "status": {
    "code": "string",
    "message": "string",
    "detail": "string"
  }
}
status
code (string):

Error code of an operation. Valid Values: SUCCESS, FAILURE, INVALID_CLIENT_TOKEN, INVALID_CONTACT_CENTER, INVALID_SESSION, INVALID_PARTICIPANT, INVALID_TRANSPORT, INVALID_PARAMETER, INVALID_ENDPOINT, INVALID_NICKNAME, INVALID_FILE_TYPE

message (string):

Status message.

detail (string):

Additional information.

genericResponse
referenceId (referenceId):
operationId (operationId):
status (status):
Usage
curl -X DELETE
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/nexus/v3/securemail/{secureMailId}?remove=string"
GET
/securemail/{secureMailId}/userdata
Get secure email userdata
Get the attached userdata of a secure email (some internal keys may be omitted).
Parameters
Name Default Description Parameter Type Data Type Required
x-api-key A unique key required to use the API. If you do not already have this API key, contact your Customer Care representative. header string true
secureMailId The ID of the secure email. path string true
Responses
Code Reason
200 Ok
{}
retrieveSecureMailUserdataResponse
referenceId (referenceId):
operationId (operationId):
status (status):
data (object):

Interaction userdata.

status
code (string):

Error code of an operation. Valid Values: SUCCESS, FAILURE, INVALID_CLIENT_TOKEN, INVALID_CONTACT_CENTER, INVALID_SESSION, INVALID_PARTICIPANT, INVALID_TRANSPORT, INVALID_PARAMETER, INVALID_ENDPOINT, INVALID_NICKNAME, INVALID_FILE_TYPE

message (string):

Status message.

detail (string):

Additional information.

genericResponse
referenceId (referenceId):
operationId (operationId):
status (status):
400 Invalid request parameters provided.
{
  "referenceId": {
  },
  "operationId": {
  },
  "status": {
    "code": "string",
    "message": "string",
    "detail": "string"
  }
}
status
code (string):

Error code of an operation. Valid Values: SUCCESS, FAILURE, INVALID_CLIENT_TOKEN, INVALID_CONTACT_CENTER, INVALID_SESSION, INVALID_PARTICIPANT, INVALID_TRANSPORT, INVALID_PARAMETER, INVALID_ENDPOINT, INVALID_NICKNAME, INVALID_FILE_TYPE

message (string):

Status message.

detail (string):

Additional information.

genericResponse
referenceId (referenceId):
operationId (operationId):
status (status):
500 Server error occurred.
{
  "referenceId": {
  },
  "operationId": {
  },
  "status": {
    "code": "string",
    "message": "string",
    "detail": "string"
  }
}
status
code (string):

Error code of an operation. Valid Values: SUCCESS, FAILURE, INVALID_CLIENT_TOKEN, INVALID_CONTACT_CENTER, INVALID_SESSION, INVALID_PARTICIPANT, INVALID_TRANSPORT, INVALID_PARAMETER, INVALID_ENDPOINT, INVALID_NICKNAME, INVALID_FILE_TYPE

message (string):

Status message.

detail (string):

Additional information.

genericResponse
referenceId (referenceId):
operationId (operationId):
status (status):
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/nexus/v3/securemail/{secureMailId}/userdata?"

Statistics Overview

API Overview

You can work with the API in two modes:

  1. Create a subscription and receive notifications. This is the preferred approach if you need up-to-date information over a period of time. When you create a subscription, you can start receiving calculated statistics. These statistics are either pre-configured for your account/contact center and or come from the definitions you provided in the request.
  2. Get the current values of statistics without a subscription. This is useful if your client can’t maintain a CometD connection or if your application requires this information only once. This API works with statistics that are pre-configured for your contact center.

The Statistics API is divided into the following categories:

  • Requests (/statistics) — Subscribe to statistics, unsubscribe from statistics, and get the current value of statistics without a subscription.
  • Notifications (/notifications) — Implements CometD channels for statistics notifications.
Important
The examples on this page illustrate only positive cases. For a full list of possible response codes, refer to the API reference information for the requests.

API Details

Find the API requests, responses, and details here:

  • Statistics API
  • Statistics Notifications API

Client libraries

Genesys also offers client libraries for the Statistics API in both Node.js and Java. These libraries simplify how you interact with the API and they take care of a lot of the supporting code needed to make HTTP requests and enable CometD. Genesys recommends using the client libraries if possible. For help deciding if you should use them, check out the Getting Started page.

There are also some Statistics tutorials that demonstrate how to use the client libraries. See Tutorials for details.

Authentication

In order to initialize and use the Statistics API, you first need to authenticate with the Authentication Client Library or the Authentication API.

Get the values of statistics without a subscription

You can get the current value of predefined statistics from Stat Server without a subscription by making a POST request to /statistics/v3/operations/get-statistic-ex.

This operation has just one mandatory body parameter called statistics.

Sample request

POST to /statistics/v3/operations/get-statistic-ex

Here’s the JSON body included with the above request:

{
    "data":{
       "statistics":[
          {
             "name":"CurrentAgentState",
             "objectType":"Agent",
             "objectId":"agent2"
          },
          {
             "name":"TimeInCurrentState",
             "objectType":"Agent",
             "objectId":"agent2"
          }
       ]
    }
 }

Sample JSON response body

{
    "status":{
       "code":0
    },
    "data":{
       "statistics":[
          {
             "name":"CurrentAgentState",
             "objectType":"Agent",
             "objectId":"agent2",
             "value":{
                ...
             },
             "timestamp":1490830620000
          },
          {
             "name":"TimeInCurrentState",
             "objectType":"Agent",
             "objectId":"agent2",
             "value":{
                ...
             },
             "timestamp":1490830620000
          }
       ]
    }
 }

You can also use an API call to get the current value of one valid statistic from Stat Server by making a GET request to /statistics/v3/statistic-values/{statisticName}.

This request accepts two mandatory query parameters, objectType and objectId.

Sample request

GET /statistics/v3/statistic-values/{statisticName}?objectType=XXX&objectId=YYY

Sample JSON response body

 {
    "status":{
       "code":0
    },
    "data":{
       "statistic":{
          "value":{
             ...
          },
          "timestamp":1490830620000
       }
    }
 }

Create a subscription

To create a subscription, POST to the following path: /statistics/v3/subscriptions

This POST allows an optional query parameter verbose= and the body is JSON with the operationId and data parameters.

Sample request

POST to /statistics/v3/subscriptions

Here’s the JSON body included with the above request:

{
    "operationId":"UUID1",
    "data":{
       "statistics":[
          {
             "statisticId":"UUID2",
             "objectId":"agent",
             "objectType":"Agent",
             "name":"AverageHandlingTime"
          },
          {
             "statisticId":"UUID3",
             "objectId":"agent",
             "objectType":"Agent",
             "definition":{
                "notificationMode":"Periodical",
                "notificationFrequency":10,
                "insensitivity":1,
                "category":"TotalAdjustedTime",
                "subject":"DNStatus",
                "intervalType":"GrowingWindow",
                "mainMask":"WaitForNextCall",
                "dynamicTimeProfile":"00:00",
                "dynamicFilter":"Media=voice",
                "maskType":"DN"
             }
          }
       ]
    }
 }

In the above sample, AverageHandlingTime references the corresponding statistic (pre-configured) for the given contact center.

Sample JSON response body

 {
    "status":{
       "code":0
    },
    "data":{
       "subscriptionId":"UUID1",
       "operationId":"UUID1",
       "statistics":[
          {
             "statisticId":"UUID2",
             "objectId":"agent",
             "objectType":"Agent",
             "name":"AverageHandlingTime",
             "value":{
                ...
             },
             "timestamp":1490830620000
          },
          {
             "statisticId":"UUID3",
             "objectId":"agent",
             "objectType":"Agent",
             "value":{
                ...
             },
             "timestamp":1490830620000
          }
       ]
    }
 }

In the above sample:

  • The status code is 0 because this is synchronous operation.
  • The subscriptionId is filled from the operationId.

Get the values of statistics in a subscription

To retrieve the values of a set of statistics that was opened within a subscription, you need to make a GET request to the following path: /subscriptions/{id}/statistic-values

The GET allows two optional query parameters,verbose= and statisticIds=.

Sample request

GET /statistics/v3/subscriptions/UUID1/statistic-values

Sample JSON response body

{
    "status":{
       "code":0
    },
    "data":{
       "subscriptionId":"UUID1",
       "statistics":[
          {
             "statisticId":"UUID2",
             "objectId":"agent",
             "objectType":"Agent",
             "name":"AverageHandlingTime",
             "value":{
                ...
             },
             "timestamp":1490830620000
          },
          {
             "statisticId":"UUID3",
             "objectId":"agent",
             "objectType":"Agent",
             "value":{
                ...
             },
             "timestamp":1490830620000
          }
       ]
    }
 }

In the above sample:

  • The status code is 0 because this is synchronous operation.

Delete a subscription

You can delete a subscription by sending a DELETE request to the following path: /statistics/v3/subscriptions/{id}. This closes all statistics associated with the specified subscription. It’s a fire-and-forget operation that always returns a success response.

CometD notifications

You can subscribe to CometD notifications about service state and statistic value updates for statistics in your subscription.

Statistic value updates

Notification topic: /statistics/v3/updates

Notification sample:

{
    "name":"StatisticUpdate",
    "topic":"/statistics/v3/updates",
    "data":{
       "statistics":[
          {
             "subscriptionId":"UUID1",
             "statisticId":"UUID2",
             "value":{
                ...
             },
             "timestamp":1490830620000
          }
       ]
    }
 }

Where:

  • subscriptionId - The ID of the subscription the statistic is associated with.
  • statisticId - The ID of the statistic.
  • value - The value of the statistic.
  • timestamp - The time the statistic was generated (provided by Stat Server).

Service state

If the Statistics service is unable to connect to internal server(s) it needs to communicate with, it notifies subscribers with a ServiceStateChange message where the serviceState is UNAVAILABLE. When this happens, the Statistics service drops all subscriptions, so you’ll need to re-create your subscriptions when the service is available again.

Notification topic: /statistics/v3/service

Notification sample:

Service is unavailable

{
    "data":{
       "serviceState":"UNAVAILABLE"
    },
    "name":"ServiceStateChange",
    "topic":"/statistics/v3/service"
}

Service is available again

{
    "data":{
       "serviceState":"AVAILABLE"
    },
    "name":"ServiceStateChange",
    "topic":"statistics/v3/service"
}

Statistics API

Base path: /statistics/v3

POST
/operations/get-statistic-ex
Get the values of a set of statistics
Get the current value of predefined statistics from Stat Server without a subscription.
Parameters
Name Default Description Parameter Type Data Type Required
statistics The set of statistics you want to get the values of from Stat Server. body true
{object}
Responses
Code Reason
200 Ok
{
  "data": {
    "statistics": [
      {
        "name": "string",
        "objectId": "string",
        "objectType": "string",
        "timestamp": 0,
        "value": {
        }
      }
    ]
  },
  "errors": [
    {
      "status": {
        "code": 0,
        "detail": {
        },
        "message": "string"
      }
    }
  ],
  "path": "string",
  "status": {
    "code": 0,
    "detail": {
    },
    "message": "string"
  }
}
PeekedStatisticValue
name (string):

The name of the statistic.

objectId (string):

The ID of the object (in Stat Server's terms).

objectType (string):

The type of object.

timestamp (integer):

The timestamp when the statistic value was generated (provided by Stat Server).

value (object):

The value of the statistic. Its structure reflects the structure of the Stat Server message.

PeekedStatistics
statistics (array:PeekedStatisticValue):
ResponseStatus
code (integer):
detail (object):
message (string):
ErrorResponse
status (ResponseStatus):
PeekedStatisticsResponse
data (PeekedStatistics):
errors (array:ErrorResponse):
path (string):
status (ResponseStatus):
400 Bad Request
{
  "data": {
  },
  "errors": [
    {
      "status": {
        "code": 0,
        "detail": {
        },
        "message": "string"
      }
    }
  ],
  "path": "string",
  "status": {
    "code": 0,
    "detail": {
    },
    "message": "string"
  }
}
ResponseStatus
code (integer):
detail (object):
message (string):
ErrorResponse
status (ResponseStatus):
ApiResponse
data (object):
errors (array:ErrorResponse):
path (string):
status (ResponseStatus):
500 Internal server error
{
  "data": {
  },
  "errors": [
    {
      "status": {
        "code": 0,
        "detail": {
        },
        "message": "string"
      }
    }
  ],
  "path": "string",
  "status": {
    "code": 0,
    "detail": {
    },
    "message": "string"
  }
}
ResponseStatus
code (integer):
detail (object):
message (string):
ErrorResponse
status (ResponseStatus):
ApiResponse
data (object):
errors (array:ErrorResponse):
path (string):
status (ResponseStatus):
503 Service Unavailable
{
  "data": {
  },
  "errors": [
    {
      "status": {
        "code": 0,
        "detail": {
        },
        "message": "string"
      }
    }
  ],
  "path": "string",
  "status": {
    "code": 0,
    "detail": {
    },
    "message": "string"
  }
}
ResponseStatus
code (integer):
detail (object):
message (string):
ErrorResponse
status (ResponseStatus):
ApiResponse
data (object):
errors (array:ErrorResponse):
path (string):
status (ResponseStatus):
504 Backend timeout
{
  "data": {
  },
  "errors": [
    {
      "status": {
        "code": 0,
        "detail": {
        },
        "message": "string"
      }
    }
  ],
  "path": "string",
  "status": {
    "code": 0,
    "detail": {
    },
    "message": "string"
  }
}
ResponseStatus
code (integer):
detail (object):
message (string):
ErrorResponse
status (ResponseStatus):
ApiResponse
data (object):
errors (array:ErrorResponse):
path (string):
status (ResponseStatus):
Usage
curl -X POST
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-d '{object}'
"https://api-demo.com/statistics/v3/operations/get-statistic-ex?"
GET
/statistic-values/{statisticName}
Get the value of a single statistic
Get the current value of a statistic from Stat Server.
Parameters
Name Default Description Parameter Type Data Type Required
objectId The ID of the object. query string true
objectType The type of object to which the statistic is applied. query string true
statisticName The name of the pre-configured statistic to retrieve. path string true
Responses
Code Reason
200 Ok
{
  "data": {
    "statistic": {
      "name": "string",
      "objectId": "string",
      "objectType": "string",
      "timestamp": 0,
      "value": {
      }
    }
  },
  "errors": [
    {
      "status": {
        "code": 0,
        "detail": {
        },
        "message": "string"
      }
    }
  ],
  "path": "string",
  "status": {
    "code": 0,
    "detail": {
    },
    "message": "string"
  }
}
PeekedStatisticValue
name (string):

The name of the statistic.

objectId (string):

The ID of the object (in Stat Server's terms).

objectType (string):

The type of object.

timestamp (integer):

The timestamp when the statistic value was generated (provided by Stat Server).

value (object):

The value of the statistic. Its structure reflects the structure of the Stat Server message.

PeekedStatistic
statistic (PeekedStatisticValue):
ResponseStatus
code (integer):
detail (object):
message (string):
ErrorResponse
status (ResponseStatus):
PeekedStatisticResponse
data (PeekedStatistic):
errors (array:ErrorResponse):
path (string):
status (ResponseStatus):
400 Bad Request
{
  "data": {
  },
  "errors": [
    {
      "status": {
        "code": 0,
        "detail": {
        },
        "message": "string"
      }
    }
  ],
  "path": "string",
  "status": {
    "code": 0,
    "detail": {
    },
    "message": "string"
  }
}
ResponseStatus
code (integer):
detail (object):
message (string):
ErrorResponse
status (ResponseStatus):
ApiResponse
data (object):
errors (array:ErrorResponse):
path (string):
status (ResponseStatus):
404 NotFound
{
  "data": {
  },
  "errors": [
    {
      "status": {
        "code": 0,
        "detail": {
        },
        "message": "string"
      }
    }
  ],
  "path": "string",
  "status": {
    "code": 0,
    "detail": {
    },
    "message": "string"
  }
}
ResponseStatus
code (integer):
detail (object):
message (string):
ErrorResponse
status (ResponseStatus):
ApiResponse
data (object):
errors (array:ErrorResponse):
path (string):
status (ResponseStatus):
500 Internal server error
{
  "data": {
  },
  "errors": [
    {
      "status": {
        "code": 0,
        "detail": {
        },
        "message": "string"
      }
    }
  ],
  "path": "string",
  "status": {
    "code": 0,
    "detail": {
    },
    "message": "string"
  }
}
ResponseStatus
code (integer):
detail (object):
message (string):
ErrorResponse
status (ResponseStatus):
ApiResponse
data (object):
errors (array:ErrorResponse):
path (string):
status (ResponseStatus):
503 Service Unavailable
{
  "data": {
  },
  "errors": [
    {
      "status": {
        "code": 0,
        "detail": {
        },
        "message": "string"
      }
    }
  ],
  "path": "string",
  "status": {
    "code": 0,
    "detail": {
    },
    "message": "string"
  }
}
ResponseStatus
code (integer):
detail (object):
message (string):
ErrorResponse
status (ResponseStatus):
ApiResponse
data (object):
errors (array:ErrorResponse):
path (string):
status (ResponseStatus):
504 Backend timeout
{
  "data": {
  },
  "errors": [
    {
      "status": {
        "code": 0,
        "detail": {
        },
        "message": "string"
      }
    }
  ],
  "path": "string",
  "status": {
    "code": 0,
    "detail": {
    },
    "message": "string"
  }
}
ResponseStatus
code (integer):
detail (object):
message (string):
ErrorResponse
status (ResponseStatus):
ApiResponse
data (object):
errors (array:ErrorResponse):
path (string):
status (ResponseStatus):


Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/statistics/v3/statistic-values/{statisticName}?objectId=string&objectType=string"
POST
/subscriptions
Open a subscription
Open a subscription for the specified set of statistics.
Parameters
Name Default Description Parameter Type Data Type Required
statistics Definitions of the statistics to monitor. body true
{object}
verbose INFO Specifies whether the Statistics API should return additional information about opened statistics in the response. Possible values are: OFF and INFO. query string
Responses
Code Reason
200 Ok
{
  "data": {
    "operationId": "string",
    "statistics": [
      {
        "name": "string",
        "objectId": "string",
        "objectType": "string",
        "statisticId": "string",
        "timestamp": 0,
        "value": {
        }
      }
    ],
    "subscriptionId": "string"
  },
  "errors": [
    {
      "status": {
        "code": 0,
        "detail": {
        },
        "message": "string"
      }
    }
  ],
  "path": "string",
  "status": {
    "code": 0,
    "detail": {
    },
    "message": "string"
  }
}
StatisticValue
name (string):

The name of the statistic used during the subscribe procedure.

objectId (string):

The ID of the object (in Stat Server's terms).

objectType (string):

The type of object.

statisticId (string):

The ID of the statistic. This ID is unique inside the subscription.

timestamp (integer):

The timestamp when the statistic value was generated (provided by Stat Server).

value (object):

The value of the statistic. Its structure reflects the structure of the Stat Server message.

StatisticData
operationId (string):
statistics (array:StatisticValue):
subscriptionId (string):
ResponseStatus
code (integer):
detail (object):
message (string):
ErrorResponse
status (ResponseStatus):
StatisticDataResponse
data (StatisticData):
errors (array:ErrorResponse):
path (string):
status (ResponseStatus):
400 Bad Request
{
  "data": {
  },
  "errors": [
    {
      "status": {
        "code": 0,
        "detail": {
        },
        "message": "string"
      }
    }
  ],
  "path": "string",
  "status": {
    "code": 0,
    "detail": {
    },
    "message": "string"
  }
}
ResponseStatus
code (integer):
detail (object):
message (string):
ErrorResponse
status (ResponseStatus):
ApiResponse
data (object):
errors (array:ErrorResponse):
path (string):
status (ResponseStatus):
403 Forbidden
{
  "data": {
  },
  "errors": [
    {
      "status": {
        "code": 0,
        "detail": {
        },
        "message": "string"
      }
    }
  ],
  "path": "string",
  "status": {
    "code": 0,
    "detail": {
    },
    "message": "string"
  }
}
ResponseStatus
code (integer):
detail (object):
message (string):
ErrorResponse
status (ResponseStatus):
ApiResponse
data (object):
errors (array:ErrorResponse):
path (string):
status (ResponseStatus):
500 Internal server error
{
  "data": {
  },
  "errors": [
    {
      "status": {
        "code": 0,
        "detail": {
        },
        "message": "string"
      }
    }
  ],
  "path": "string",
  "status": {
    "code": 0,
    "detail": {
    },
    "message": "string"
  }
}
ResponseStatus
code (integer):
detail (object):
message (string):
ErrorResponse
status (ResponseStatus):
ApiResponse
data (object):
errors (array:ErrorResponse):
path (string):
status (ResponseStatus):
503 Service Unavailable
{
  "data": {
  },
  "errors": [
    {
      "status": {
        "code": 0,
        "detail": {
        },
        "message": "string"
      }
    }
  ],
  "path": "string",
  "status": {
    "code": 0,
    "detail": {
    },
    "message": "string"
  }
}
ResponseStatus
code (integer):
detail (object):
message (string):
ErrorResponse
status (ResponseStatus):
ApiResponse
data (object):
errors (array:ErrorResponse):
path (string):
status (ResponseStatus):
504 Backend timeout
{
  "data": {
  },
  "errors": [
    {
      "status": {
        "code": 0,
        "detail": {
        },
        "message": "string"
      }
    }
  ],
  "path": "string",
  "status": {
    "code": 0,
    "detail": {
    },
    "message": "string"
  }
}
ResponseStatus
code (integer):
detail (object):
message (string):
ErrorResponse
status (ResponseStatus):
ApiResponse
data (object):
errors (array:ErrorResponse):
path (string):
status (ResponseStatus):
Usage
curl -X POST
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-d '{object}'
"https://api-demo.com/statistics/v3/subscriptions?verbose=string"
DELETE
/subscriptions/{id}
Delete a subscription
Delete the specified subscription by closing all its statistics. This is a fire-and-forget operation and it always returns a success response.
Parameters
Name Default Description Parameter Type Data Type Required
id The ID of the subscription to delete. path string true
Responses
Code Reason
200 Ok
{
  "data": {
  },
  "errors": [
    {
      "status": {
        "code": 0,
        "detail": {
        },
        "message": "string"
      }
    }
  ],
  "path": "string",
  "status": {
    "code": 0,
    "detail": {
    },
    "message": "string"
  }
}
ResponseStatus
code (integer):
detail (object):
message (string):
ErrorResponse
status (ResponseStatus):
ApiResponse
data (object):
errors (array:ErrorResponse):
path (string):
status (ResponseStatus):
Usage
curl -X DELETE
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/statistics/v3/subscriptions/{id}?"
GET
/subscriptions/{id}/statistic-values
Get the values of statistics in a subscription
Get the values of a set of statistics that was opened with a subscription.
Parameters
Name Default Description Parameter Type Data Type Required
id The ID of the subscription. path string true
statisticIds A comma-delimited list of statistic IDs that belong to the specified subscription. If omitted, the Statistics API returns the current values of all statistics opened within the subscription. If specified, the Statistics API returns values for the statistics with the specified IDs. query string
verbose INFO Specifies whether the Statistics API should return additional information about opened statistics in the response. Possible values are: OFF and INFO. query string
Responses
Code Reason
200 Ok
{
  "data": {
    "operationId": "string",
    "statistics": [
      {
        "name": "string",
        "objectId": "string",
        "objectType": "string",
        "statisticId": "string",
        "timestamp": 0,
        "value": {
        }
      }
    ],
    "subscriptionId": "string"
  },
  "errors": [
    {
      "status": {
        "code": 0,
        "detail": {
        },
        "message": "string"
      }
    }
  ],
  "path": "string",
  "status": {
    "code": 0,
    "detail": {
    },
    "message": "string"
  }
}
StatisticValue
name (string):

The name of the statistic used during the subscribe procedure.

objectId (string):

The ID of the object (in Stat Server's terms).

objectType (string):

The type of object.

statisticId (string):

The ID of the statistic. This ID is unique inside the subscription.

timestamp (integer):

The timestamp when the statistic value was generated (provided by Stat Server).

value (object):

The value of the statistic. Its structure reflects the structure of the Stat Server message.

StatisticData
operationId (string):
statistics (array:StatisticValue):
subscriptionId (string):
ResponseStatus
code (integer):
detail (object):
message (string):
ErrorResponse
status (ResponseStatus):
StatisticDataResponse
data (StatisticData):
errors (array:ErrorResponse):
path (string):
status (ResponseStatus):
500 Internal server error
{
  "data": {
  },
  "errors": [
    {
      "status": {
        "code": 0,
        "detail": {
        },
        "message": "string"
      }
    }
  ],
  "path": "string",
  "status": {
    "code": 0,
    "detail": {
    },
    "message": "string"
  }
}
ResponseStatus
code (integer):
detail (object):
message (string):
ErrorResponse
status (ResponseStatus):
ApiResponse
data (object):
errors (array:ErrorResponse):
path (string):
status (ResponseStatus):
503 Service Unavailable
{
  "data": {
  },
  "errors": [
    {
      "status": {
        "code": 0,
        "detail": {
        },
        "message": "string"
      }
    }
  ],
  "path": "string",
  "status": {
    "code": 0,
    "detail": {
    },
    "message": "string"
  }
}
ResponseStatus
code (integer):
detail (object):
message (string):
ErrorResponse
status (ResponseStatus):
ApiResponse
data (object):
errors (array:ErrorResponse):
path (string):
status (ResponseStatus):
504 Backend timeout
{
  "data": {
  },
  "errors": [
    {
      "status": {
        "code": 0,
        "detail": {
        },
        "message": "string"
      }
    }
  ],
  "path": "string",
  "status": {
    "code": 0,
    "detail": {
    },
    "message": "string"
  }
}
ResponseStatus
code (integer):
detail (object):
message (string):
ErrorResponse
status (ResponseStatus):
ApiResponse
data (object):
errors (array:ErrorResponse):
path (string):
status (ResponseStatus):
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/statistics/v3/subscriptions/{id}/statistic-values?statisticIds=string&verbose=string"

Statistics Notifications API

Base path: /statistics/v3

POST
/notifications
CometD endpoint
CometD endpoint
Responses
Code Reason
200 Ok
500 Error
Usage
curl -X POST
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/statistics/v3/notifications?"
POST
/notifications/connect
CometD connect
See the CometD documentation for details.
Responses
Code Reason
200 Ok
500 Internal Server Error
Usage
curl -X POST
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/statistics/v3/notifications/connect?"
POST
/notifications/disconnect
CometD disconnect
See the CometD documentation for details.
Responses
Code Reason
200 Ok
500 Internal Server Error
Usage
curl -X POST
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/statistics/v3/notifications/disconnect?"
POST
/notifications/handshake
CometD handshake
See the CometD documentation for details.
Responses
Code Reason
200 Ok
500 Internal Server Error
Usage
curl -X POST
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/statistics/v3/notifications/handshake?"
POST
/notifications/subscribe
Subscribe to CometD channel notification
See the CometD documentation for details.

Current channels:

  • /statistics/v3/service - information about service state
  • /statistics/v3/updates - statistics updates
Responses
Code Reason
200 Ok
500 Internal Server Error
Usage
curl -X POST
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/statistics/v3/notifications/subscribe?"
POST
/notifications/unsubscribe
Unsubscribe from CometD channel notification
See the CometD documentation for details.
Responses
Code Reason
200 Ok
500 Internal Server Error
Usage
curl -X POST
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/statistics/v3/notifications/unsubscribe?"

Task Routing Overview

Use the Task Routing API to submit workitems to Genesys from third-party applications such as Salesforce or NetSuite. You can also use the API to get, update and stop submitted workitems.

API Overview

Once workitems are submitted to Genesys through the API, you can use other Genesys applications to route them to agents, get interactions that were processed by agents, and view reports about those interactions. See the overview documentation on the PureEngage Docs site for details about Task Routing and how you should use this API as part of the larger solution.

API Details

Find the API requests, responses, and details here:

  • Openmedia API

Getting Started

Make sure to check out the Introduction to Engage Cloud APIs page for more information about core concepts in the Engage Cloud APIs, such as requests and responses.

Openmedia API

Base path: /nexus/v3

POST
/openmedia/{openMediaService}/interactions
Create an interaction
Create a new open media interaction.
Parameters
Name Default Description Parameter Type Data Type Required
x-api-key A unique key required to use the API. If you do not already have this API key, contact your Customer Care representative. header string true
openMediaService A unique name of the open media service path string true
data body
{object}
createInteractionRequest
externalId (string, optional): The external ID to associate with the new interaction.
parentInteractionId (string, optional): The ID of the parent interaction.
receivedAt (string, optional):
userData (object, optional):
data
data (object, optional):
Responses
Code Reason
200 Successful response
{object}
400 Invalid request parameters provided
{object}
404 Resource is not found
{object}
409 Resource already exists
{object}
500 Internal Server Error
{object}
Usage
curl -X POST
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-d '{object}'
"https://api-demo.com/nexus/v3/openmedia/{openMediaService}/interactions?"
GET
/openmedia/{openMediaService}/interactions/ext_{externalId}
Get an interaction by external ID
Get the interaction specified by its external ID.
Parameters
Name Default Description Parameter Type Data Type Required
x-api-key A unique key required to use the API. If you do not already have this API key, contact your Customer Care representative. header string true
openMediaService A unique name of the open media service path string true
externalId Interaction external ID path string true
Responses
Code Reason
200 Successful response
{object}
400 Invalid request parameters provided
{object}
404 Resource is not found
{object}
500 Internal Server Error
{object}
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/nexus/v3/openmedia/{openMediaService}/interactions/ext_{externalId}?"
POST
/openmedia/{openMediaService}/interactions/ext_{externalId}/stop
Stop an interaction by external ID
Stop the interaction specified by its external ID.
Parameters
Name Default Description Parameter Type Data Type Required
x-api-key A unique key required to use the API. If you do not already have this API key, contact your Customer Care representative. header string true
openMediaService A unique name of the open media service path string true
externalId Interaction external ID path string true
data body
{object}
stopInteractionRequest
reasonSystemName (string, optional):
reasonDescription (string, optional):
data
data (stopInteractionRequest, optional):
Responses
Code Reason
200 Successful response
{object}
400 Invalid request parameters provided
{object}
404 Resource is not found
{object}
500 Internal Server Error
{object}
Usage
curl -X POST
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-d '{object}'
"https://api-demo.com/nexus/v3/openmedia/{openMediaService}/interactions/ext_{externalId}/stop?"
POST
/openmedia/{openMediaService}/interactions/ext_{externalId}/update
Update an interaction by external ID
Update the properties of an interaction specified by its external ID.
Parameters
Name Default Description Parameter Type Data Type Required
x-api-key A unique key required to use the API. If you do not already have this API key, contact your Customer Care representative. header string true
openMediaService A unique name of the open media service path string true
externalId Interaction external ID path string true
data body true
{object}
changePropertiesRequest
changedProperties (object, optional):
addedProperties (object, optional):
deletedProperties (array:string, optional):
data
data (changePropertiesRequest, optional):
Responses
Code Reason
200 Successful response
{object}
400 Invalid request parameters provided
{object}
404 Resource is not found
{object}
500 Internal Server Error
{object}
Usage
curl -X POST
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-d '{object}'
"https://api-demo.com/nexus/v3/openmedia/{openMediaService}/interactions/ext_{externalId}/update?"
GET
/openmedia/{openMediaService}/interactions/{interactionId}
Get an interaction
Get the specified interaction.
Parameters
Name Default Description Parameter Type Data Type Required
x-api-key A unique key required to use the API. If you do not already have this API key, contact your Customer Care representative. header string true
openMediaService A unique name of the open media service path string true
interactionId Interaction ID path string true
Responses
Code Reason
200 Successful response
{object}
400 Invalid request parameters provided
{object}
404 Resource is not found
{object}
500 Internal Server Error
{object}
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/nexus/v3/openmedia/{openMediaService}/interactions/{interactionId}?"
POST
/openmedia/{openMediaService}/interactions/{interactionId}/stop
Stop an interaction
Stop the specified interaction.
Parameters
Name Default Description Parameter Type Data Type Required
x-api-key A unique key required to use the API. If you do not already have this API key, contact your Customer Care representative. header string true
openMediaService A unique name of the open media service path string true
interactionId Interaction ID path string true
data body
{object}
stopInteractionRequest
reasonSystemName (string, optional):
reasonDescription (string, optional):
data
data (stopInteractionRequest, optional):
Responses
Code Reason
200 Successful response
{object}
400 Invalid request parameters provided
{object}
404 Resource is not found
{object}
500 Internal Server Error
{object}
Usage
curl -X POST
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-d '{object}'
"https://api-demo.com/nexus/v3/openmedia/{openMediaService}/interactions/{interactionId}/stop?"
POST
/openmedia/{openMediaService}/interactions/{interactionId}/update
Update an interaction
Update the properties of the specified interaction.
Parameters
Name Default Description Parameter Type Data Type Required
x-api-key A unique key required to use the API. If you do not already have this API key, contact your Customer Care representative. header string true
openMediaService A unique name of the open media service path string true
interactionId Interaction ID path string true
data body true
{object}
changePropertiesRequest
changedProperties (object, optional):
addedProperties (object, optional):
deletedProperties (array:string, optional):
data
data (changePropertiesRequest, optional):
Responses
Code Reason
200 Successful response
{object}
400 Invalid request parameters provided
{object}
404 Resource is not found
{object}
500 Internal Server Error
{object}
Usage
curl -X POST
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-d '{object}'
"https://api-demo.com/nexus/v3/openmedia/{openMediaService}/interactions/{interactionId}/update?"

Third-Party Messaging Overview

API Overview

When a consumer sends a message, the third-party system must send a POST request to deliver the message to the agent in Digital Channels chat. In return, the agent’s response is delivered to the third-party system through a webhook that Digital Channels sends as a POST request. The third-party system may also send notifications about errors and different types of receipts.

Important
Contact your Genesys representative to configure webhooks for Digital Channels.

Digital Channels requires the third-party system to respond to webhooks as follows:

  • Send a response to the webhook within 10 seconds.
  • The response for processed webhooks must have a 2XX HTTP code. We recommend 200 OK. The 201 Accepted code is reserved for when Digital Channels supports multiple messages per webhook.
  • The response body should contain the messageId field with the unique identifier of the message. Digital Channels uses this ID when it processes delivery receipts to find the message in the history and possibly update its status.
  • The response for webhooks that cannot be processed right now but should be redelivered must have a 5XX HTTP code. Digital Channels tries to redeliver the webhook according to the configuration for retry timeout and retry attempts. Contact your Genesys representative for details about this configuration.

The webhook POST request contains an X-Hub-Signature header with the SHA1 signature of the post payload. The signature is calculated using the keyed-hash message authentication code (HMAC), where the key is the app secret. The signature is then prefixed with sha1=. The third-party system should verify this signature to validate the integrity and origin of the payload.

API Details

Find the API requests, responses, and details here:

  • Third-Party Messaging API
  • Third-Party Messaging Webhook

Getting Started

Make sure to check out the Introduction to Engage Cloud APIs page for more information about core concepts in the Engage Cloud APIs, such as requests and responses.

Example: SMS data flow

1. Message API request

POST /channels/0123456789/messages HTTP/1.1
 x-ccid: 0ff723ff-6c6f-44e0-9ce3-ce579337eadd
 X-Hub-Signature: sha1=9577d7a3922516701c2e14ca043145eb2057b803
 
 {
   "messages": [
     {
       "channel": {
         "from": {
           "id": "16504661149"
         },
         "to": {
           "id": "0123456789"
         }
       },
       "type": "Text",
       "text": "Consumer message text"
     }
   ]
 }

2. Message API response

{
   "status": {
     "code": 0
   },
   "data": {
     "ids": [
       "1613473893265-0"
     ]
   }
 }

3. Message Webhook request

POST / HTTP/1.1
 X-Hub-Signature: sha1=20a00a8efbe06a43e403e1975873930a027a8f67
 X-B3-TraceId: 05bb858a-3468-4c82-a8ce-3b1a9c4e4b67
 
 {
   "channel": {
     "id": "0123456789",
     "type": "sms",
     "from": {
       "id": "0123456789"
     },
     "to": {
       "id": "16504661149"
     },
     "messageId": "1613474523265-0"
   },
   "type": "Text",
   "text": "Agent message text"
 }

4. Message Webhook response

{
   "messageId": "1613474523265-0"
 }

5. Receipt API request

POST /channels/0123456789/messages HTTP/1.1
 x-ccid: 0ff723ff-6c6f-44e0-9ce3-ce579337eadd
 X-Hub-Signature: sha1=8d9652cea2d2289ae76fc8b870b96598c6d94b05
 
 {
   "messages": [
     {
       "channel": {
         "from": {
           "id": "0123456789"
         },
         "to": {
           "id": "16504661149"
         },
         "messageId": "1613474523265-0"
       },
       "type": "Receipt",
       "status": "Delivered"
     }
   ]
 }

6. Receipt API response

{
   "status": {
     "code": 0
   }
 }

Example: Email data flow

1. Email Webhook request

POST / HTTP/1.1
 X-Hub-Signature: sha1=0959a2a00f3f57075d06094e5d9cdc32128f9ec8
 X-B3-TraceId: 5767ea58-1511-4a98-bc56-7f34c43e3a51
 
 {
   "channel": {
     "id": "company.com",
     "type": "email",
     "from": {
       "id": "no-reply@company.com",
       "name": "Sender display name"
     },
     "to": [
       {
         "id": "recipient-1@mail.com",
         "name": "First Recipient"
       },
       {
         "id": "recipient-2@mail.com",
         "name": "Second Recipient"
       }
     ],
     "messageId": "f7acbac6-68db-4031-aec2-4bbd02627c4b",
     "context": {
       "replyTo": {
         "id": "reply-to@company.com",
         "name": "Responder display name"
       }
     }
   },
   "type": "Email",
   "subject": "Subject",
   "content": [
     {
       "type": "text",
       "text": "Plain text email body"
     },
     {
       "type": "html",
       "text": "Html email body"
     }
   ]
 }

2. Email Webhook response

{
   "messageId": "f7acbac6-68db-4031-aec2-4bbd02627c4b"
 }

3. Receipt API request

POST /channels/company.com/messages HTTP/1.1
 x-ccid: 0ff723ff-6c6f-44e0-9ce3-ce579337eadd
 X-Hub-Signature: sha1=f6d8c023c909270eb2d50abdf519151dc80e128a
 
 {
   "messages": [
     {
       "channel": {
         "from": {
           "id": "no-reply@company.com"
         },
         "to": {
           "id": "recipient-1@mail.com"
         },
         "messageId": "f7acbac6-68db-4031-aec2-4bbd02627c4b"
       },
       "type": "Receipt",
       "status": "Failed",
       "reasons": [
         {
           "code": 350,
           "message": "Message not allowed. Your account has been suspended."
         }
       ]
     }
   ]
 }

4. Receipt API response

{
   "status": {
     "code": 0
   }
 }

Delivery receipts

The third-party system can use delivery receipts to notify Digital Channels about delivery status or errors sending content messages. For usage examples, see the requests payload above for messages with type="Receipt".

The following table describes possible values of the status field.

Status Description
Delivered The message was delivered to the recipient.
Removed A previously published message was removed.
Failed The message was not delivered.

If status="Failed", the third-party system can attach a reason code and an optional message to the reasons field of the message.

The following table describes possible values of failure reason codes.

Reason code Description
305 The message has expired.
310 Rate limit reached.
350 Message not allowed.
510 Unsupported message.
512 Unknown message.
520 Invalid message structure.
530 Invalid destination.
500 General error.

Third-Party Messaging API

Base path: /nexus/v3

POST
/channels/{channelId}/media
Upload a media resource
Upload a binary media file to Genesys to use in a RichMedia message. The response to this request includes a URL you can use as the image in the outgoing message payload.
Parameters
Name Default Description Parameter Type Data Type Required
X-Hub-Signature The request signature, for example sha1=hash. The hash is built using the body of the message and secret for the channel. header string true
x-ccid The ID of the contact center the message is sent within. header string true
X-B3-TraceId The unique trace ID for the request. header string
channelId The ID of the channel. path string true
file The file to upload. formData file
Responses
Code Reason
200 Operation was successful
{
  "status": {
    "code": 0,
    "message": "string"
  },
  "data": {
    "mediaId": "string",
    "url": "string",
    "filename": "string",
    "mimetype": "string",
    "length": 0
  }
}
status
code (integer):

A code that can provide more information when an error occurs.

message (string):

Provides additional information when a request returns an error response.

data
mediaId (string):

The ID of the media resource. bb4a9f86-dbbb-4464-a669-650da94fbad6

url (string):

A synthetic URL to be used as reference in the outgoing message payload. genesys://nexus/bb4a9f86-dbbb-4464-a669-650da94fbad6

filename (string):

The name of the media resource. MyImage

mimetype (string):

The type of file. image/jpeg

length (integer):

The length of the media file.

UploadResponse
status (object):
data (object):
400 Bad Request
{}
BadRequest
status (object):
status
code (integer):

A code that can provide more information when an error occurs.

message (string):

Provides additional information when a request returns an error response.

ResponseError
status (object):
401 Unauthorized
{}
Unauthorized
status (object):
status
code (integer):

A code that can provide more information when an error occurs.

message (string):

Provides additional information when a request returns an error response.

ResponseError
status (object):
403 Forbidden
{}
Forbidden
status (object):
status
code (integer):

A code that can provide more information when an error occurs.

message (string):

Provides additional information when a request returns an error response.

ResponseError
status (object):
404 Channel not found
{}
NotFound
status (object):
status
code (integer):

A code that can provide more information when an error occurs.

message (string):

Provides additional information when a request returns an error response.

ResponseError
status (object):
415 Unsupported Media Type
{}
UnsupportedMedia
status (object):
status
code (integer):

A code that can provide more information when an error occurs.

message (string):

Provides additional information when a request returns an error response.

ResponseError
status (object):
500 Internal Server Error
{}
ServerError
status (object):
status
code (integer):

A code that can provide more information when an error occurs.

message (string):

Provides additional information when a request returns an error response.

ResponseError
status (object):
Usage
curl -X POST
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/nexus/v3/channels/{channelId}/media?"
GET
/channels/{channelId}/media/{mediaId}
Download a media resource
Download a media resource you previously uploaded to Genesys with POST /channels/{channelId}/media.
Parameters
Name Default Description Parameter Type Data Type Required
X-Hub-Signature The request signature, for example sha1=hash. The hash is built using the body of the message and secret for the channel. header string true
x-ccid The ID of the contact center the message is sent within. header string true
X-B3-TraceId The unique trace ID for the request. header string
channelId The ID of the channel. path string true
mediaId The media resource ID. path string true
Responses
Code Reason
200 Operation was successful
400 Bad Request
{}
BadRequest
status (object):
status
code (integer):

A code that can provide more information when an error occurs.

message (string):

Provides additional information when a request returns an error response.

ResponseError
status (object):
401 Unauthorized
{}
Unauthorized
status (object):
status
code (integer):

A code that can provide more information when an error occurs.

message (string):

Provides additional information when a request returns an error response.

ResponseError
status (object):
403 Forbidden
{}
Forbidden
status (object):
status
code (integer):

A code that can provide more information when an error occurs.

message (string):

Provides additional information when a request returns an error response.

ResponseError
status (object):
404 Channel 1234567890 not found
{}
NotFound
status (object):
status
code (integer):

A code that can provide more information when an error occurs.

message (string):

Provides additional information when a request returns an error response.

ResponseError
status (object):
500 Internal Server Error
{}
ServerError
status (object):
status
code (integer):

A code that can provide more information when an error occurs.

message (string):

Provides additional information when a request returns an error response.

ResponseError
status (object):
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/nexus/v3/channels/{channelId}/media/{mediaId}?"
DELETE
/channels/{channelId}/media/{mediaId}
Delete a media resource
Delete a media resource you previously uploaded to Genesys with POST /channels/{channelId}/media.
Parameters
Name Default Description Parameter Type Data Type Required
X-Hub-Signature The request signature, for example sha1=hash. The hash is built using the body of the message and secret for the channel. header string true
x-ccid The ID of the contact center the message is sent within. header string true
X-B3-TraceId The unique trace ID for the request. header string
channelId The ID of the channel. header path true
mediaId The media resource ID. header path true
Responses
Code Reason
200 Operation was successful
{
  "status": {
    "code": 0,
    "message": "string"
  },
  "data": {
    "mediaId": "string",
    "url": "string",
    "filename": "string",
    "mimetype": "string",
    "length": 0
  }
}
status
code (integer):

A code that can provide more information when an error occurs.

message (string):

Provides additional information when a request returns an error response.

data
mediaId (string):

The ID of the media resource. bb4a9f86-dbbb-4464-a669-650da94fbad6

url (string):

A synthetic URL to be used as reference in the outgoing message payload. genesys://nexus/bb4a9f86-dbbb-4464-a669-650da94fbad6

filename (string):

The name of the media resource. MyImage

mimetype (string):

The type of file. image/jpeg

length (integer):

The length of the media file.

UploadResponse
status (object):
data (object):
400 Bad Request
{}
BadRequest
status (object):
status
code (integer):

A code that can provide more information when an error occurs.

message (string):

Provides additional information when a request returns an error response.

ResponseError
status (object):
401 Unauthorized
{}
Unauthorized
status (object):
status
code (integer):

A code that can provide more information when an error occurs.

message (string):

Provides additional information when a request returns an error response.

ResponseError
status (object):
403 Forbidden
{}
Forbidden
status (object):
status
code (integer):

A code that can provide more information when an error occurs.

message (string):

Provides additional information when a request returns an error response.

ResponseError
status (object):
404 Channel not found
{}
NotFound
status (object):
status
code (integer):

A code that can provide more information when an error occurs.

message (string):

Provides additional information when a request returns an error response.

ResponseError
status (object):
500 Internal Server Error
{}
ServerError
status (object):
status
code (integer):

A code that can provide more information when an error occurs.

message (string):

Provides additional information when a request returns an error response.

ResponseError
status (object):
Usage
curl -X DELETE
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/nexus/v3/channels/{channelId}/media/{mediaId}?"
POST
/channels/{channelId}/messages
Send a message
Send a message to an agent in Genesys from an external messaging system, such as SMS.
Parameters
Name Default Description Parameter Type Data Type Required
X-Hub-Signature The request signature, for example sha1=hash. The hash is built using the body of the message and secret for the channel. header string true
x-ccid The ID of the contact center the message is sent within. header string true
X-B3-TraceId The unique trace ID for the request. header string
channelId The ID of the channel. path string true
messages Message body true
{}
Responses
Code Reason
200 Operation was successful
{
  "status": {
    "code": 0,
    "message": "string"
  },
  "data": {
    "ids": [
      {
        "id": "string"
      }
    ]
  }
}
status
code (integer):

A code that can provide more information when an error occurs.

message (string):

Provides additional information when a request returns an error response.

ids
id (string):
data
ids (array:object):

The ID of the accepted message, if provided.

InboundMessageResponse
status (object):
data (object):
400 Bad Request
{}
BadRequest
status (object):
status
code (integer):

A code that can provide more information when an error occurs.

message (string):

Provides additional information when a request returns an error response.

ResponseError
status (object):
401 Unauthorized
{}
Unauthorized
status (object):
status
code (integer):

A code that can provide more information when an error occurs.

message (string):

Provides additional information when a request returns an error response.

ResponseError
status (object):
403 Forbidden
{}
Forbidden
status (object):
status
code (integer):

A code that can provide more information when an error occurs.

message (string):

Provides additional information when a request returns an error response.

ResponseError
status (object):
404 Channel not found
{}
NotFound
status (object):
status
code (integer):

A code that can provide more information when an error occurs.

message (string):

Provides additional information when a request returns an error response.

ResponseError
status (object):
500 Internal Server Error
{}
ServerError
status (object):
status
code (integer):

A code that can provide more information when an error occurs.

message (string):

Provides additional information when a request returns an error response.

ResponseError
status (object):
Usage
curl -X POST
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-d '{}'
"https://api-demo.com/nexus/v3/channels/{channelId}/messages?"

Third-Party Messaging Webhook

Base path: /nexus/v3

POST
/some/webhook/path
Send a message to the third-party system
Send a message to the third-party system. Refer to OutgoingSmsMessage and OutgoingEmailMessage models for examples and channel-specific differencies.
Parameters
Name Default Description Parameter Type Data Type Required
X-Hub-Signature The request signature, for example sha1=hash. The hash is built using the body of the message and secret for the channel. header string true
X-B3-TraceId The unique trace ID for the request. header string
messages Message body true
{}
Responses
Code Reason
200 Message has been sent
{
  "messageId": "string"
}
OutgoingMessageResponse
messageId (string):

Unique message ID

500 Error occured while sending message
Usage
curl -X POST
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-d '{}'
"https://api-demo.com/nexus/v3/some/webhook/path?"

User Data Management Overview

You can use the User Data Management (UDM) API to develop custom applications that can integrate with Genesys to export and download your contact center data.

API Overview

Some of the UDM features you can add to your applications include:

  • create a manual data export job
  • download exported data file
  • clone a manual export job
  • view a list of jobs/files
  • cancel a job
  • delete a job/file
  • create/suspend/resume scheduled jobs
  • obtain job parameters
  • add/view/update certificate

Currently, UDM only supports the export and download of contacts and interaction-based data sourced from Universal Contact Server (UCS).

API Details

Find the API requests, responses, and details here:

  • User Data Management API

Getting started

Make sure to check out the Introduction to Engage Cloud APIs page for more information about core concepts in the Engage Cloud APIs, such as requests, responses, and CometD notifications.

User Data Management API

Base path: /udm

Version 10 API Requests

GET
/v10/cipher
This request is intended to get already uploaded certificate info.
Parameters
Name Default Description Parameter Type Data Type Required
x-api-key API key provided by Genesys. UDM deployments are accessed through GAPI-based URLs, for example, https://gapi-use1.genesyscloud.com/udm header string
Authorization Bearer token in the format, Authorization: Bearer . See details about GAuth token. header string Yes
Responses
Code Reason
200 200 response
{
  "ccid": "string",
  "name": "string",
  "size": 0,
  "lastModified": "string"
}
CertificateInfo
ccid (string):
name (string):
size (integer):
lastModified (string):
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-H "Authorization: Bearer eyJhbGciOiJSU...afA1Q"
"https://api-demo.com/udm/v10/cipher?"
POST
/v10/cipher/{certificatefilename}
This request is intended to upload a certificate.
Parameters
Name Default Description Parameter Type Data Type Required
x-api-key API key provided by Genesys. UDM deployments are accessed through GAPI-based URLs, for example, https://gapi-use1.genesyscloud.com/udm header string
certificatefilename path string true
file The certificate content, field name must be 'file' formData file true
Authorization Bearer token in the format, Authorization: Bearer . See details about GAuth token. header string Yes
Responses
Code Reason
201 201 response
"string"
400 400 response
Usage
curl -X POST
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-H "Authorization: Bearer eyJhbGciOiJSU...afA1Q"
"https://api-demo.com/udm/v10/cipher/{certificatefilename}?"
GET
/v10/data/attributes
This request is intended to get allow filtering on top of interaction attributes.
Parameters
Name Default Description Parameter Type Data Type Required
entities query string
Authorization Bearer token in the format, Authorization: Bearer . See details about GAuth token. header string Yes
Responses
Code Reason
200 200 response
{}
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-H "Authorization: Bearer eyJhbGciOiJSU...afA1Q"
"https://api-demo.com/udm/v10/data/attributes?entities=string"
GET
/v10/data/job-statuses
This request is intended to get a list of job statuses.
Parameters
Name Default Description Parameter Type Data Type Required
x-api-key API key provided by Genesys. UDM deployments are accessed through GAPI-based URLs, for example, https://gapi-use1.genesyscloud.com/udm header string
Authorization Bearer token in the format, Authorization: Bearer . See details about GAuth token. header string Yes
Responses
Code Reason
200 200 response
{}
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-H "Authorization: Bearer eyJhbGciOiJSU...afA1Q"
"https://api-demo.com/udm/v10/data/job-statuses?"
GET
/v10/data/sources
This request is intended to get a list of sources.
Parameters
Name Default Description Parameter Type Data Type Required
x-api-key API key provided by Genesys. UDM deployments are accessed through GAPI-based URLs, for example, https://gapi-use1.genesyscloud.com/udm header string
Authorization Bearer token in the format, Authorization: Bearer . See details about GAuth token. header string Yes
Responses
Code Reason
200 200 response
{}
204 204 response
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-H "Authorization: Bearer eyJhbGciOiJSU...afA1Q"
"https://api-demo.com/udm/v10/data/sources?"
GET
/v10/data/sub-types
This request is intended to get a list of entities for specific type and source.
Parameters
Name Default Description Parameter Type Data Type Required
x-api-key API key provided by Genesys. UDM deployments are accessed through GAPI-based URLs, for example, https://gapi-use1.genesyscloud.com/udm header string
dataType query string
source query string
Authorization Bearer token in the format, Authorization: Bearer . See details about GAuth token. header string Yes
Responses
Code Reason
200 200 response
{}
204 204 response
400 400 response
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-H "Authorization: Bearer eyJhbGciOiJSU...afA1Q"
"https://api-demo.com/udm/v10/data/sub-types?dataType=string&source=string"
GET
/v10/data/types
This request is intended to get a list of types for specific source.
Parameters
Name Default Description Parameter Type Data Type Required
x-api-key API key provided by Genesys. UDM deployments are accessed through GAPI-based URLs, for example, https://gapi-use1.genesyscloud.com/udm header string
source query string
Authorization Bearer token in the format, Authorization: Bearer . See details about GAuth token. header string Yes
Responses
Code Reason
200 200 response
{}
204 204 response
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-H "Authorization: Bearer eyJhbGciOiJSU...afA1Q"
"https://api-demo.com/udm/v10/data/types?source=string"
GET
/v10/export/history
This request is intended to get a list of history records.
Parameters
Name Default Description Parameter Type Data Type Required
x-api-key API key provided by Genesys. UDM deployments are accessed through GAPI-based URLs, for example, https://gapi-use1.genesyscloud.com/udm header string
descAsc query string
jobId query string
type query string
orderField query string
fileName query string
status query string
from query string
title query string
size query string
source query string
bgUpdate query string
Authorization Bearer token in the format, Authorization: Bearer . See details about GAuth token. header string Yes
Responses
Code Reason
200 200 response
{
  "count": 0,
  "from": 0,
  "items": [

  ],
  "size": 0
}
items
PagedResponse
count (integer):
from (integer):
items (array:object):
size (integer):
204 204 response
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-H "Authorization: Bearer eyJhbGciOiJSU...afA1Q"
"https://api-demo.com/udm/v10/export/history?descAsc=string&jobId=string&type=string&orderField=string&fileName=string&status=string&from=string&title=string&size=string&source=string&bgUpdate=string"
DELETE
/v10/export/history
This request is intended to delete a bunch of history records.
Parameters
Name Default Description Parameter Type Data Type Required
x-api-key API key provided by Genesys. UDM deployments are accessed through GAPI-based URLs, for example, https://gapi-use1.genesyscloud.com/udm header string
jobIDs query string true
Authorization Bearer token in the format, Authorization: Bearer . See details about GAuth token. header string Yes
Responses
Code Reason
204 204 response
400 400 response
Usage
curl -X DELETE
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-H "Authorization: Bearer eyJhbGciOiJSU...afA1Q"
"https://api-demo.com/udm/v10/export/history?jobIDs=string"
GET
/v10/export/history/{id}
This request is intended to get history record info.
Parameters
Name Default Description Parameter Type Data Type Required
x-api-key API key provided by Genesys. UDM deployments are accessed through GAPI-based URLs, for example, https://gapi-use1.genesyscloud.com/udm header string
id path string true
Authorization Bearer token in the format, Authorization: Bearer . See details about GAuth token. header string Yes
Responses
Code Reason
200 200 response
{
  "id": 0,
  "type": "string",
  "source": "string",
  "title": "string",
  "fileSplitSize": "string",
  "fileName": "string",
  "fileSize": 0,
  "status": "string",
  "createdDate": "string",
  "dateFrom": "string",
  "dateTo": "string",
  "description": "string",
  "media": [

  ],
  "progress": 0,
  "parentId": 0,
  "exportAttachments": true
}
JobInfo
id (integer):
type (string):
source (string):
title (string):
fileSplitSize (string):
fileName (string):
fileSize (integer):
status (string):
createdDate (string):
dateFrom (string):
dateTo (string):
description (string):
media (array:string):
progress (integer):
parentId (integer):
exportAttachments (boolean):
400 400 response
404 404 response
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-H "Authorization: Bearer eyJhbGciOiJSU...afA1Q"
"https://api-demo.com/udm/v10/export/history/{id}?"
DELETE
/v10/export/history/{id}
This request is intended to delete a history record.
Parameters
Name Default Description Parameter Type Data Type Required
x-api-key API key provided by Genesys. UDM deployments are accessed through GAPI-based URLs, for example, https://gapi-use1.genesyscloud.com/udm header string
id path string true
Authorization Bearer token in the format, Authorization: Bearer . See details about GAuth token. header string Yes
Responses
Code Reason
204 204 response
400 400 response
Usage
curl -X DELETE
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-H "Authorization: Bearer eyJhbGciOiJSU...afA1Q"
"https://api-demo.com/udm/v10/export/history/{id}?"
GET
/v10/export/history/{id}/progress
This request is intended to get job progress.
Parameters
Name Default Description Parameter Type Data Type Required
x-api-key API key provided by Genesys. UDM deployments are accessed through GAPI-based URLs, for example, https://gapi-use1.genesyscloud.com/udm header string
id path string true
Authorization Bearer token in the format, Authorization: Bearer . See details about GAuth token. header string Yes
Responses
Code Reason
200 200 response
{
  "progress": 0,
  "status": "string"
}
JobProgress
progress (integer):
status (string):
400 400 response
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-H "Authorization: Bearer eyJhbGciOiJSU...afA1Q"
"https://api-demo.com/udm/v10/export/history/{id}/progress?"
GET
/v10/export/jobs
This request is intended to get a list of jobs.
Parameters
Name Default Description Parameter Type Data Type Required
descAsc query string
scheduleType query string
x-api-key API key provided by Genesys. UDM deployments are accessed through GAPI-based URLs, for example, https://gapi-use1.genesyscloud.com/udm header string
type query string
orderField query string
suspend query string
from query string
title query string
size query string
source query string
bgUpdate query string
Authorization Bearer token in the format, Authorization: Bearer . See details about GAuth token. header string Yes
Responses
Code Reason
200 200 response
{
  "count": 0,
  "from": 0,
  "items": [

  ],
  "size": 0
}
items
PagedResponse
count (integer):
from (integer):
items (array:object):
size (integer):
204 204 response
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-H "Authorization: Bearer eyJhbGciOiJSU...afA1Q"
"https://api-demo.com/udm/v10/export/jobs?descAsc=string&scheduleType=string&type=string&orderField=string&suspend=string&from=string&title=string&size=string&source=string&bgUpdate=string"
POST
/v10/export/jobs
This request is intended to create a job.
Parameters
Name Default Description Parameter Type Data Type Required
x-api-key API key provided by Genesys. UDM deployments are accessed through GAPI-based URLs, for example, https://gapi-use1.genesyscloud.com/udm header string
Authorization Bearer token in the format, Authorization: Bearer . See details about GAuth token. header string Yes
Job body true
{
  "source": "string",
  "type": "string",
  "title": "string",
  "timeFrame": {
    "all": true,
    "dateFrom": "string",
    "dateTo": "string"
  },
  "description": "string",
  "schedulerParam": {
    "immediately": true,
    "cron": "string",
    "runs": "string",
    "startDate": "string"
  },
  "jobParams": {
    "fileSplitSize": "string",
    "type": "string",
    "media": [

    ],
    "exportAttachments": true
  },
  "suspended": true
}
TimeFrame
all (boolean, optional):
dateFrom (string, optional):
dateTo (string, optional):
SchedulerParam
immediately (boolean, optional):
cron (string, optional):
runs (string, optional):
startDate (string, optional):
UcsJobParams
fileSplitSize (string, optional):
type (string, required):
media (array:string, required):
exportAttachments (boolean, optional):
Job
source (string, required): source of job
type (string, required): UCS or DataSync
title (string, required): title of job
timeFrame (TimeFrame, required): export time parameter of job
description (string, optional): A description
schedulerParam (SchedulerParam, required): scheduler parameter of job
jobParams (UcsJobParams, required): parameters of job
suspended (boolean, required): suspended job
Responses
Code Reason
202 202 response
{
  "id": 0,
  "type": "string",
  "source": "string",
  "title": "string",
  "fileSplitSize": "string",
  "fileName": "string",
  "fileSize": 0,
  "status": "string",
  "createdDate": "string",
  "dateFrom": "string",
  "dateTo": "string",
  "description": "string",
  "media": [

  ],
  "progress": 0,
  "parentId": 0,
  "exportAttachments": true
}
JobInfo
id (integer):
type (string):
source (string):
title (string):
fileSplitSize (string):
fileName (string):
fileSize (integer):
status (string):
createdDate (string):
dateFrom (string):
dateTo (string):
description (string):
media (array:string):
progress (integer):
parentId (integer):
exportAttachments (boolean):
400 400 response
Usage
curl -X POST
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-H "Authorization: Bearer eyJhbGciOiJSU...afA1Q"
-d '{
  "source": "string",
  "type": "string",
  "title": "string",
  "timeFrame": {
    "all": true,
    "dateFrom": "string",
    "dateTo": "string"
  },
  "description": "string",
  "schedulerParam": {
    "immediately": true,
    "cron": "string",
    "runs": "string",
    "startDate": "string"
  },
  "jobParams": {
    "fileSplitSize": "string",
    "type": "string",
    "media": [

    ],
    "exportAttachments": true
  },
  "suspended": true
}'
"https://api-demo.com/udm/v10/export/jobs?"
DELETE
/v10/export/jobs
This request is intended to delete a bunch of jobs.
Parameters
Name Default Description Parameter Type Data Type Required
x-api-key API key provided by Genesys. UDM deployments are accessed through GAPI-based URLs, for example, https://gapi-use1.genesyscloud.com/udm header string
jobIDs query string true
Authorization Bearer token in the format, Authorization: Bearer . See details about GAuth token. header string Yes
Responses
Code Reason
204 204 response
400 400 response
Usage
curl -X DELETE
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-H "Authorization: Bearer eyJhbGciOiJSU...afA1Q"
"https://api-demo.com/udm/v10/export/jobs?jobIDs=string"
POST
/v10/export/jobs/cancel/{id}
This request is intended to cancel an unfinished job.
Parameters
Name Default Description Parameter Type Data Type Required
x-api-key API key provided by Genesys. UDM deployments are accessed through GAPI-based URLs, for example, https://gapi-use1.genesyscloud.com/udm header string
id path string true
Authorization Bearer token in the format, Authorization: Bearer . See details about GAuth token. header string Yes
Responses
Code Reason
200 200 response
400 400 response
404 404 response
Usage
curl -X POST
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-H "Authorization: Bearer eyJhbGciOiJSU...afA1Q"
"https://api-demo.com/udm/v10/export/jobs/cancel/{id}?"
POST
/v10/export/jobs/resume/{id}
This request is intended to resume an unfinished job.
Parameters
Name Default Description Parameter Type Data Type Required
x-api-key API key provided by Genesys. UDM deployments are accessed through GAPI-based URLs, for example, https://gapi-use1.genesyscloud.com/udm header string
id path string true
Authorization Bearer token in the format, Authorization: Bearer . See details about GAuth token. header string Yes
Responses
Code Reason
200 200 response
{
  "id": 0,
  "type": "string",
  "source": "string",
  "title": "string",
  "fileSplitSize": "string",
  "fileName": "string",
  "fileSize": 0,
  "status": "string",
  "createdDate": "string",
  "dateFrom": "string",
  "dateTo": "string",
  "description": "string",
  "media": [

  ],
  "progress": 0,
  "parentId": 0,
  "exportAttachments": true
}
JobInfo
id (integer):
type (string):
source (string):
source (string):
fileSplitSize (string):
fileName (string):
fileSize (integer):
status (string):
createdDate (string):
createdDate (string):
dateTo (string):
description (string):
media (array:string):
progress (integer):
parentId (integer):
exportAttachments (boolean):
400 400 response
404 404 response
Usage
curl -X POST
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-H "Authorization: Bearer eyJhbGciOiJSU...afA1Q"
"https://api-demo.com/udm/v10/export/jobs/resume/{id}?"
POST
/v10/export/jobs/suspend/{id}
This request is intended to suspend an unfinished job.
Parameters
Name Default Description Parameter Type Data Type Required
x-api-key API key provided by Genesys. UDM deployments are accessed through GAPI-based URLs, for example, https://gapi-use1.genesyscloud.com/udm header string
id path string true
Authorization Bearer token in the format, Authorization: Bearer . See details about GAuth token. header string Yes
Responses
Code Reason
200 200 response
{
  "id": 0,
  "type": "string",
  "source": "string",
  "title": "string",
  "fileSplitSize": "string",
  "fileName": "string",
  "fileSize": 0,
  "status": "string",
  "createdDate": "string",
  "dateFrom": "string",
  "dateTo": "string",
  "description": "string",
  "media": [

  ],
  "progress": 0,
  "parentId": 0,
  "exportAttachments": true
}
JobInfo
id (integer):
type (string):
source (string):
source (string):
fileSplitSize (string):
fileName (string):
fileSize (integer):
status (string):
createdDate (string):
createdDate (string):
dateTo (string):
description (string):
media (array:string):
progress (integer):
parentId (integer):
exportAttachments (boolean):
400 400 response
404 404 response
Usage
curl -X POST
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-H "Authorization: Bearer eyJhbGciOiJSU...afA1Q"
"https://api-demo.com/udm/v10/export/jobs/suspend/{id}?"
GET
/v10/export/jobs/{id}
This request is intended to get job info.
Parameters
Name Default Description Parameter Type Data Type Required
x-api-key API key provided by Genesys. UDM deployments are accessed through GAPI-based URLs, for example, https://gapi-use1.genesyscloud.com/udm header string
id path string true
Authorization Bearer token in the format, Authorization: Bearer . See details about GAuth token. header string Yes
Responses
Code Reason
200 200 response
{
  "id": 0,
  "type": "string",
  "source": "string",
  "title": "string",
  "fileSplitSize": "string",
  "fileName": "string",
  "fileSize": 0,
  "status": "string",
  "createdDate": "string",
  "dateFrom": "string",
  "dateTo": "string",
  "description": "string",
  "media": [

  ],
  "progress": 0,
  "parentId": 0,
  "exportAttachments": true
}
JobInfo
id (integer):
type (string):
source (string):
source (string):
fileSplitSize (string):
fileName (string):
fileSize (integer):
status (string):
createdDate (string):
createdDate (string):
dateTo (string):
description (string):
media (array:string):
progress (integer):
parentId (integer):
exportAttachments (boolean):
400 400 response
404 404 response
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-H "Authorization: Bearer eyJhbGciOiJSU...afA1Q"
"https://api-demo.com/udm/v10/export/jobs/{id}?"
PUT
/v10/export/jobs/{id}
This request is intended to update not started job.
Parameters
Name Default Description Parameter Type Data Type Required
x-api-key API key provided by Genesys. UDM deployments are accessed through GAPI-based URLs, for example, https://gapi-use1.genesyscloud.com/udm header string
id path string true
Authorization Bearer token in the format, Authorization: Bearer . See details about GAuth token. header string Yes
Job body true
{
  "source": "string",
  "type": "string",
  "title": "string",
  "timeFrame": {
    "all": true,
    "dateFrom": "string",
    "dateTo": "string"
  },
  "description": "string",
  "schedulerParam": {
    "immediately": true,
    "cron": "string",
    "runs": "string",
    "startDate": "string"
  },
  "jobParams": {
    "fileSplitSize": "string",
    "type": "string",
    "media": [

    ],
    "exportAttachments": true
  },
  "suspended": true
}
TimeFrame
all (boolean, optional):
dateFrom (string, optional):
dateTo (string, optional):
SchedulerParam
immediately (boolean, optional):
cron (string, optional):
runs (string, optional):
startDate (string, optional):
UcsJobParams
fileSplitSize (string, optional):
type (string, required):
media (array:string, required):
exportAttachments (boolean, optional):
Job
source (string, required): source of job
type (string, required): UCS or DataSync
title (string, required): title of job
timeFrame (TimeFrame, required): export time parameter of job
description (string, optional): A description
schedulerParam (SchedulerParam, required): scheduler parameter of job
jobParams (UcsJobParams, required): parameters of job
suspended (boolean, required): suspended job
Responses
Code Reason
200 200 response
{
  "id": 0,
  "type": "string",
  "source": "string",
  "title": "string",
  "fileSplitSize": "string",
  "fileName": "string",
  "fileSize": 0,
  "status": "string",
  "createdDate": "string",
  "dateFrom": "string",
  "dateTo": "string",
  "description": "string",
  "media": [

  ],
  "progress": 0,
  "parentId": 0,
  "exportAttachments": true
}
JobInfo
id (integer):
type (string):
source (string):
title (string):
fileSplitSize (string):
fileName (string):
fileSize (integer):
status (string):
createdDate (string):
dateFrom (string):
dateTo (string):
description (string):
media (array:string):
progress (integer):
parentId (integer):
exportAttachments (boolean):
400 400 response
404 404 response
Usage
curl -X PUT
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-H "Authorization: Bearer eyJhbGciOiJSU...afA1Q"
-d '{
  "source": "string",
  "type": "string",
  "title": "string",
  "timeFrame": {
    "all": true,
    "dateFrom": "string",
    "dateTo": "string"
  },
  "description": "string",
  "schedulerParam": {
    "immediately": true,
    "cron": "string",
    "runs": "string",
    "startDate": "string"
  },
  "jobParams": {
    "fileSplitSize": "string",
    "type": "string",
    "media": [

    ],
    "exportAttachments": true
  },
  "suspended": true
}'
"https://api-demo.com/udm/v10/export/jobs/{id}?"
DELETE
/v10/export/jobs/{id}
This request is intended to delete finished job.
Parameters
Name Default Description Parameter Type Data Type Required
x-api-key API key provided by Genesys. UDM deployments are accessed through GAPI-based URLs, for example, https://gapi-use1.genesyscloud.com/udm header string
id path string true
Authorization Bearer token in the format, Authorization: Bearer . See details about GAuth token. header string Yes
Responses
Code Reason
204 204 response
400 400 response
Usage
curl -X DELETE
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-H "Authorization: Bearer eyJhbGciOiJSU...afA1Q"
"https://api-demo.com/udm/v10/export/jobs/{id}?"
GET
/v10/file-metadatas
This request is intended to get a list of files data.
Parameters
Name Default Description Parameter Type Data Type Required
historyId query string
descAsc query string
jobTitle query string
x-api-key query string
name query string
type query string
source query string
endDate query string
orderField query string
startDate query string
from query string
size query string
bgUpdate query string
Authorization Bearer token in the format, Authorization: Bearer . See details about GAuth token. header string Yes
Responses
Code Reason
200 200 response
{
  "count": 0,
  "from": 0,
  "items": [

  ],
  "size": 0
}
items
PagedResponse
count (integer):
from (integer):
items (array:object):
size (integer):
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-H "Authorization: Bearer eyJhbGciOiJSU...afA1Q"
"https://api-demo.com/udm/v10/file-metadatas?historyId=string&descAsc=string&jobTitle=string&name=string&type=string&source=string&endDate=string&orderField=string&startDate=string&from=string&size=string&bgUpdate=string"
GET
/v10/files
This request is intended to get a bunch of links to download files.
Parameters
Name Default Description Parameter Type Data Type Required
filename query string
x-api-key API key provided by Genesys. UDM deployments are accessed through GAPI-based URLs, for example, https://gapi-use1.genesyscloud.com/udm header string
Authorization Bearer token in the format, Authorization: Bearer . See details about GAuth token. header string Yes
Responses
Code Reason
200 200 response
{
  "path": "string"
}
PreSignedUri
path (string):
400 400 response
404 404 response
{}
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-H "Authorization: Bearer eyJhbGciOiJSU...afA1Q"
"https://api-demo.com/udm/v10/files?filename=string"
DELETE
/v10/files
This request is intended to delete a bunch of files.
Parameters
Name Default Description Parameter Type Data Type Required
filename query string true
x-api-key API key provided by Genesys. UDM deployments are accessed through GAPI-based URLs, for example, https://gapi-use1.genesyscloud.com/udm header string
Authorization Bearer token in the format, Authorization: Bearer . See details about GAuth token. header string Yes
Responses
Code Reason
204 204 response
Usage
curl -X DELETE
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-H "Authorization: Bearer eyJhbGciOiJSU...afA1Q"
"https://api-demo.com/udm/v10/files?filename=string"
GET
/v10/files/{filename}
This request is intended to download a file.
Parameters
Name Default Description Parameter Type Data Type Required
filename path string true
x-api-key API key provided by Genesys. UDM deployments are accessed through GAPI-based URLs, for example, https://gapi-use1.genesyscloud.com/udm header string
Authorization Bearer token in the format, Authorization: Bearer . See details about GAuth token. header string Yes
Responses
Code Reason
303 303 response
404 404 response
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-H "Authorization: Bearer eyJhbGciOiJSU...afA1Q"
"https://api-demo.com/udm/v10/files/{filename}?"
DELETE
/v10/files/{filename}
This request is intended to delete a file.
Parameters
Name Default Description Parameter Type Data Type Required
filename path string true
x-api-key API key provided by Genesys. UDM deployments are accessed through GAPI-based URLs, for example, https://gapi-use1.genesyscloud.com/udm header string
Authorization Bearer token in the format, Authorization: Bearer . See details about GAuth token. header string Yes
Responses
Code Reason
204 204 response
Usage
curl -X DELETE
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-H "Authorization: Bearer eyJhbGciOiJSU...afA1Q"
"https://api-demo.com/udm/v10/files/{filename}?"
GET
/v10/resources/labels
This request is intended to get labels and their values.
Responses
Code Reason
200 200 response
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-H "Authorization: Bearer eyJhbGciOiJSU...afA1Q"
"https://api-demo.com/udm/v10/resources/labels?"
GET
/v10/version
This request is intended to get service info.
Parameters
Name Default Description Parameter Type Data Type Required
x-api-key API key provided by Genesys. UDM deployments are accessed through GAPI-based URLs, for example, https://gapi-use1.genesyscloud.com/udm header string
Responses
Code Reason
200 200 response
{
  "version": "string",
  "buildNumber": "string",
  "changeset": "string",
  "name": "string"
}
VersionInfo
version (string):
buildNumber (string):
changeset (string):
name (string):
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
"https://api-demo.com/udm/v10/version?"


Version 4 API Requests

Important
Although the User Data Management API still supports version 4 API calls documented below, they have been deprecated.
GET
Deprecated
/v4/export/history
Get list of jobs info
Parameters
Name Default Description Parameter Type Data Type Required
descAsc Specifies the sort order of orderField. False for ascending order, true for descending query boolean
orderField By which field to order query string
title Filter that title contains query string
fileName Filter that file name contains query string
type Filter that type contains query string
status Filter that file name contains query string
from 0 Index of the first item to return query integer
size 999999999 Maximum number of items to return query integer
Responses
Code Reason
200 Ok
{
  "count": 0,
  "from": 0,
  "items": [

  ],
  "size": 0
}
PagedResponse
count (integer):
from (integer):
items (array:object):
size (integer):
204 No Content
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/udm/v4/export/history?descAsc=true&orderField=string&title=string&fileName=string&type=string&status=string&from=0&size=0"
DELETE
Deprecated
/v4/export/history
Delete the specified jobs list

In case if some jobs cannot be deleted internal server error is returned with a list of jobs that weren't deleted as json array in the body. A job with status in progress cannot be deleted.

Parameters
Name Default Description Parameter Type Data Type Required
jobIDs A comma-separated list of job IDs query string true
Responses
Code Reason
204 No Content
400 Bad Request
Usage
curl -X DELETE
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/udm/v4/export/history?jobIDs=string"
GET
Deprecated
/v4/export/history/{id}
Get specified jobs history
Parameters
Name Default Description Parameter Type Data Type Required
id The id of the job path string true
Responses
Code Reason
200 Ok
{
  "id": 0,
  "type": "string",
  "source": "string",
  "title": "string",
  "fileSplitSize": "string",
  "fileName": "string",
  "fileSize": 0,
  "status": "string",
  "createdDate": "string",
  "dateFrom": "string",
  "dateTo": "string",
  "description": "string",
  "media": [

  ],
  "progress": 0,
  "parentId": 0
}
JobInfo
id (integer):
type (string):
source (string):
title (string):
fileSplitSize (string):
filename (string):
fileSize (integer):
status (string):
createdDate (string):
dateFrom (string):
dateTo (string):
description (string):
media (array:string):
progress (integer):
parentId (integer):
400 Bad Request
404 ManualJob Not Found
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/udm/v4/export/history/{id}?"
DELETE
Deprecated
/v4/export/history/{id}
Delete the specified job

A job in progress can not be deleted.

Parameters
Name Default Description Parameter Type Data Type Required
id The id of the job path string true
Responses
Code Reason
204 No Content
400 Bad Request
Usage
curl -X DELETE
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/udm/v4/export/history/{id}?"
GET
Deprecated
/v4/export/history/{id}/progress
Get currently running job completion progress

Return value is between 0 and 100 percent.

Parameters
Name Default Description Parameter Type Data Type Required
id The id of the job history path string true
Responses
Code Reason
200 Ok
{
  "progress": 0,
  "status": "string"
}
JobProgress
progress (integer):
status (string):
400 Bad Request
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/udm/v4/export/history/{id}/progress?"
GET
Deprecated
/v4/export/jobs
Get list of jobs info
Parameters
Name Default Description Parameter Type Data Type Required
descAsc Specifies the sort order of orderField. False for ascending order, true for descending query boolean
orderField By which field to order query string
title Filter that title contains query string
type Filter that type contains query string
scheduleType Filter that file name contains query string
suspend Filter that schedule type contains query boolean
from 0 Index of the first item to return query integer
size 999999999 Maximum number of items to return query integer
Responses
Code Reason
200 Ok
{
  "count": 0,
  "from": 0,
  "items": [

  ],
  "size": 0
}
PagedResponse
count (integer):
from (integer):
items (array:object):
size (integer):
204 No Content
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/udm/v4/export/jobs?descAsc=true&orderField=string&title=string&type=string&scheduleType=string&suspend=true&from=0&size=0"
POST
Deprecated
/v4/export/jobs
Save specified manualJob
Parameters
Name Default Description Parameter Type Data Type Required
body body
{
  "source": "string",
  "title": "string",
  "timeFrame": {
    "all": true,
    "dateFrom": "string",
    "dateTo": "string"
  },
  "fileSplitSize": "string",
  "description": "string",
  "schedulerParam": {
    "immediately": true,
    "cron": "string",
    "runs": "string",
    "startDate": "string"
  },
  "jobParams": {
    "fileSplitSize": "string",
    "type": "string",
    "media": [

    ]
  },
  "suspended": "string"
}
TimeFrame
all (boolean, optional):
dateFrom (string, optional):
dateTo (string, optional):
SchedulerParam
immediately (boolean, optional):
cron (string, optional):
runs (string, optional):
startDate (string, optional):
UcsJobParams
fileSplitSize (string, optional):
type (string, required):
media (array:string, required):
Job
source (string, required): source of job
title (string, required): title of job
timeFrame (TimeFrame, required): export time parameter of job
fileSplitSize (string, optional): size of splitted file
description (string, optional): A description
schedulerParam (SchedulerParam, required): scheduler parameter of job
jobParams (UcsJobParams, required): parameters of job
suspended (string, required): suspended job
Responses
Code Reason
202 Accepted
{
  "id": 0,
  "type": "string",
  "source": "string",
  "title": "string",
  "fileSplitSize": "string",
  "fileName": "string",
  "fileSize": 0,
  "status": "string",
  "createdDate": "string",
  "dateFrom": "string",
  "dateTo": "string",
  "description": "string",
  "media": [

  ],
  "progress": 0,
  "parentId": 0
}
JobInfo
id (integer):
type (string):
source (string):
title (string):
fileSplitSize (string):
fileName (string):
fileSize (integer):
status (string):
createdDate (string):
dateFrom (string):
dateTo (string):
description (string):
media (array:string):
progress (integer):
parentId (integer):
400 Bad Request
Usage
curl -X POST
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-d '{
  "source": "string",
  "title": "string",
  "timeFrame": {
    "all": true,
    "dateFrom": "string",
    "dateTo": "string"
  },
  "fileSplitSize": "string",
  "description": "string",
  "schedulerParam": {
    "immediately": true,
    "cron": "string",
    "runs": "string",
    "startDate": "string"
  },
  "jobParams": {
    "fileSplitSize": "string",
    "type": "string",
    "media": [

    ]
  },
  "suspended": "string"
}'
"https://api-demo.com/udm/v4/export/jobs?"
DELETE
Deprecated
/v4/export/jobs
Delete the specified jobs list

In case if some jobs cannot be deleted internal server error is returned with a list of jobs that weren't deleted as json array in the body. A job with status in progress cannot be deleted.

Parameters
Name Default Description Parameter Type Data Type Required
jobIDs A comma-separated list of job IDs query string true
Responses
Code Reason
204 No Content
400 Bad Request
Usage
curl -X DELETE
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/udm/v4/export/jobs?jobIDs=string"
POST
Deprecated
/v4/export/jobs/cancel/{id}
Cancel running
Parameters
Name Default Description Parameter Type Data Type Required
id The id of the job path string true
Responses
Code Reason
200 Ok
400 Bad Request
404 Not Found
Usage
curl -X POST
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/udm/v4/export/jobs/cancel/{id}?"
POST
Deprecated
/v4/export/jobs/resume/{id}
Save specified manualJob
Parameters
Name Default Description Parameter Type Data Type Required
id The id of the job path string true
Responses
Code Reason
200 Ok
{
    "status": {
        "code": 0,
        "detail": {},
        "message": "successful"
    }
}
400 Bad Request
404 Job Not Found
Usage
curl -X POST
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/udm/v4/export/jobs/resume/{id}?"
POST
Deprecated
/v4/export/jobs/suspend/{id}
Save specified manualJob
Parameters
Name Default Description Parameter Type Data Type Required
id The id of the job path string true
Responses
Code Reason
200 Ok
{
    "status": {
        "code": 0,
        "detail": {},
        "message": "successful"
    }
}
400 Bad Request
404 Job Not Found
Usage
curl -X POST
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/udm/v4/export/jobs/suspend/{id}?"
GET
Deprecated
/v4/export/jobs/{id}
Get specified job
Parameters
Name Default Description Parameter Type Data Type Required
id The id of the job path string true
Responses
Code Reason
200 Ok
{
  "id": "",
  "source": "string",
  "title": "string",
  "timeFrame": {
    "all": true,
    "dateFrom": "string",
    "dateTo": "string"
  },
  "fileSplitSize": "string",
  "description": "string",
  "schedulerParam": {
    "immediately": true,
    "cron": "string",
    "runs": "string",
    "startDate": "string"
  },
  "jobParams": {
    "fileSplitSize": "string",
    "type": "string",
    "media": [
]
  },
  "suspended": "string"
}
400 Bad Request
404 ManualJob Not Found
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/udm/v4/export/jobs/{id}?"
PUT
Deprecated
/v4/export/jobs/{id}
Save specified manualJob
Parameters
Name Default Description Parameter Type Data Type Required
id path string true
body body
{
  "source": "string",
  "title": "string",
  "type": "string",
  "timeFrame": {
    "all": true,
    "dateFrom": "string",
    "dateTo": "string"
  },
  "fileSplitSize": "string",
  "description": "string",
  "schedulerParam": {
    "immediately": true,
    "cron": "string",
    "runs": "string",
    "startDate": "string"
  },
  "jobParams": {
    "fileSplitSize": "string",
    "type": "string",
    "media": [

    ]
  },
  "suspended": "string"
}
TimeFrame
all (boolean, optional):
dateFrom (string, optional):
dateTo (string, optional):
SchedulerParam
immediately (boolean, optional):
cron (string, optional):
runs (string, optional):
startDate (string, optional):
UcsJobParams
fileSplitSize (string, optional):
type (string, required):
media (array:string, required):
Job
source (string, required): source of job
title (string, required): title of job
type (string, required): type of job
timeFrame (TimeFrame, required): export time parameter of job
fileSplitSize (string, optional): size of splitted file
description (string, optional): A description
schedulerParam (SchedulerParam, required): scheduler parameter of job
jobParams (UcsJobParams, required): parameters of job
suspended (string, required): suspended job
Responses
Code Reason
200 Ok
{
  "id": 0,
  "type": "string",
  "source": "string",
  "title": "string",
  "fileSplitSize": "string",
  "fileName": "string",
  "fileSize": 0,
  "status": "string",
  "createdDate": "string",
  "dateFrom": "string",
  "dateTo": "string",
  "description": "string",
  "media": [

  ],
  "progress": 0,
  "parentId": 0
}
JobInfo
id (integer):
type (string):
source (string):
title (string):
fileSplitSize (string):
fileName (string):
fileSize (integer):
status (string):
createdDate (string):
dateFrom (string):
dateTo (string):
description (string):
media (array:string):
progress (integer):
parentId (integer):
400 Bad Request
404 Job Not Found
Usage
curl -X PUT
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"
-d '{
  "source": "string",
  "title": "string",
  "timeFrame": {
    "all": true,
    "dateFrom": "string",
    "dateTo": "string"
  },
  "fileSplitSize": "string",
  "description": "string",
  "schedulerParam": {
    "immediately": true,
    "cron": "string",
    "runs": "string",
    "startDate": "string"
  },
  "jobParams": {
    "fileSplitSize": "string",
    "type": "string",
    "media": [

    ]
  },
  "suspended": "string"
}'
"https://api-demo.com/udm/v4/export/jobs/{id}?"
DELETE
Deprecated
/v4/export/jobs/{id}
Delete the specified job

A job in progress can not be deleted.

Parameters
Name Default Description Parameter Type Data Type Required
id The id of the job path string true
Responses
Code Reason
204 No Content
400 Bad Request
Usage
curl -X DELETE
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/udm/v4/export/jobs/{id}?"

Version 3 API Requests

Important
Although the User Data Management API still supports version 3 API calls documented below, they have been deprecated.
GET
Deprecated
/v3/cipher
Get certificate information
Responses
Code Reason
200 Ok
{
  "ccid": "string",
  "name": "string",
  "size": 0,
  "lastModified": "string"
}
CertificateInfo
ccid (string):
name (string):
size (integer):
lastModified (string):
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/udm/v3/cipher?"
POST
Deprecated
/v3/cipher/{certificatefilename}
POST the specified certificate
Parameters
Name Default Description Parameter Type Data Type Required
certificatefilename path string true
file formData file
Responses
Code Reason
201 Created
"string"
400 Bad Request
Usage
curl -X POST
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/udm/v3/cipher/{certificatefilename}?"
GET
Deprecated
/v3/data/job-statuses
Get list of job statuses
Responses
Code Reason
200 Ok
[
  {
    "label": "string",
    "value": "string"
  }
]
KeyValueItem
label (string):
value (string):
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/udm/v3/data/job-statuses?"
GET
Deprecated
/v3/data/sources
Get list of sources
Responses
Code Reason
200 Ok
[
  {
    "label": "string",
    "value": "string"
  }
]
KeyValueItem
label (string):
value (string):
204 No Content
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/udm/v3/data/sources?"
GET
Deprecated
/v3/data/sub-types
Get list of data subtypes
Parameters
Name Default Description Parameter Type Data Type Required
source Filter data sub types by source query string
dataType Filter data types by type query string
Responses
Code Reason
200 Ok
[
  {
    "name": "string",
    "displayName": "string",
    "source": "string",
    "dataType": "string",
    "enabled": true
  }
]
SubType
name (string):
displayName (string):
source (string):
dataType (string):
enabled (boolean):
204 No Content
400 Bad Request
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/udm/v3/data/sub-types?source=string&dataType=string"
GET
Deprecated
/v3/data/types
Get list of types
Parameters
Name Default Description Parameter Type Data Type Required
source Filter data types by source query string
Responses
Code Reason
200 Ok
[
  {
    "name": "string",
    "source": "string"
  }
]
DataType
name (string):
source (string):
204 No Content
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/udm/v3/data/types?source=string"
GET
Deprecated
/v3/file-metadatas
Get list of files metadata
Parameters
Name Default Description Parameter Type Data Type Required
descAsc Specifies the sort order of orderField. False for ascending order, true for descending query boolean
orderField By which field to order query string
startDate startDate query string
endDate Filter to which upload date query string
name Filter that file name contains query string
jobTitle Filter that job title contains query string
type Filter that file type contains query string
from 0 Index of the first item to return query integer
size 999999999 Maximum number of items to return query integer
Responses
Code Reason
200 Ok
{
  "count": 0,
  "from": 0,
  "items": [

  ],
  "size": 0
}
PagedResponse
count (integer):
from (integer):
items (array:object):
size (integer):
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/udm/v3/file-metadatas?descAsc=true&orderField=string&startDate=string&endDate=string&name=string&jobTitle=string&type=string&from=0&size=0"
GET
Deprecated
/v3/files
Get the list of pre-signed url for specified files list

The maximum number of files is limited to 100. Also if some files cannot be found HTTP 404 is returned with a list of the files that weren’t found as json array in the body

Parameters
Name Default Description Parameter Type Data Type Required
filename A comma-separated list of file names query string
Responses
Code Reason
200 Ok
{
  "path": "string"
}
PreSignedUri
path (string):
400 Bad Request
404 File Not Found
[
  {
    "path": "string"
  }
]
PreSignedUri
path (string):
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/udm/v3/files?filename=string"
DELETE
Deprecated
/v3/files
Delete the specified files list

In case if some files cannot be deleted internal server error is returned with a list of files that weren’t deleted as json array in the body.

Parameters
Name Default Description Parameter Type Data Type Required
filename A comma-separated list of file names query string true
Responses
Code Reason
204 No Content
Usage
curl -X DELETE
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/udm/v3/files?filename=string"
GET
Deprecated
/v3/files/{filename}
Get the specified file
Parameters
Name Default Description Parameter Type Data Type Required
filename The name of the file path string true
Responses
Code Reason
303 See Other
404 File Not Found
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/udm/v3/files/{filename}?"
DELETE
Deprecated
/v3/files/{filename}
Delete the specified file
Parameters
Name Default Description Parameter Type Data Type Required
filename The name of the file path string true
Responses
Code Reason
204 No Content
Usage
curl -X DELETE
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/udm/v3/files/{filename}?"
GET
Deprecated
/v3/version
Get version information
Responses
Code Reason
200 Ok
{
  "version": "string",
  "buildNumber": "string",
  "changeset": "string",
  "name": "string"
}
VersionInfo
version (string):
buildNumber (string):
changeset (string):
name (string):
Usage
curl -X GET
-H "x-api-key: your_API_key"
-H "Content-Type: application/json"

"https://api-demo.com/udm/v3/version?"